梯度下降法与其相关分类

 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
    评论
梯度下降法用于求解二分类逻辑回归模型的最优解。通过梯度下降法,我们可以逐步迭代地调整模型的参数,以使损失函数达到最小值。梯度下降法的基本思路是计算损失函数关于参数的梯度,并按照负梯度方向更新参数。这样反复迭代,直到达到收敛条件或迭代次数达到设定值。 具体实现时,首先需要定义损失函数,通常使用对数损失函数来表示二分类逻辑回归模型的损失。然后,计算损失函数对每个参数的偏导数,即梯度。接着,按照负梯度方向更新参数,通过不断迭代来逐渐降低损失函数的值。 代码实现时,可以使用西瓜数据集作为训练数据,通过手写梯度下降法来求解二分类逻辑回归模型的参数。此外,还可以使用sklearn库中的函数来求解二分类逻辑回归模型的最优解。 总之,梯度下降法是一种常用的求解二分类逻辑回归模型的方法,通过迭代调整模型参数,使损失函数达到最小值,从而得到最优解。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [机器学习之逻辑回归以及梯度下降法求解](https://blog.csdn.net/qq_52785473/article/details/126953977)[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_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值