深度学习记录--Momentum gradient descent

文章介绍了Momentum梯度下降算法,通过指数加权平均减少波动并加速学习。它利用动量抵消正负梯度,使模型在收敛过程中更稳定。文章还讨论了贝塔值对梯度下降速率的影响,以及如何根据问题和数据集调整以优化性能。
摘要由CSDN通过智能技术生成

Momentum gradient descent

正常的梯度下降无法使用更大的学习率\alpha,因为学习率过大可能导致偏离函数范围,这种上下波动导致学习率无法得到提高,速度因此减慢(下图蓝色曲线)

为了减小波动,同时加快速率,可以使用momentum梯度下降

指数加权平均运用到梯度下降,成为momentum梯度下降(图中红色曲线)

原理:

纵轴上,平均过程中正负数相互抵消,所以纵轴上的平均值接近于0

横轴上,所有的微分都指向横轴方向,所有横轴方向上的平均值依然较大

因此,纵轴上摆动减小,横轴上运动速度加快

进一步解释:

把图像比作一个碗,轨迹视为小球的轨迹,从边缘向碗内最低点运动

其中dw,db可以看作加速度,v_dw,v_db可以看作速度,\beta可以看作摩擦力

因此,小球会向着碗中心运动,最终因摩擦力而停下来

代码演示:

v_dw=0;v_db=0
BETA=0.9
dw=[1,2,4,5,7,10,11]
db=[2,28,15,66,24,10,12]
for i in range(0,7):
    v_dw=BETA*v_dw+(1-BETA)*dw[i]
    v_db=BETA*v_db+(1-BETA)*db[i]
    print("the ",i," time: ","v_dw = ",v_dw,"\n")
    print("the ",i," time: ","v_db = ",v_db,"\n")

结果如下:

补充:贝塔值大小对梯度下降速率的影响

  1. 较大的β值:

    • 如果β值较大,动量项会更快地积累过去的梯度信息。这样可以帮助在梯度方向上持续前进,有助于克服局部最小值的影响,提高参数的更新速度。
    • 但过大的β值可能导致在垂直方向上的更新过于迅速,可能引入过多的振荡,导致性能下降。
  2. 较小的β值:

    • 如果β值较小,动量项对过去梯度的积累相对较慢,可能更容易跳出局部极小值,但也可能导致在梯度方向上更新的速度较慢。
    • 较小的β值通常能够提供更稳定的更新路径,但可能需要更长的时间来收敛。

选择合适的β值通常需要根据具体问题和数据集进行实验和调整。通常,常见的β值为0.9,但在实践中,研究人员可能需要根据具体情况进行调整以获得最佳性能。试验不同的值,观察训练过程中的收敛速度和性能,以找到适合特定任务的超参数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值