梯度下降法与其相关分类

 1、梯度下降的基本思想

        每走一段路,测量出最陡的方向,然后向前 ,重复此过程找到山脚。

2、梯度下降法的主要原理

        (1)、确定一个小目标——预测函数

                在二维直角坐标系中有一群样本点,横纵坐标代表有有因果关系的变量,拟合数据找到一条直线,使所有样本点和这条直线的偏离程度最小。这时候 y = wx就是预测函数。

        

         (2)、找到差距——代价函数

                首先,我们需要量化数据的偏离程度——常用均方误差MSE(误差平方和的平均值)

 对于点P1,对应的误差为e1,等于这个点的真值y1与预测值w*x1差的平方,再用完全平方式展开即可 。同理可计算出P2、P3……Pn的误差

 并且xy和样本数n都是已知项通过合并同类项,再用常量abc代表不同的系数,就可以得到一个一元二次方程。

 在将系数1/n忽略,得到的e就表示了学习需要付出的代价,也被称为代价函数。

 

 对于代价函数,a > 0,很明显是一条开口向上的抛物线。一定拥有最小值点。且当w的值变化时,直线y = wx绕原点旋转,对应到抛物线图像就是取值点沿着曲线的运动。

 

 通过定义预测函数y = wx然后根据误差公式推导代价函数e,我们成功的将样本点的拟合过程映射到了一个函数图像上。

        (3)、明确搜索方向——梯度计算

        机器学习的目标是拟合出最接近训练数据的直线,也就是找到使得误差代价最小的参数w,对应在代价函数图像上,就是找到他的最低点。因此这个寻找最低点的过程就是梯度下降。

        假设起始点在曲线上任意一点只要沿着陡峭程度(梯度)最大的方向走,就能很快到达最低点。梯度就是代价函数的导数,对于抛物线而言就是曲线斜率。

        (4)大胆地往前走吗——学习率

        确定梯度方向后,一次前进多少呢?当学习率过大或者过小时,会导致反复横跳而达不到最低点。如果使用斜率作为步长,离最低点远时,斜率较大可以快速收敛、离最低点近时斜率较小,步子较小。但实际效果会反复横跳,无法收敛到最小值。

 如何解决这个问题呢?观察发现这是由于步长过大导致的问题,那么将斜率乘以一个很小的值如0.01来缩小步长就可以解决这个问题了!这个很小的值就叫做学习率。而通过学习调整权重w的方式就是

         (5)、不达目的不罢休——循环迭代

        梯度下降法的完整过程包括:①定义代价函数;②选择起始点;③计算梯度找到下降方向;④沿着这个方向按照学习率前进;⑤重复③④直到找到最低点;

3、实际情况没有这么简单

实际情况中维度可能更高,代价函数不一定是一个简单的抛物线。某种情况下,代价函数可能是一条波浪线。有多个局部最小点,但我们要找的是全局最优。

 4、梯度下降法的各种变体

        批量梯度下降算法BGD:使用全部训练样本参与计算,梯度下降的非常平稳 ;能保证素昂发精准度,找到全局最优解,但是让训练过程变得很慢 ,代价很大。

         随机梯度下降算法SGD:每次下降只用一个样本进行计算,大方向没错但下降的不平稳;大大提高了下降的速度,但是降低了精准度。

 小批量梯度下降算法MBGD(最速下降法):每下降依次就选用一小批样本进行计算,下降相对较快,较为准确。

 5、总结

        梯度下降法十分依赖学习率。学习率过大会导致反复横跳,学习率过小会导致计算量过大;除非使用BGD,其他方式可能会陷入局部最优解而找不到全局最优解。

        AdaGrade——动态学习率:经常更新的参数学习率就小一些,不常更新的学习率大一些。但是可能会导致频繁更新参数的学习率可能过小,以至于逐渐消失。下面几种算法解决了这个问题。

        RMSProp——优化动态学习率

        AdaDelta——无需设置学习率

        Adam——融合AdaGrade和RMSProp

        Momentun——模拟动量

参考B站视频【梯度下降】3D可视化讲解通俗易懂_哔哩哔哩_bilibili

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值