我有一个卷积神经网络,我修改了它的架构 . 我没有时间重新训练并执行交叉验证(对最佳参数进行网格搜索) . 我想直观地调整学习率 .
如果符合以下条件,我是否应该提高或降低我的RMS(基于SGD)优化器的学习率:
添加更多层/神经元会增加过度拟合的可能性 . 因此,如果随着时间的推移降低学习率会更好 . 删除子采样层也会增加参数的数量,并再次增加过度拟合的机会 . 强烈建议,至少通过实证结果证明,子采样层可以帮助模型更好地学习 . 所以避免删除它们 .
另外,我建议您通过裁剪图像生成更多示例,并使用这些裁剪版本训练模型 . 这作为正则化器有助于模型学习更好的数据分布 . 然后,您还可以增加层/神经元的数量,减少过度拟合的风险 .
我们都同意学习率可以被视为控制过度拟合的一种方式,就像辍学或批量大小一样 . 但是我写这个答案是因为我认为Amir的回答和评论中的以下内容是误导性的:
添加更多层/神经元会增加过度拟合的可能性 . 因此,如果随着时间的推移降低学习率会更好 .
由于向模型添加更多图层/节点,因此建议过度拟合[...]朝向局部最小值采取小步骤
它实际上是 OPPOSITE !较小的学习率会增加过度拟合的风险!
引用自Super-Convergence: Very Fast Training of Neural Networks Using Large Learning Rates (Smith & Topin 2018)(一个非常有趣的读取顺便说一句):
有许多形式的正规化,例如大学习率,小批量,重量衰减和辍学 . 从业者必须 balancer 每种数据集和架构的各种形式的正规化,以获得良好的性能 . 减少其他形式的正规化和以非常大的学习率进行正规化使得培训效率显着提高 .
因此,正如Guillaume Chevalier在他的第一篇评论中所说,如果你添加正则化,如果你想保持正则化的总量不变,降低学习率可能是一个好主意 . 但是,如果您的目标是增加正规化的总量,或者如果您减少其他正规化方法(例如,减少丢失,增加批量大小),则应该增加学习率 .
相关(也很有趣):Don't decay the learning rate, increase the batch size (Smith et al. ICLR'18) .
2 回答
添加更多层/神经元会增加过度拟合的可能性 . 因此,如果随着时间的推移降低学习率会更好 . 删除子采样层也会增加参数的数量,并再次增加过度拟合的机会 . 强烈建议,至少通过实证结果证明,子采样层可以帮助模型更好地学习 . 所以避免删除它们 .
另外,我建议您通过裁剪图像生成更多示例,并使用这些裁剪版本训练模型 . 这作为正则化器有助于模型学习更好的数据分布 . 然后,您还可以增加层/神经元的数量,减少过度拟合的风险 .
我们都同意学习率可以被视为控制过度拟合的一种方式,就像辍学或批量大小一样 . 但是我写这个答案是因为我认为Amir的回答和评论中的以下内容是误导性的:
它实际上是 OPPOSITE !较小的学习率会增加过度拟合的风险!
引用自Super-Convergence: Very Fast Training of Neural Networks Using Large Learning Rates (Smith & Topin 2018)(一个非常有趣的读取顺便说一句):
因此,正如Guillaume Chevalier在他的第一篇评论中所说,如果你添加正则化,如果你想保持正则化的总量不变,降低学习率可能是一个好主意 . 但是,如果您的目标是增加正规化的总量,或者如果您减少其他正规化方法(例如,减少丢失,增加批量大小),则应该增加学习率 .
相关(也很有趣):Don't decay the learning rate, increase the batch size (Smith et al. ICLR'18) .