重新认识优化器

0x00 梯度下降法(Gradient Descent)

0x00 标准梯度下降法(GD)

假设要学习训练的模型参数为 WW ,代价函数为 J(W)J(W) ,则代价函数关于模型参数的偏导数即为相关梯度 ΔJ(W)\Delta J(W) ,学习率为 ηt\eta_t WtW_t 表示 tt 时刻的模型参数,则使用梯度下降法更新后的参数 Wt+1W_{t+1} 为:

Wt+1=WtηtΔJ(Wt)W_{t+1}=W_t-\eta_t\Delta J(W_t)

其基本的策略为在有限的视距内寻找最快的路径下山,因此每走一步都会沿着当前最陡的方向迈出下一步。

标准梯度下降法主要有两个缺点:

  1. 训练速度慢:每走一步都要要计算调整下一步的方向,下山的速度变慢。在应用于大型数据集中,每输入一个样本都要更新一次参数,且每次迭代都要遍历所有的样本。会使得训练过程及其缓慢,需要花费很长时间才能得到收敛解。

  2. 容易陷入局部最优解:由于是在有限的视距内寻找下山的方向。当落入鞍点(局部最优解),梯度为0,使得模型参数不再继续更新。

0x01 批量梯度下降法(BGD)

从总样本中抽取一个小的批次来计算误差,然后更新模型参数。比如抽取一个大小为n的批次,来进行批量梯度下降,公式即为:

Wt+1=Wtηti=1nΔJ(Wt,X(i),Y(i))W_{t+1}=W_t-\eta_t\sum_{i=1}^n\Delta J(W_t, X_{(i)}, Y_{(i)})