每天3分钟,彻底弄懂神经网络的优化器(四)ASGD
平均随机梯度下降(Average Stochastic Gradient Descent,ASGD)是一种用于优化可微分目标函数的迭代方法,它是梯度下降优化的随机近似。ASGD的提出可以追溯到1992年,由B.T.Polyak在他的论文《Acceleration of Stochastic Approximation by Averaging》1中首次描述了这一方法。ASGD通过对多个随机梯度的平均值进行更新,来减少随机梯度的方差,从而提高优化算法的收敛速度。这种方法在训练深度神经网络时,可以帮助算法更快地收敛到最优解。
不同于上一篇聊到的momentum对梯度进行指数加权平均,ASGD是对多个随机梯度进行平均。ASGD的更新公式如下:
这个更新公式中,$\sum_{i=1}^{t} g_i$ 是从第一次迭代到当前迭代所有梯度的累加和,然后除以 $t+1$ 来计算平均值。随着迭代次数的增加,学习率 $\eta $ 乘以的系数 $\frac{1}{t+1}$ 会逐渐减小,这使得更新步长逐渐变小,有助于算法在接近最优解时更加稳定。
ASGD的一个关键特性是它会在训练过程中累积所有梯度的和,并用这个累积和来更新参数,这有助于减少随机梯度下降中的噪声,并且随着时间的推移,参数更新会逐渐趋向于零,使得算法能够稳定在最优解附近。此外,ASGD通常还会在训练结束后使用所有迭代中参数的平均值作为最终模型参数,这进一步提高了模型的泛化能力。
ASGD和Momentum都是用于优化神经网络的优化算法,它们之间的主要区别在于参数更新的方式。它们都旨在改进基本的随机梯度下降(SGD)算法,但它们在实现上有所不同:
主要区别:
[1] Acceleration of stochastic approximation by averaging
仓库上有原始的Markdown文件,完全开源,欢迎大家Star和Fork!