学习率
学习率每次更新走多大步
学习率是梯度下降优化中最核心的超参数,决定每次参数更新沿梯度方向移动的步幅大小。设置得当则训练稳健收敛,设置失当则震荡发散或停滞不前,其对模型最终性能的影响往往超过网络结构本身。
概述
学习率(Learning Rate)在每次反向传播后决定参数沿梯度方向走多大一步。
- 核心公式:θ ← θ − η·∇L,其中 η 为学习率,∇L 为损失对参数的梯度。
- 过大的后果:更新步幅超过损失曲面曲率,参数在谷底两侧震荡甚至发散,训练失败。
- 过小的代价:收敛极慢,容易陷入鞍点(saddle point),浪费算力。
- 无普适最优值:合适的 η 依赖于模型规模、批大小、优化器及数据分布,须针对具体设置调整。
- 最重要的超参数之一:业界普遍认为 η 对训练结果的影响超过大多数网络结构选择。
工作原理
现代训练几乎不使用固定学习率,而是通过调度器(scheduler)动态调整以兼顾速度与稳定性。
- Warmup(预热):训练初期数百至数千步将 η 从极小值线性升至目标值,防止随机初始化带来的大梯度导致参数早期严重偏移;GPT 系列、LLaMA 系列均采用此策略。
- 余弦退火(Cosine Annealing):预热后 η 按余弦曲线平滑降至接近零,避免阶梯衰减的突变,是大语言模型(LLM)预训练的事实标准。
- 自适应优化器:Adam、AdamW 等为每个参数维护独立的自适应步长(基于一阶矩与二阶矩估计),使全局 η 的作用被局部缩放,但 η 本身仍是关键旋钮。
- 梯度累积的影响:批大小翻倍时,每步梯度估计噪声降低,通常需按线性缩放规则同步翻倍 η,但极大批大小下该规则会失效。
调度策略与变体
不同任务和规模对调度策略的需求各异,以下是主流选项。
- 线性衰减(Linear Decay):η 从目标值线性降至零,实现简单,BERT 微调早期广泛使用。
- 余弦退火(Cosine Annealing):曲线平滑、无需手动设置衰减节点,大规模预训练首选;变体「带热重启的余弦退火(SGDR)」在衰减结束后重新升温,有助于跳出局部极小,Loshchilov & Hutter 发表于 ICLR 2017。
- 阶梯衰减(Step Decay):每隔固定 epoch 将 η 乘以衰减因子(如 0.1),常见于 ResNet 等图像分类任务,简单粗暴。
- 循环学习率(Cyclic LR):Leslie Smith(2017 前后) 提出,周期性升降 η 帮助模型探索更广的参数空间,适合中小规模实验。
- Warmup + Cosine:二者组合已成 LLM 训练标配,warmup 步数通常为总步数的 1%–5%。
应用场景
不同训练阶段和任务对学习率的需求存在显著差异。
- 大模型预训练:η 通常设在 1e-4 至 3e-4 之间,配合余弦衰减到 η/10 量级;GPT-3 峰值 η 约为 6e-5,LLaMA-2 约为 3e-4。
- 全量微调(Full Fine-tuning):η 比预训练低一到两个数量级(常见 1e-5 至 5e-5),过高会导致灾难性遗忘(catastrophic forgetting)。
- 参数高效微调(PEFT / LoRA):可训练适配器部分可使用相对较高的 η(如 1e-4),主干参数冻结,需独立调整。
- RLHF 的 PPO 阶段:对 η 极为敏感,过高的 η 会导致策略崩溃(policy collapse),通常远低于预训练量级。
- 图像分类:ResNet 等经典模型常以 0.1 起步配合阶梯衰减,与 NLP 场景差异较大。
与相邻概念的区别
学习率常与其他优化超参数并列讨论,理解其差异有助于整体调参。
- η vs 动量(Momentum):动量决定历史梯度对当前更新的影响权重,与 η 协同作用;动量越大等效步长越大,此时往往需适当降低 η。
- η vs 权重衰减(Weight Decay):权重衰减是正则化手段(每步微缩参数值),AdamW 将其与自适应学习率解耦,使正则化效果更稳定,优于原始 Adam 的 L2 实现。
- η vs 批大小(Batch Size):批大小影响梯度估计的噪声水平(间接影响收敛动态),η 决定步长;二者强耦合,不可单独孤立调优。
- 全局 η vs 逐层 η:分层学习率策略(Layer-wise LR)对不同层设不同 η,如微调时底层用更小 η 以保留预训练特征,顶层用更大 η 适应下游任务。
局限与常见误区
即便了解基本原理,实践中仍有若干高频陷阱。
- 直接沿用他人默认值:不同批大小、模型规模下最优 η 差异极大,盲目复用论文或开源代码的默认值是最常见失误。
- 忽视 warmup 必要性:跳过 warmup 直接用大 η 启动大参数量模型,极易出现训练初期损失剧烈抖动乃至 NaN。
- 只看训练损失:更可靠的信号是验证集损失和梯度范数(gradient norm);梯度范数持续偏大通常意味着 η 过高。
- 误以为自适应优化器无需调 η:Adam / AdamW 降低了对 η 精确值的敏感度,但并不消除调参需求,选错量级同样影响显著。
- 衰减过早或过激:学习率过早降到极低值,模型在训练末期几乎无法继续学习,造成算力浪费。
发展脉络
学习率研究随深度学习的演进持续深化,从固定值到自适应再到精密调度。
- 1986:Rumelhart、Hinton、Williams 在反向传播论文中使用固定 η,奠定现代学习率概念基础。
- 2011:Duchi 等 提出 Adagrad,首次实现逐参数自适应学习率,适合稀疏梯度场景。
- 2012:Hinton 在课程中提出 RMSProp,引入梯度平方的指数移动平均,稳定自适应步长。
- 2015:Kingma & Ba 在 ICLR 2015 正式发表 Adam 论文(2014 年挂出预印本),结合一阶矩与二阶矩估计,成为深度学习最广泛使用的优化器。
- 2017:Loshchilov & Hutter 在 ICLR 2017 上发表带热重启的余弦退火(SGDR),cosine decay 由此进入主流。
- 2017:Facebook Research 在 ImageNet 大规模实验中验证线性缩放规则,批大小与 η 的关系被系统化。
- 2019:Loshchilov & Hutter 提出 AdamW,将权重衰减与自适应 η 解耦,成为 LLM 预训练标配优化器。
常见误解
日常交流中容易听到的简化说法,未必准确,但能帮助理解误解从何而来。
- 「每次更新走多大步」
- 「机器学习基础概念」
- 「跟 学习率 是一回事吗」
相关术语
和本术语关联紧密的其他词条,便于串联理解。
🎯 考点练习
含该术语的高频面试题,含标准答案与追问。
- 初级概念高频查看详解 →
参数与超参数有什么区别?
参数是训练中模型自动学习的(权重/偏置),超参数是训练前人为设定的(学习率/层数/batch大小)。
- 初级编码高频查看详解 →
手撕代码:用梯度下降实现线性回归
前向 ŷ=Xw+b,MSE 损失,推导对 w、b 的梯度并用学习率迭代更新参数。
- 中级概念查看详解 →
在线学习与增量学习是什么?适用什么场景?
数据流式到达、模型逐步更新,无需重训全量;需应对灾难性遗忘、概念漂移与稳定性-可塑性权衡。
- 初级概念高频查看详解 →
梯度下降的原理是什么?SGD 和 Adam 有什么区别?
沿损失梯度反方向更新参数;SGD 用 mini-batch 估计梯度,Adam 自适应学习率,收敛更快更稳。
延伸阅读
从知识库精选 2 篇文章,帮助深入理解该术语。
外部参考
维基百科:查看「学习率」词条本页内容为本站原创撰写;维基百科链接仅作延伸参考。
