如何确定最佳层数和激活函数
How to determine optimal number of layers and activation function(s)
所以我正在使用 keras 处理 MNIST 和 Boston_Housing 数据集,我想知道如何确定每层的最佳层数和激活函数。
现在,我不是在问 最佳的 layers/activation 函数数量是多少,而是我应该通过哪些过程来确定这些参数。
我正在使用均方误差和平均绝对误差评估我的模型。
这是我当前模型的样子:
model = models.Sequential()
model.add(layers.Dense(64, activation='relu'))
model.add(layers.Dense(64, init='glorot_uniform', activation=layers.Activation('selu')))
model.add(layers.Dense(64,activation = 'softplus'))
model.add(layers.Dense(1))
model.compile(optimizer = 'rmsprop',
loss='mse',
metrics=['mae'])
我的均方误差为 3.5,均方误差为 27。
对于激活函数的选择,
- 现代神经网络主要在隐藏层使用ReLU或leakyReLU
- 对于分类,在输出层使用 softmax 激活。
- 对于回归,在输出层使用线性激活。
用于选择层数,
- 完全取决于你的问题。
- 当数据很复杂时,更多层会很有帮助,因为它们可以有效地逼近输入和输出之间的函数。
- 有时,对于较小的问题 l,例如 MNIST,即使是具有 2 个隐藏层的网络也能很好地工作。
所以我正在使用 keras 处理 MNIST 和 Boston_Housing 数据集,我想知道如何确定每层的最佳层数和激活函数。 现在,我不是在问 最佳的 layers/activation 函数数量是多少,而是我应该通过哪些过程来确定这些参数。
我正在使用均方误差和平均绝对误差评估我的模型。 这是我当前模型的样子:
model = models.Sequential()
model.add(layers.Dense(64, activation='relu'))
model.add(layers.Dense(64, init='glorot_uniform', activation=layers.Activation('selu')))
model.add(layers.Dense(64,activation = 'softplus'))
model.add(layers.Dense(1))
model.compile(optimizer = 'rmsprop',
loss='mse',
metrics=['mae'])
我的均方误差为 3.5,均方误差为 27。
对于激活函数的选择,
- 现代神经网络主要在隐藏层使用ReLU或leakyReLU
- 对于分类,在输出层使用 softmax 激活。
- 对于回归,在输出层使用线性激活。
用于选择层数,
- 完全取决于你的问题。
- 当数据很复杂时,更多层会很有帮助,因为它们可以有效地逼近输入和输出之间的函数。
- 有时,对于较小的问题 l,例如 MNIST,即使是具有 2 个隐藏层的网络也能很好地工作。