第四篇 2.2-线性回归中使用梯度下降法及原理

本文为学习记录,写的不好请大家指正见谅,互相学习,也为自己巩固学习成果包括后续复习所用!

梯度下降法介绍:

1.batch gradient descent(批量梯度下降法)

在一个二维平面上,和线性回归图像不同,线性回归图像是用特征作为坐标轴,而绘制梯度下降图像的时候,我们将损失函数J作为我们的纵坐标,参数theta作为我们的横坐标,图像如下:

在图中我们可以看到,在蓝点中,dJ/dt 为负数,也就是这个点的导数为负,表示在这个蓝点上移动往导数为0点移动最快的方向,

随着theta的增大,导数不断的增大,所以我们在导数公式前加上一个 -eta 变量,这个-eta表示移动的距离,反之,在导数为正的点也可以用这个公式表示 .

所以梯度下降法就是找到参数theta,使我们的损失函数J达到最小值

 

我们扩展到多特征样本,这个时候我们的theta就会变成一个向量

所以对J进行求导,如下图

 

最后得出对我们损失函数求导结果为

2/m * X_b.T.(X_b - y)

X_b为对我们的样本X增加一列特征值全为1的样本数据。接下去用代码去实现这个梯度下降法

这里可以得出,我们的算出来的theta截距为4,第一个theta为3,符合我们的式子。

2.stochastic gradient descent(随机梯度下降法)

如果有的时候我们的样本数和特征都很多,使用批量梯度下降法的话,时间就很久,所以这时候需要我们采用随用随机梯度下降法。随机梯度下降法的思想也很简单

就是我们随机的在里面取一个样本,然后对这个样本求导,使我们的J慢慢的下降,但是不能不是沿着最快方向下降。

直接给出我们的代码

包括我们的scikit-learn中,梯度下降法也是使用我们的随机梯度下降法来实现

 3.关于梯度的调试

 

我们需要取样本,对梯度进行调试,来测试我们的梯度下降法是否正确,根据图中公式,我们可以得知,两个蓝色点连成的直线,我们可以近似的认为这条直线与红色点的切线平行,只要 我们的取得值够小。

下面来看看我们的代码

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值