我使用 Iris 数据集与 3 层神经网络进行分类
我决定使用:
3 个神经元作为输入,因为它有 3 个特征,
3 个神经元作为输出,因为它有 3 个类,并且
在隐藏层
中进行分类的最佳神经元数量是多少在这种情况下?
如何确定隐藏层中神经元的数量进行分类
数据挖掘
神经网络
2022-02-12 22:32:07
2个回答
为了自动化评估,您可以使用 Keras Tuner https://keras-team.github.io/keras-tuner/之类的工具
从他们的文档中,示例设置如下所示。
单位的最小值-最大值是您可以根据自己的情况对其进行调整的位置。
from tensorflow import keras
from tensorflow.keras import layers
from kerastuner.tuners import RandomSearch
def build_model(hp):
model = keras.Sequential()
model.add(layers.Dense(units=hp.Int('units',
min_value=32,
max_value=512,
step=32),
activation='relu'))
model.add(layers.Dense(10, activation='softmax'))
model.compile(
optimizer=keras.optimizers.Adam(
hp.Choice('learning_rate',
values=[1e-2, 1e-3, 1e-4])),
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
return model
这个问题没有明确的答案。您应该尝试并评估模型如何执行测试不同的配置。但是,基本上,遵循以下两个前提:
- 每层更多的神经元--> 更复杂的模型,你可能会获得更好的准确性。
- 更多隐藏层--> 更复杂的模型,同样,您可能会获得更好的准确性。
- 警告这两种方法都通过增加模型的复杂性来增加过拟合的机会。您需要通过统计稳健的模型选择程序(例如交叉验证)仔细评估它们
请注意,增加模型的复杂性会增加计算过程,并且如上所述,要小心过度拟合。
我建议先尝试少量的神经元,然后尝试逐步增加,看看模型是否取得了一些改进。
其它你可能感兴趣的问题