对于神经网络,学习率是否应该以某种方式与隐藏层大小成正比?他们应该互相影响吗?

With neural networks, should the learning rate be in some way proportional to hidden layer sizes? Should they affect each other?

我的神经网络是正常的前馈和后馈。有 10 个输出,应该是一个向量,其中一个输出为 1,其余为 0。所以类似于 [0,0,0,0,1,0,0,0,0]。所以我期望的输出是这样的:

[ 0.21332215,0.13782996,0.13548511,0.09321094,0.16769843,0.20333131, 0.06613014,0.10699013,0.10622562,0.09809167]

理想情况下,一旦受过训练,这个:

[ 0.21332215,0.13782996,0.93548511 ,0.09321094 ,**0.9**676984,0.20333131, 0.06613014,0.1069901,0.10622562, 0.09809167]

当我在隐藏层上有 30 个神经元,并且学习率 > 0.1 但 < 1 时,我得到了这些结果。然而,当我有 100 个隐藏神经元,学习率为 0.01 时,我得到如下结果:

[  1.75289110e-05,1.16433042e-04 ,2.83848791e-01,4.47291309e-02, 1.63011592e-01,8.12974408e-05 , 1.06284533e-03 , 2.95174797e-02, 7.54112632e-05, 1.33177529e-03]

这是为什么?这就是过度学习的样子吗?

然后,当我将学习率更改为 0.0001 并隐藏 100 个神经元时,它再次获得正常结果。

所以我的问题是:学习率应该如何影响隐藏层数?更大的隐藏层是否意味着更低的学习率?

可以说隐藏单元数和学习率之间存在着轻微的关系,一般来说,当你增加隐藏单元数时,你会得到一个参数化程度更高、容量更高的模型,这样模型总是更容易在同一训练集上过度拟合。除此之外,与更薄的模型相比,该模型在尺寸更大的 space 中运行,并且具有更复杂的误差表面。当您在如此复杂的错误机制中应用更大的学习率时,SGD 过程可能很容易发散到无意义的位置,我相信这是您以更高的学习率获得奇怪结果的真正原因。简而言之,当模型太复杂时,较小的学习率更合理是合乎逻辑的。