Coursera机器学习笔记 第1周 第二章 单变量线性回归(二)

本文介绍单变量线性回归中的梯度下降算法原理及其应用,包括参数学习过程、梯度下降的直观理解及在线性回归中的具体实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第二章 单变量线性回归(二)

第2节 参数学习(Parameter Learning)

2.5 梯度下降

参考视频 : 2 - 5 - Gradient Descent (11 min).mkv

梯度下降(gradient descent)是一个用来求函数最小值的算法,可以通过它来求出代价函数J(θ0,θ1)J(\theta_{0},\theta_{1})J(θ0,θ1)的最小值。梯度下降算法的思想是:开始时随机选择一个参数组合(θ0,θ1,...,θn)(\theta_{0},\theta_{1},...,\theta_{n})(θ0,θ1,...,θn),计算代价函数函数值,然后根据代价函数值下降最快的方向(导数)趋势计算出下一个参数组合,持续这么做直到找到一个局部最小值(local minimum)。因为并没有尝试完所有的参数组合,所以不能确定我们得到的局部最小值是否是全局最小值(global minimum),选择不同的初始参数组合,可能会找到不同的局部最小值,最终找到全局最小值。如下图,
梯度下降 图示

梯度下降算法与下山问题:想象一下你站在山上一点,想用小碎步最快下山。首先旋转360度看看周围,找到最佳的下山方向(下降最快的方向)迈了一步,然后停下来再看看周围,找最佳的下山方向,持续这么做,直到达到一个周围都是平地的地方停下(因为周围已经没有可以继续下降的方向了)。

梯度下降算法:
repeat until convergence{  θj:=θj−α∂∂θjJ(θ0,θ1)(for j=0 and j=1 update simultaneously)}repeat\ until\ convergence \\ \{ \\ {\; \quad \theta_j := \theta_j-\alpha\frac{\partial }{\partial \theta_j}J(\theta_0,\theta_1) \quad \text{(for j=0 and j=1 update simultaneously)} } \\ \}repeat until convergence{θj:=θjαθjJ(θ0,θ1)(for j=0 and j=1 update simultaneously)}

其中α\alphaα是学习率(learning rate),它决定了我们沿着梯度下降最快的方向迈出的步子有多大。另外在梯度下降算法中,一个需要注意的问题是,我们需要同时更新θ0,θ1\theta_0, \theta_1θ0,θ1。对于单变量线性回归问题,参数更新如下所示:

Update simultaneously:
temp0:=θ0−α∂∂θ0J(θ0,θ1)temp0 := \theta_0-\alpha\frac{\partial }{\partial \theta_0}J(\theta_0,\theta_1) \quadtemp0:=θ0αθ0J(θ0,θ1)
temp1:=θ1−α∂∂θ1J(θ0,θ1)temp1 := \theta_1-\alpha\frac{\partial }{\partial \theta_1}J(\theta_0,\theta_1) \quadtemp1:=θ1αθ1J(θ0,θ1)
θ0:=temp0\theta_0 := temp0θ0:=temp0
θ1:=temp1\theta_1 := temp1θ1:=temp1

解释:先计算公式右边的偏导数项,然后分别计算出θ0\theta_0θ0θ1\theta_1θ1的值,最后同时更新二者。如果你不熟悉微积分或者导数的话,回去学习一下吧!

2.6 梯度下降的直观理解

参考视频 : 2 - 6 - Gradient Descent Intuition (12 min).mkv

梯度下降算法:θj:=θj−α∂∂θjJ(θ)\theta_j := \theta_j-\alpha\frac{\partial }{\partial \theta_j}J(\theta)θj:=θjαθjJ(θ)
描述:对θ\thetaθ赋值,使得J(θ)J(\theta)J(θ)按函数值下降最快的方向进行,一直迭代下去,最终得到局部最小值。其中α\alphaα是学习率(learning rate),它决定了我们沿着梯度下降最快的方向迈出的步子有多大。

以二次函数为例:
这里写图片描述

