学习率(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。

相关推荐
上下求索,莫负韶华17 小时前
切面学习笔记
笔记·python·学习
学掌门18 小时前
超级菜鸟怎么学习数据分析?
python·学习·数据分析
崖边看雾19 小时前
OpenCV 图像处理学习笔记|图像运算、边界填充、阈值处理、图像平滑滤波
图像处理·opencv·学习
呱呱巨基19 小时前
Docker 基础概念学习
linux·c++·学习·docker
AI的探索之旅19 小时前
嵌入式视觉学习路线:Qt + OpenCV + 工业相机,从零到综合项目
qt·opencv·学习
sakiko_19 小时前
Swift学习笔记39-实战注意事项
前端·笔记·学习·swift
短视频矩阵源码定制19 小时前
个性化学习机构四大模式深度评测与选型指南
人工智能·学习
xiaoxiangsiyan20 小时前
企业网络运维自动化与管理协议深度指南
linux·运维·服务器·网络·学习·自动化
数智工坊20 小时前
SAMosaic3D:以可学习马赛克组装实现实时在线3D实例分割 | CVPR 2026 论文精读
学习·3d
Aision_20 小时前
实习学习笔记:HTTP请求走私漏洞全方位解析
笔记·学习·安全·web安全·http·网络安全·网络攻击模型