如何确定最佳层数和激活函数

时间:2018-12-07 22:00:59

标签: python tensorflow machine-learning keras hyperparameters

因此,我正在使用keras处理MNIST和Boston_Housing数据集,我想知道如何确定最佳层数和每一层的激活函数。 现在,我不是在问什么层/激活函数的最佳数量,而是我应该经历的确定这些参数的过程。

我正在使用均方误差和均值绝对误差评估我的模型。 这是我当前模型的样子:

    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。

1 个答案:

答案 0 :(得分:1)

要选择激活功能,

  1. 现代神经网络主要在隐藏层中使用ReLU或LeakyReLU
  2. 对于分类,在输出层使用softmax激活。
  3. 为了进行回归,在输出层使用了线性激活。

要选择层数,

  1. 完全取决于您的问题。
  2. 当数据复杂时,更多的层很有用,因为它们可以有效地近似输入和输出之间的功能。
  3. 有时候,对于较小的问题l(例如MNIST),即使具有2个隐藏层的网络也可以正常工作。