在上图中曲线θ1\theta_1θ1处,求此处导数或者说取此点的切线,即是下降最快的方向;再乘以学习率α\alphaα,得到步子的大小。注意:如果学习率太小,需要很多步才能到达最低点(迭代次数过多,费时);如果学习率太大,步子太大可能会越过最低点,导致无法收敛。

另外,当逐渐接近最低点时,步子会越来越小,因为导数值越来越小。移动幅度越来越小,直到最终收敛到局部最小值。所以在接近最低点时,梯度下降会自动采取越来越小的幅度,所以实际上没有必要另外再减小α\alphaα梯度下降算法可以用来最小化任何代价函数JJJ,不只是线性回归中的代价函数。

2.7 梯度下降的线性回归

参考视频 : 2 - 7 - Gradient Descent For Linear Regression (6 min).mkv

结合梯度下降和线性回归模型中的平方误差代价函数。二者如下图:
梯度下降 与 线性回归模型

对于之前的线性回归问题运用梯度下降法,关键在于求出代价函数的导数、导数、导数,求导过程中用到了高数中的复合求导。
这里写图片描述

则用梯度下降算法最小化代价函数的过程写为:
Repeat{θ0:=θ0−α1m∑i=1m(hθ(x(i))−y(i))θ1:=θ1−α1m∑i=1m((hθ(x(i))−y(i))⋅x(i))}\text{Repeat} \{ \\ \quad \theta_0 := \theta_0-\alpha \frac{1}{m}\sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)}) \\ \quad \theta_1 := \theta_1-\alpha \frac{1}{m}\sum_{i=1}^{m}((h_\theta(x^{(i)})-y^{(i)})\cdot x^{(i)}) \\ \}Repeat{θ0:=θ0αm1i=1m(hθ(x(i))y(i))θ1:=θ1αm1i=1m((hθ(x(i))y(i))x(i))}

刚刚使用的算法也称为批量梯度下降(batch gradient descent)。因为在梯度下降的每一步中,我们都用到了所有训练样本。在每一个单独的梯度下降中,我们都需要对所有mmm个样本求和。不过也有其他类型的梯度下降法,不考虑整个训练集,而只关注训练集中的一些子集。随机梯度下降(stochastic gradient descent)每次只考虑一部分样本,假设有ttt个。如果t=1t=1t=1,称为真随机梯度下降;如果1&lt;t&lt;m1&lt;t&lt;m1<t<m,则称为小批量随机梯度下降

则用真随机梯度下降算法最小化代价函数的过程写为:
Repeat{&ThickSpace;&ThickSpace;for i=1 to m { &ThickSpace;θ0:=θ0−α(hθ(x(i))−y(i))&ThickSpace;θ1:=θ1−α(hθ(x(i))−y(i))⋅x(i)&ThickSpace;&ThickSpace;}}\text{Repeat} \{ \\ \;\; \text{for i=1 to m \{ } \\ \; \quad \theta_0 := \theta_0-\alpha(h_\theta(x^{(i)})-y^{(i)}) \\ \; \quad \theta_1 := \theta_1-\alpha (h_\theta(x^{(i)})-y^{(i)})\cdot x^{(i)} \\ \;\;\} \\ \}Repeat{for i=1 to m { θ0:=θ0α(hθ(x(i))y(i))θ1:=θ1α(hθ(x(i))y(i))x(i)}}

另外,线性代数中有一种方法,在不需要多步梯度下降的情况下,也能解出代价函数JJJ的最小值。这种方法叫做正规方程(Normal equations)。不过,实际上在数据量较大的情况下,梯度下降法比正规方程更适用一些。

最后,祝贺大家学到你的第一个机器学习算法!

2.8 接下来的内容

参考视频 : 2 - 8 - What_'s Next (6 min).mkv

接下来会快速回顾一下线性代数,复习一下向量、矩阵等内容。通过它们,你可以实现更强大的线性回归模型。事实上,线性代数不仅仅在线性回归中应用广泛,它还有助于实现其它机器学习模型,并在计算上更有效率。正是因为线性代数中的向量和矩阵提供了一种有效的方式来组织大量的数据,特别是处理巨大的数据集时。为了实现机器学习算法,我们只需要一些非常非常基础的线性代数知识。请继续往下看吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值