在神经网络中,学习率是否应该与隐藏层的大小成某种比例?它们之间应该相互影响吗?

我的神经网络是一个普通的前馈和反向传播网络。它有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个神经元时,又得到了正常的结果。

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


回答:

可以说,隐藏单元的数量与学习率之间存在一定的关系,通常情况下,当你增加隐藏单元的数量时,你会得到一个参数化程度更高、容量更大的模型,这样的模型在相同的训练集上更容易过拟合。此外,这样的模型在更高维度的空间中运行,并且与较薄的模型相比,具有更复杂的误差表面。当你在这样复杂的误差环境中应用较大的学习率时,SGD过程可能会很容易地偏离到无意义的位置,我认为这就是你在使用较高学习率时得到奇怪结果的真正原因。简而言之,当模型过于复杂时,使用较小的学习率会更合理。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注