跳到主内容
快讯直播
AI智模界
AI 词典

OneCycle 学习率调度:先升后降的三角曲线

一句话定义:OneCycle 学习率调度(OneCycle LR schedule)是一种让学习率在训练中途升到最高、再一路退到接近零的策略——整段训练的学习率曲线像一座小山,而不是常见的一路下坡。

为什么这样设计

常规直觉是“学习率越到后期越小”。OneCycle 反着来:开头用不大的学习率热身(大约占总步数的两三成),随后升到峰值,峰值往往比常规设置大好几倍;过了中点再一路下降,终点甚至低于起点。

打个比方。训练模型就像让一颗珠子在起伏的地形上找到最低的谷底。学习率小,珠子轻轻滚,很快卡在第一个浅坑里出不来。学习率大,相当于给它一脚,噪声把它踢出浅坑、翻过小坡;但一直猛踢,它永远安静不下来。OneCycle 的做法是:先把珠子晃起来,让它有本事逃离糟糕的坑;再逐渐收力,最后轻手轻脚,让它稳稳停在最深的谷底。

高学习率阶段还有个副产品:更新噪声本身起到正则化作用,模型不容易死记硬背训练数据。末尾的小学习率负责精修,让参数停在一个较为平坦的低谷里,泛化通常更好。合起来就是常说的“超收敛”(super-convergence):用更少的轮数跑出不错的结果。

和 warmup + 余弦有什么不同

维度OneCyclewarmup + 余弦退火
学习率形状升到峰值,再降到低于起点升到峰值后单调下降
峰值位置训练中段训练起点
动量常与学习率反向变化,接力控制步长通常固定
训练预算必须提前知道总步数较灵活,可配合重启

一句话概括:warmup 只是开头的保护措施,防止随机初始化的模型被大学习率带偏;OneCycle 把这段保护纳入整体设计,真正的目标是“用高学习率跑完全程”。余弦退火的峰值就是起点,之后只降不升;OneCycle 的峰值在中间,终点更低。此外 OneCycle 常把动量也做成反向曲线:学习率升时动量降,学习率降时动量升,两者接力维持更新幅度。

对从业者的意义

OneCycle 是“省调参、省算力”的实用默认选项:按总步数设一次,通常就有接近调参后的效果,相同轮数下往往收敛更快。代价是训练必须跑满预定预算,中途停下再恢复会打乱节奏;做微调、训练步数不确定或数据流式到达时,warmup + 余弦更省心。各框架的具体实现略有差异,参数含义以官方文档为准。

AI 生成本文由 AI 基于公开信息自动生成,仅供参考。