每天3分钟,彻底弄懂神经网络的优化器(四)ASGD

1. ASGD算法的提出

平均随机梯度下降(Average Stochastic Gradient Descent,ASGD)是一种用于优化可微分目标函数的迭代方法,它是梯度下降优化的随机近似。ASGD的提出可以追溯到1992年,由B.T.Polyak在他的论文《Acceleration of Stochastic Approximation by Averaging》1中首次描述了这一方法。ASGD通过对多个随机梯度的平均值进行更新,来减少随机梯度的方差,从而提高优化算法的收敛速度。这种方法在训练深度神经网络时,可以帮助算法更快地收敛到最优解。

请添加图片描述

2. ASGD算法的原理

不同于上一篇聊到的momentum对梯度进行指数加权平均,ASGD是对多个随机梯度进行平均。ASGD的更新公式如下:

  1. 初始化参数 θ 0 \theta_0 θ0 和学习率 η \eta η;
  2. 对于每次迭代 t t t,计算梯度 g t g_t gt;
  3. 更新参数 θ \theta θ
    θ t + 1 = θ t − η ⋅ 1 t + 1 ∑ i = 1 t g i \theta_{t+1} = \theta_t - \eta \cdot \frac{1}{t+1} \sum_{i=1}^{t} g_i θt+1=θtηt+11i=1tgi
    其中 g i g_i gi 是第 i i i 次迭代的梯度。

这个更新公式中, ∑ i = 1 t g i \sum_{i=1}^{t} g_i i=1tgi 是从第一次迭代到当前迭代所有梯度的累加和,然后除以 t + 1 t+1 t+1 来计算平均值。随着迭代次数的增加,学习率 $\eta $ 乘以的系数 1 t + 1 \frac{1}{t+1} t+11 会逐渐减小,这使得更新步长逐渐变小,有助于算法在接近最优解时更加稳定。

ASGD的一个关键特性是它会在训练过程中累积所有梯度的和,并用这个累积和来更新参数,这有助于减少随机梯度下降中的噪声,并且随着时间的推移,参数更新会逐渐趋向于零,使得算法能够稳定在最优解附近。此外,ASGD通常还会在训练结束后使用所有迭代中参数的平均值作为最终模型参数,这进一步提高了模型的泛化能力。

3. ASGD和Momentum的区别

ASGD和Momentum都是用于优化神经网络的优化算法,它们之间的主要区别在于参数更新的方式。它们都旨在改进基本的随机梯度下降(SGD)算法,但它们在实现上有所不同:

  1. Momentum:

    • Momentum算法通过将之前梯度的指数加权平均值(动量项)与当前梯度相结合来更新参数,这有助于加速梯度下降过程中的收敛,并减少梯度在高曲率区域的振荡。
  2. ASGD:

    • ASGD算法通过计算所有历史梯度的简单平均值来更新参数,而不是像Momentum那样使用指数加权平均。
    • ASGD的一个关键特点是它在每次迭代中都使用相同的学习率,并且随着时间推移,学习率会自然减小,因为分母 ( t ) 随着迭代次数的增加而增加。

主要区别:

  • 动量项的计算方式:Momentum使用指数加权平均来计算动量,而ASGD使用简单算术平均;
  • 学习率的调整:在Momentum中,学习率是固定的,或者可以随着时间进行调整;而在ASGD中,学习率随着迭代次数的增加而自然减小;
  • 收敛行为:Momentum通常在高曲率区域提供更好的加速效果,而ASGD则通过平均历史梯度来平滑梯度更新,减少噪声的影响。

请添加图片描述

参考

[1] Acceleration of stochastic approximation by averaging

欢迎关注我的GitHub和微信公众号,来不及解释了,快上船!

GitHub: LLMForEverybody

仓库上有原始的Markdown文件,完全开源,欢迎大家Star和Fork!

请添加图片描述

神经网络最好的优化器并没有一个固定的答案,选择最适合的优化器取决于许多因素,例如网络的结构,数据集的大小,训练目标等等。然而,有几种常见的优化器被广泛用于神经网络训练中。 一种常见的优化器是梯度下降算法(Gradient Descent,GD)。它是通过计算网络参数的梯度来更新参数,使得损失函数逐渐减小。梯度下降算法有多种变体,包括批量梯度下降(Batch Gradient Descent,BGD),随机梯度下降(Stochastic Gradient Descent,SGD)和动量梯度下降(Momentum Gradient Descent)等。BGD使用全部样本进行参数更新,SGD每次只使用一个样本,而Momentum Gradient Descent则结合了之前梯度的信息,以加速训练过程。 另一种常见的优化器是自适应优化器,如AdaGrad、RMSProp、Adam等。这些优化器可以根据参数的历史梯度信息来调整学习率,并且对于不同的参数可以使用不同的学习率。AdaGrad根据参数的梯度大小来自适应地调整学习率,RMSProp则结合了梯度的平方和动量信息,Adam则同时结合了动量和梯度的一阶矩和二阶矩估计。 选择最适合的优化器需要综合考虑训练速度和结果质量。在实际应用中,可以尝试不同的优化器并通过验证集来评估它们的性能,选择最佳的优化器。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [神经网络中的优化器](https://blog.csdn.net/weixin_62848630/article/details/128823949)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [深度学习神经网络优化器篇](https://blog.csdn.net/To_be_little/article/details/129267632)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值