梯度下降、上升法

本文详细探讨了梯度下降算法在优化线性回归中的应用,涉及导数的概念、不同学习率的影响,以及随机梯度下降的原理。文章还分析了梯度上升,强调了矩阵化处理的优势,并讨论了学习率调整和梯度调试的方法。
摘要由CSDN通过智能技术生成

梯度方法

通过不断向梯度下降(上升)方向移动,从而不断得到新的系数,当带入测试数据的系数与测试结果误差小于指定误差时,得到模型系数。

梯度下降

最小化损失函数

数学化含义

导数代表J增大方向,故移动的步长为,即取新的点值为 x-η(dJ/dθ),则新点向方向导数减少的方向移动。最终得到导数最小点。

线性回归中的梯度下降

对累和的导数值过大,所以进行/m的操作

关于η的讨论

在一元二次方程线性回归不同η带来的下降图像,图中eta即η

当η过大时,导致下降会不收敛从而无结果

简单代码实现

二次曲线举例:方程为 y=(x-2.5)^2-1

梯度下降运算矩阵化

梯度下降优缺点评价

比回归方程更快

样本量较大时因为要计算每个样本梯度,速度会拉慢

随机梯度下降法

原理

不再取全部样本的元素计算θ,而只取一个样本中的所有元素

对多元的数据,theta = theta-eta*gradient,gradient中是每个元的梯度,最后得到的θ是一元的

求梯度公式变形

学习率改动

由于随机取数,梯度下降的判断可能不在最小值点就有最小差值,故不在取这个判断方式,按循环 次数来决定何时停止。同时学习率也不能再固定,需要随循环变小

随机梯度下降,若学习率固定,由于随机性可能到了最小值附近后又走出去,故学习率要随着循环变小,即模拟退火思想

i_iters是循环数,t0、t1是超参数,控制η变小

代码实现

GradientDescent中实现

修改:拿数据

因为skilearn版本变化,一些参数名称改变

重查参数名称

对梯度debug

原理

所求的点的梯度值应该和他两边点的切线近似,点越近值越近

计算量比较大,拿部分样本试试就行,适合debug

梯度上升

最大化效用函数

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值