优化算法

1. 简介

深度学习网络中参数更新的优化方法主要分为两种:

  • 调整学习率,使得优化更稳定

  • 梯度估计修正,优化训练速度

2. 常用优化方法汇总

3. 原理

上述常用方法均可以使用一下公式来进行同一描述:

ΔWt=ηtGt+εMtGt=ψ(LW1,,LWt)Mt=ϕ(LW1,,LWt)\begin{array}{c} \Delta \boldsymbol{W}_t = - \frac{\eta_t}{\sqrt{\boldsymbol{G}_t+\boldsymbol{\varepsilon}}}\boldsymbol{M}_t \\ \boldsymbol{G}_t = \psi(\frac{\partial L}{\partial \boldsymbol{W}_1}, \cdots, \frac{\partial L}{\partial \boldsymbol{W}_t}) \\ \boldsymbol{M}_t = \phi(\frac{\partial L}{\partial \boldsymbol{W}_1}, \cdots, \frac{\partial L}{\partial \boldsymbol{W}_t}) \end{array}

其中,LWt\frac{\partial L}{\partial \boldsymbol{W}_t} 是第 tt 步的梯度,ηt\eta_t 是第 tt 步的学习率(可以进行衰减,也可以不变);ψ()\psi(\cdot) 是学习率缩放函数,可以取 1 或者历史梯度的模的移动平均;ϕ()\phi(\cdot) 是优化后的参数更新方向,可以取当前的梯度 LWt\frac{\partial L}{\partial \boldsymbol{W}_t} 或历史梯度的移动平均。