[机器学习笔记] Note2--单变量线性回归

这篇博客介绍了单变量线性回归,包括模型表达、代价函数和梯度下降算法。通过例子展示了线性回归如何预测房价,强调了代价函数的作用,并详细解释了梯度下降的思想过程、算法公式及其在求解最小化问题中的应用。
摘要由CSDN通过智能技术生成

继续是机器学习课程的笔记,这节介绍的是单变量线性回归算法,线性回归算法也是一个比较基础的算法。

模型表达

首先是以房屋交易问题为例,假设我们回归问题的训练集如下表所示:

Size in feet2 f e e t 2 (x)Price($) in 1000’s (y)
2104462
1416232
1534315
852178

此外我们将使用以下变量来描述这个回归问题:

  • m 代表训练集中实例的数量
  • x 代表特征/输入变量
  • y 代表目标变量/输出变量
  • (x,y) 代表训练集中的实例
  • ( x(i),y(i) x ( i ) , y ( i ) ) 代表第i个观察实例
  • h 代表学习算法的解决方案或函数,也成为假设(hypothesis)

下面是一个典型的机器学习过程:
此处输入图片的描述

所以对于房价预测问题,我们是在训练集上执行学习算法,学习到一个假设h,然后将要预测的房屋的尺寸作为输入变量输入给h,而输出结果就是该房屋的交易价格。

这里的h也就是一个模型,是一个从输入变量x都输出变量y的函数映射。它的一种可能的表达式为:

hθ=θ0+θ1x h θ = θ 0 + θ 1 x

这个表达式只含有一个特征/输入变量,因此这样的问题叫作 单变量线性回归问题.

代价函数

当我们得到一个模型后,就必须选择合适的参数 θ0 θ 0 θ1 θ 1 .在房价问题中,对应的就是直线的斜率和在y轴上的截距。

我们选择的参数决定了我们得到的直线相对于我们的训练集的准确程度,模型所预测的值与训练集中实际值之间的差距就是建模误差(modeling error),如下图所示:
此处输入图片的描述

上图中, hθ(x(i)) h θ ( x ( i ) ) 是对第i个输入变量的预测输出值,而 y(i) y ( i ) 则是对应的真实值。

因此我们的目标是选择出可以使得建模误差的平方和能够最小的模型参数,也就是min( hθ(x(i)) h θ ( x ( i ) ) - y(i) y ( i ) )。

