学习率(Learning Rate)到底怎么调?

学习率调整的核心方法

学习率是深度学习模型训练中最重要的超参数之一,直接影响模型收敛速度和最终性能。以下是几种有效的调整策略:

初始值选择

  • 常见范围在0.1到1e-6之间,具体取决于模型结构和任务复杂度
  • 图像分类任务常用0.1或0.01作为初始值
  • 预训练模型微调时建议更小的值(1e-4到1e-5)

学习率预热(Warmup) 小批量数据在初期可能导致梯度估计不稳定,逐步增加学习率可缓解此问题 线性预热:在前5-10个epoch从0线性增加到目标学习率 余弦预热:结合余弦退火策略效果更佳

周期性调整策略 余弦退火:按余弦函数周期性调整学习率,公式为: η_t = η_min + 0.5(η_max - η_min)(1 + cos(π mod(t-1, T)/T)) 其中T为周期长度,η_max/min为学习率上下界

自适应优化器调整 Adam优化器默认学习率常设为3e-4 RMSProp适合0.001到0.1范围 对于SGD with momentum,学习率通常比Adam高10倍

实践验证技巧

学习率范围测试 在初始训练阶段进行扫描测试(如1e-7到1e1) 记录损失下降曲线,选择损失下降最快但稳定的区间 PyTorch Lightning提供lr_finder工具自动化此过程

监控训练动态 验证集损失停止下降时考虑降低学习率 训练损失剧烈波动表明学习率可能过高 使用TensorBoard或WandB可视化学习曲线

经典衰减方案 Step衰减:每N个epoch乘以γ(如γ=0.1) Exponential衰减:η_t = η_0 * γ^t 1/t衰减:η_t = η_0/(1 + γt)

高级调整策略

分层学习率 不同网络层使用不同学习率 卷积层通常比全连接层设置更小的学习率 预训练模型的特征提取层学习率常设为新加层的1/10

课程学习策略 随训练进程动态调整学习率 配合数据难度渐进使用,简单样本阶段用较大学习率 可结合样本重加权技术

超参数优化方法 贝叶斯优化搜索最优学习率 遗传算法进行多代进化 网格搜索配合早停机制

实际应用中,学习率需要与batch size协调调整,大batch size通常对应更大的学习率。ResNet论文提出线性缩放规则:当batch size乘以k时,学习率也应乘以k。

相关推荐
L***一2 小时前
汽车产业数字化转型背景下复合型技术人才培养路径研究
学习
丝斯20112 小时前
AI学习笔记整理(39)——自然语言处理算法之词向量 Word2vec
人工智能·学习·自然语言处理
巧克力味的桃子2 小时前
学习笔记:查找数组第K小的数(去重排名)
笔记·学习·算法
旖旎夜光2 小时前
Linux(6)(下)
linux·学习
叫我莫言鸭3 小时前
关于word生成报告的POI学习
学习·word
马剑威(威哥爱编程)3 小时前
【鸿蒙学习笔记】基于HarmonyOS实现申请Push Token的功能
笔记·学习·harmonyos
jjjxxxhhh1233 小时前
2025年底 -对工作做个跨年总结
学习
快点好好学习吧4 小时前
PHP程序员到底为什么要学习正则表达式?使用场景是什么?底层原理是什么?
学习·正则表达式·php
小胡想找到工作4 小时前
一起学习javascript-正则表达式
学习