【问题标题】:How to determine optimal number of layers and activation function(s)如何确定最佳层数和激活函数
【发布时间】:2018-12-07 22:00:58
【问题描述】:

所以我正在使用 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。

【问题讨论】:

    标签: python tensorflow machine-learning keras hyperparameters


    【解决方案1】:

    对于选择激活函数,

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

    用于选择层数,

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-19
      • 2020-09-12
      • 2014-04-09
      • 1970-01-01
      • 2013-01-08
      • 2021-05-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多