这里就使用一个代价函数 J(θ0,θ1)=12mmi=1(hθ(x(i))y(i))2 J ( θ 0 , θ 1 ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2

这里的代价函数也叫做平方误差代价函数,这是最常用的解决回归问题的方法。当然还有其他代价函数,这将在后面提及。

梯度下降

梯度下降是一个用来求函数最小值的算法,我们将使用梯度下降算法来求出代价函数 J(θ0,θ1) J ( θ 0 , θ 1 ) 的最小值。

思想过程

梯度下降算法的思想如下:

首先,我们有一个代价函数,假设是 J(θ0,θ1) J ( θ 0 , θ 1 ) ,我们的目标是 minθ0,θ1J(θ0,θ1) m i n θ 0 , θ 1 J ( θ 0 , θ 1 )
接下来的做法是:
- 首先是随机选择一个参数的组合 (θ0,θ1) ( θ 0 , θ 1 ) ,视频中说一般是设 θ0=0,θ1=0 θ 0 = 0 , θ 1 = 0 ;
- 然后是不断改变 (θ0,θ1) ( θ 0 , θ 1 ) ,并计算代价函数,直到一个局部最小值。之所以是局部最小值,是因为我们并没有尝试完所有的参数组合,所以不能确定我们得到的局部最小值是否便是全局最小值,选择不同的初始参数组合,可能会找到不同的局部最小值。

下图是视频中给出的梯度下降法是如何工作的:
此处输入图片的描述

算法公式

下面给出梯度下降算法的公式:

repeat until convergence{

θj:=θjαθjJ(θ0,θ1)(forj=0andj=1) θ j := θ j − α ∂ ∂ θ j J ( θ 0 , θ 1 ) ( f o r j = 0 a n d j = 1 )

}

也就是在梯度下降中,不断重复上述公式直到收敛,也就是找到 局 部 最 小 值 。其中符号:=是赋值符号的意思。

公式中的 α α 称为学习率(learning rate),它决定了我们沿着能让代价函数下降程度最大的方向向下迈进的步子有多大。

在梯度下降中,还涉及都一个参数更新的问题,即更新 (θ0,θ1) ( θ 0 , θ 1 ) ,一般我们的做法是同步更新

temp0:=θ0αθ0J(θ0,θ1)temp1:=θ1αθ1J(θ0,θ1)θ0:=temp0θ1:=temp1 t e m p 0 := θ 0 − α ∂ ∂ θ 0 J ( θ 0 , θ 1 ) t e m p 1 := θ 1 − α ∂ ∂ θ 1 J ( θ 0 , θ 1 ) θ 0 := t e m p 0 θ 1 := t e m p 1

算法详解

在上述公式中 θjJ(θ0,θ1) ∂ ∂ θ j J ( θ 0 , θ 1 ) 是一个偏导数,其含义就是函数 J(θ0,θ1) J ( θ 0 , θ 1 ) 的斜率,假设我们要求的代价函数 J(θ0,θ1) J ( θ 0 , θ 1 ) 如下图所示,初始点是图中的红色的点,那么由于在该点上的切线斜率是一个正数,而学习率也是正数,所以更新后的 θ1 θ 1 会减小,也就是会向左移动,并靠近局部最小值。
此处输入图片的描述
当然,如果起始点是在上述曲线左侧,其切线斜率则是负值,那么会导致 θ1 θ 1 逐渐变大,同样也是靠近局部最小值。

公式中的学习率 α α 是决定找到局部最小值的快慢,同时也决定了能否找到局部最小值,因为如果取值过大,就可能错过局部最小值,并且可能会导致无法收;但是取值过小,学习的速度就会比较慢。

视频中也提到一个问题,如果初始点就是一个局部最小点,那么由于局部最小值的切线斜率是0,那么会导致参数不变,因为其实已经在局部最小值了。
此外,即使学习率 α α 是一个固定值,梯度下降法也是可以收敛到一个局部最小值,原因是在接近局部最小值时, θjJ(θ0,θ1) ∂ ∂ θ j J ( θ 0 , θ 1 ) 会自动变得更小,然后就可以慢慢接近局部最小值,而不需要改变学习率。

应用于线性回归

根据前面内容,我们有
梯度下降算法公式:

repeat until convergence{

θj:=θjαθjJ(θ0,θ1)(forj=0andj=1) θ j := θ j − α ∂ ∂ θ j J ( θ 0 , θ 1 ) ( f o r j = 0 a n d j = 1 )

}

以及线性回归模型

hθ(x)=θ0+θ1xJ(θ0,θ1)=12mi=1m(hθ(x(i))y(i))2 h θ ( x ) = θ 0 + θ 1 x J ( θ 0 , θ 1 ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2

这里的关键就是求解代价函数的导数,即:
θjJ(θ0,θ1)=θj12mmi=1(hθ(x(i))y(i))2 ∂ ∂ θ j J ( θ 0 , θ 1 ) = ∂ ∂ θ j 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2

进一步,可以得到:

j=0:θ0J(θ0,θ1)=1mi=1m(hθ(x(i))y(i))j=1:θ1J(θ0,θ1)=1mi=1m((hθ(x(i))y(i))xi) j = 0 : ∂ ∂ θ 0 J ( θ 0 , θ 1 ) = 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) j = 1 : ∂ ∂ θ 1 J ( θ 0 , θ 1 ) = 1 m ∑ i = 1 m ( ( h θ ( x ( i ) ) − y ( i ) ) ⋅ x i )

由此,我们的算法可以改写成:

repeat until convergence{

θ0:=θ0α1mi=1m(hθ(x(i))y(i)) θ1:=θ1α1mi=1m((hθ(x(i))y(i))x(i)) θ 0 := θ 0 − α 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) )   θ 1 := θ 1 − α 1 m ∑ i = 1 m ( ( h θ ( x ( i ) ) − y ( i ) ) ⋅ x ( i ) )

}

最后,在我们给出的梯度下降算法公式实际上是一个叫批量梯度下降(batch gradient descent),即它在每次梯度下降中都是使用整个训练集的数据,所以公式中是带有 mi=1 ∑ i = 1 m ,当然也存在其他梯度下降法,在每次梯度下降时考虑部分数据。

小结

这里就介绍完单变量的线性回归方法,对于这个线性回归算法,我的理解是,因为正如开头介绍的经典的机器学习过程,是使用一个学习算法在给定的数据集上学习得到一个模型,然后使用该模型对新的数据进行预测,得到一个预测的结果,所以对于线性回归也是要求解其模型,其实就是我们非常熟悉的直线方程 hθ=θ0+θ1x h θ = θ 0 + θ 1 x ,就是让我们计算得到的直线方程尽可能逼近实际的直线方程,而衡量的标准就是使用代价函数,而在线性回归中,非常常用的是平方和误差函数 J(θ0,θ1)=12mmi=1(hθ(x(i))y(i))2 J ( θ 0 , θ 1 ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 ,那么这就把问题变成求解最小的代价函数,也就是求解一对参数 θ0,θ1 θ 0 , θ 1 使得 minJ(θ0,θ1) m i n J ( θ 0 , θ 1 ) ,而要得到这对参数,我们就是使用梯度下降方法。梯度下降法也是一个非常常用的方法,包括在神经网络中都会使用到。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

spearhead_cai

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

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

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

打赏作者

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

抵扣说明:

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

余额充值