机器学习Machine Learning学习笔记——梯度下降法Gradient Descent

本文详细介绍了优化算法在深度学习中的应用,包括梯度下降法的基本原理,学习率的选择及其影响,Adagrad算法的自适应学习率思想,以及随机梯度下降法如何提升效率。此外,还探讨了特征缩放的重要性,以确保不同特征对模型的影响均衡,从而加速收敛并提高模型性能。特征缩放的方法如标准化也被提及。
摘要由CSDN通过智能技术生成

一、梯度下降

在回归问题的第三步中,需要解决损失函数的最优化问题:

然后分别计算初始点处,两个参数对 LL 的偏微分,然后 θ0 减掉 η 乘上偏微分的值,得到一组新的参数。同理反复进行这样的计算。黄色部分为简洁的写法,▽L(θ) 即为梯度。

二、选择学习率需要注意的问题

过小增大计算量,同时得到结果的速度慢;过大则容易约过最优解,在最优解两端振荡。

 

调整方法:自适应学习率

学习率不能是一个值通用所有特征,不同的参数需要不同的学习率

三、Adagrad算法

Adagrad算法的思想:每个参数学习率都除以此前微分的均方根,进行学习率的更新。

化简后结果:

对上式进行分析,梯度越大的时候,步伐应该越大,但下面分母又导致当梯度越大的时候,步伐会越小。为理解二者之间的作用影响,则需要对于梯度和步伐的确切关系进行分析。

考虑单个参数时:可以认为如果算出来的微分越大,则距离最低点越远。而且最好的步伐和微分的大小成正比。所以如果踏出去的步伐和微分成正比,它可能是比较好的。

多参数情况下上述结论不一定成立

对上述结论进行完善

之前说到的最佳距离 ∣(2ax0+b)\2a∣,还有个分母 2a 。对function进行二次微分刚好可以得到:

∂^2y∂x^2=2a

所以最好的步伐应该是:

一次微分\二次微分

即不止和一次微分成正比,还和二次微分成反比。最好的step应该考虑到二次微分:

对于​分母部分的微分均方值就是希望再尽可能不增加过多运算的情况下模拟二次微分。(如果计算二次微分,在实际情况中可能会增加很多的时间消耗)

 

四、随机梯度下降法——比上文中的一般梯度下降法更快

损失函数不需要处理训练集所有的数据,选取一个例子 x^n

L=(y^n−(b+∑wixi^n))^2

θi=θ^i−1−η▽L^n(θ^i−1)

此时不需要像之前那样对所有的数据进行处理,只需要计算某一个例子的损失函数Ln,就可以赶紧update 梯度。

对比

常规梯度下降法走一步要处理到所有二十个例子,但随机算法此时已经走了二十步(每处理一个例子就更新)

五、特征缩放

对于一个函数y=b+w1​x1​+w2​x2

如果两个输入的分布和通道范围不一样,通常将其进行范围缩放,将不同输入的范围统一成一致的

将输入范围统一的原因

 9ddebf95d1b2dd99a31ad7d2b6ce1edb.png

上图左边是 x1​ 的scale比 x2 要小很多,所以当 w1和 w2​ 做同样的变化时,w1​ 对 y 的变化影响是比较小的,x2​ 对 y 的变化影响是比较大的。

坐标系中是两个参数的error surface(现在考虑左边蓝色),因为 w1 对 y 的变化影响比较小,所以 w1​ 对损失函数的影响比较小,w1​ 对损失函数有比较小的微分,所以 w1​ 方向上是比较平滑的。同理 xx2​ 对 y 的影响比较大,所以 x2​ 对损失函数的影响比较大,所以在 x2​ 方向有比较尖的峡谷。

上图右边是两个参数scaling比较接近,右边的绿色图就比较接近圆形。

对于左边的情况,上面讲过这种狭长的情形不过不用Adagrad的话是比较难处理的,两个方向上需要不同的学习率,同一组学习率很难解决。而右边情形更新参数就会变得比较容易。左边的梯度下降并不是向着最低点方向走的,而是顺着等高线切线法线方向走的。但绿色就可以向着圆心(最低点)走,这样做参数更新也是比较有效率。

六、缩放方法举例

将特征标准化:

七、梯度下降理论基础——利用泰勒展开

不考虑s的话,剩下的部分就是两个向量(△θ1,△θ2)和(u,v) 的内积,让它最小,就是和向量 (u,v)方向相反的向量

 

代入u、v

条件:学习率足够小

梯度下降的限制:容易陷入局部极值或卡在微分值为0但不为极值的点,以及实际中微分值小于某很小数值时便停止,并未达到标准极值点。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值