我已经阅读过对不同层的神经网络使用不同的学习率,而不是对每一层使用相同的全局学习率。
对每一层使用这些不同的学习率有什么需要?
我已经阅读过对不同层的神经网络使用不同的学习率,而不是对每一层使用相同的全局学习率。
对每一层使用这些不同的学习率有什么需要?
特定于层的学习率有助于克服深度神经网络中的慢速学习(因此是慢速训练)问题。正如论文Layer-Specific Adaptive Learning Rates for Deep Networks中所述:
当梯度下降法用于训练深度网络时,会引入额外的问题。随着网络中层数的增加,传播回初始层的梯度变得非常小(梯度消失问题)。这大大减慢了初始层的学习速度,减慢了整个网络的收敛速度。
特定于网络中每一层的学习率允许更大的学习率来补偿浅层(靠近输入层的层)中梯度的小尺寸。
如@Andrey 基于博客文章的回答所述,此方法还有助于迁移学习。- 检查Jeremy Howard 的判别性微调并在 CaffeNet 上发布。
直觉是,在靠近输入层的层中,更有可能学习到更一般的特征——比如线条和边缘,我们不想改变太多。因此,我们将他们的学习率设置得很低。另一方面,在模型的后面层——学习详细特征的情况下,我们提高学习率——让新层快速学习。
这是一篇关于这个主题的精彩文章:基本上,它通常会使训练更快。第一层通常足够好,因此它们的学习率可能会更低,但最后一层需要针对输出数据集进行调整,因此 lr 应该更高。