优 化 器 篇 优化器篇 优化器篇


什么是优化器?
管理并更新模型中的可学习参数,使得模型的预测输出值逼近真实标签,即降低loss。


更新过程:

  1. 先由损失函数模块得出模型输出和标签之间的差异的loss值
  2. 再利用AutoGrad自动求导模块求到模型中学习参数(权值、偏置)的梯度
  3. 最后优化器拿到这个梯度,采取一系列策略,更新模型的学习参数,使得Loss值下降

基础概念:

  • 导数:函数在指定坐标轴上的变化率
  • 方向导数:指定方向上的变化率
  • 梯度:一个向量,方向为方向导数取得最大值的方向

学习率调整策略:

StepLR:间隔调整学习率
MultiStepLR:按设定的间隔调整学习率
ExponentialLR︰按指数衰减调整学习率
CosineAnnealingLR:以余弦函数为周期,在每个周期最大值时重置学习率
CosineAnnealingWarmRestarts : CosineAnnealingLR加上warmup
ReduceLROnPlateau:当某指标不再变化(下降或升高),调整学习率


基于PyTorch实现各类优化器


优 化 器 策 略 优化器策略 优化器策略


AdamW


二 Adadelta


三 Adagrad


四 Adam


五 SparseAdam


六 Adamax


七 ASGD


八 LBFGS


九 RMSprop


十 Rprop


十一 SGD


十二 LookaHead优化器


学 习 率 调 整 策 略 学习率调整策略 学习率调整策略


一 MultiplicativeLR


二 LambdaLR


三 StepLR


四 MultiStepLR


五 ExponentialLR


六 CosineAnnealingLR


七 ReduceLROnPlateau


八 CyclicLR


九 OneCycleLR


十 CosineAnnealingWarmRestarts