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

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。

对于激活函数的选择,

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

用于选择层数,

  1. 完全取决于你的问题。
  2. 当数据很复杂时,更多层会很有帮助,因为它们可以有效地逼近输入和输出之间的函数。
  3. 有时,对于较小的问题 l,例如 MNIST,即使是具有 2 个隐藏层的网络也能很好地工作。