机器学习第一周(线性回归的梯度下降)

回顾

之前我们介绍了线性回归模型与梯度下降法,很显然,梯度下降法可以帮助我们实现在线性回归模型中自动寻找代价函数最小值对应的参数,现在,我们要将代价函数和梯度下降结合得到线性回归的算法,它可以用直线模型拟合数据。
前情回顾
左边是梯度下降算法,我们会反复做这一步 θ j : = θ j − α ∂ ∂   θ j J ( θ 0 , θ 1 ) \theta_j:=\theta_j-\alpha{\large\frac {\partial} {\partial\,\theta_j}}J(\theta_0,\theta_1) θj:=θjαθjJ(θ0,θ1),直到梯度下降收敛。

右边是我们的线性回归模型,其中, h θ ( x ) = θ 0 + θ 1 x h_\theta(x)=\theta_0+\theta_1x hθ(x)=θ0+θ1x表示线性假设函数, J ( θ 0 , θ 1 ) = J(\theta_0,\theta_1)= J(θ0,θ1)=   1 2 m \,\Large1\over {2m} 2m1 ∑ i = 1 m \large\sum_{i=1}^m i=1m ( h θ ( x i ) − y i ) 2 (h_\theta(x^i)-y^i)^2 (hθ(xi)yi)2表示平方差代价函数。

实现线性回归的梯度下降算法

现在,我们的目标就是将梯度下降应用到最小化平方差代价函数,即          θ 0 θ 1 m i n i m i z e \large_{\;\;\;\;\theta_0\theta_1}^{minimize} θ0θ1minimize J ( θ 0 , θ 1 ) J(\theta_0,\theta_1) J(θ0,θ1),我们要写出梯度下降的方程,关键步骤就是这个微分项 ∂ ∂   θ j J ( θ 0 , θ 1 ) {\large\frac {\partial} {\partial\,\theta_j}}J(\theta_0,\theta_1) θjJ(θ0,θ1),因此,我们需要计算出这个偏导数项是什么。

偏导数的计算

我们首先将假设函数代入代价函数中,可得
J ( θ 0 , θ 1 ) = J(\theta_0,\theta_1)= J(θ0,θ1)=   1 2 m \,\Large1\over {2m} 2m1 ∑ i = 1 m \large\sum_{i=1}^m i=1m ( θ 0 + θ 1 x i − y i ) 2 (\theta_0+\theta_1x^i-y^i)^2 (θ0+θ1xiyi)2

再将代价函数代入偏导数中,可得
1 2 m \Large{1\over {2m}} 2m1 ∂ ∂   θ j {\large\frac {\partial} {\partial\,\theta_j}} θj ∑ i = 1 m \large\sum_{i=1}^m i=1m ( θ 0 + θ 1 x i − y i ) 2 (\theta_0+\theta_1x^i-y^i)^2 (θ0+θ1xiyi)2

再分别讨论 j j j 的取值

j = 0 j=0 j=0时,有
1 2 m \Large{1\over {2m}} 2m1 ∂ ∂   θ 0 {\large\frac {\partial} {\partial\,\theta_0}} θ0 ∑ i = 1 m \large\sum_{i=1}^m i=1m ( θ 0 + θ 1 x i − y i ) 2 = (\theta_0+\theta_1x^i-y^i)^2= (θ0+θ1xiyi)2= 1 m \Large{1\over {m}} m1 ∑ i = 1 m \large\sum_{i=1}^m i=1m ( θ 0 + θ 1 x i − y i ) (\theta_0+\theta_1x^i-y^i) (θ0+θ1xiyi)

j = 1 j=1 j=1时,有
1 2 m \Large{1\over {2m}} 2m1 ∂ ∂   θ 1 {\large\frac {\partial} {\partial\,\theta_1}} θ1 ∑ i = 1 m \large\sum_{i=1}^m i=1m ( θ 0 + θ 1 x i − y i ) 2 = (\theta_0+\theta_1x^i-y^i)^2= (θ0+θ1xiyi)2= 1 m \Large{1\over {m}} m1 ∑ i = 1 m \large\sum_{i=1}^m i=1m ( θ 0 + θ 1 x i − y i ) ∗ x i (\theta_0+\theta_1x^i-y^i)*x^i (θ0+θ1xiyi)xi

最后代入到梯度下降算法中,即可得到如下图所示的方程组
偏导数项
这就是我们线性回归中的梯度下降算法,需要注意的是在更新参数时,我们需要遵循同步更新的原则。

梯度下降的过程

梯度下降的过程
从上图中可以看出,我们从一个初始位置出发,然后一步一步的向全局最优点靠近。

之前我们讨论到代价函数随着参数数量的增加,其对应的维度也会增加,在三维的图像中,我们可能存在着多个局部最小值,梯度下降最终会收敛到哪个最小值,取决于我们参数初始化的取值。而在线性回归模型中,其代价函数往往是一个凸函数,也就是说在线性回归中,往往只有一个全局最优点,对于这种函数使用梯度下降,它总是会收敛到全局最优,因为它没有局部最优的情况。

Batch梯度下降

使用全部样本的梯度下降法
我们在上面介绍的这种梯度下降法,有时被称为Batch梯度下降,这意味着每一步梯度下降,我们都遍历了整个训练集的样本,因为根据我们之前给出的代价函数公式 J ( θ 0 , θ 1 ) = J(\theta_0,\theta_1)= J(θ0,θ1)=   1 2 m \,\Large1\over {2m} 2m1 ∑ i = 1 m \large\sum_{i=1}^m i=1m ( h θ ( x i ) − y i ) 2 (h_\theta(x^i)-y^i)^2 (hθ(xi)yi)2,可以看出,每一步梯度下降,在计算总和 ∑ i = 1 m \large\sum_{i=1}^m i=1m ( h θ ( x i ) − y i ) 2 (h_\theta(x^i)-y^i)^2 (hθ(xi)yi)2时,我们会计算所有样本的平方差,所以我们称之为Batch梯度下降法。很显然,有时候还会有不是Batch梯度下降的梯度下降法,它们往往并没有关注整个训练集,而是每次只关注一些小子集。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

PL_涵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值