机器学习笔记02-线性回归模型中的代价函数与梯度下降

总结

该部分主要针对前一节内容进行补充和回顾,上一节主要介绍了----线性回归模型代价函数上一节内容点此查看。

(1)线性回归模型,表示为:
h y p o t h e s i s : h θ ( x ) = θ 0 + θ 1 x 等 价 于 : h ( x ) = θ 0 + θ 1 x \begin{array}{l} hypothesis:h_{\theta(x)}=\theta_{0}+\theta_{1} x \\ 等价于:h_{(x)}=\theta_{0}+\theta_{1} x \end{array} hypothesishθ(x)=θ0+θ1xh(x)=θ0+θ1x目的:当样本数据基本符合或存在线性关系时,使用线性回归模型,可以更好的拟合数据(样本数据即便不符合线性关系也可以使用该模型,但是结果应该不太好)。个人感觉:模型的选择一方面取决于对样本数据的分析,一方面取决于经验。
方法:由公式可以看出,线性回归函数存在两个参数 θ 0 \theta_{0} θ0 θ 1 \theta_{1} θ1,当 θ 0 \theta_{0} θ0 θ 1 \theta_{1} θ1的值不同时,得到的线性回归函数也不同。那么为了更好的拟合样本数据, θ 0 \theta_{0} θ0 θ 1 \theta_{1} θ1的值的选择至关重要。 θ 0 \theta_{0} θ0 θ 1 \theta_{1} θ1的数值组合有很多种,如何得到最优的值呢?此时引出了代价函数,代价函数当代价函数最小时, θ 0 \theta_{0} θ0 θ 1 \theta_{1} θ1的值最优。

(2)代价函数,表示为:
J ( θ 0 , θ 1 ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 J_{\left(\theta_{0}, \theta_{1}\right)}=\frac{1}{2 m} \sum_{i=1}^{m}\left(h_{\theta}(x^{(i)})-y^{(i)}\right)^{2} J(θ0,θ1)=2m1i=1m(hθ(x(i))y(i))2说明:代价函数本质上是计算预测结果值与实际结果值之间的距离,也就是偏差。当偏差最小时,即 minimize ⁡ θ 0 , θ 1 J ( θ 0 , θ 1 ) \underset{\theta_{0}, \theta_{1}}{\operatorname{minimize}} J_{\left(\theta_{0}, \theta_{1}\right)} θ0,θ1minimizeJ(θ0,θ1),此时的 θ 0 \theta_{0} θ0 θ 1 \theta_{1} θ1的值最优。
问题:为什么说当代价函数最小时,得到的 θ 0 \theta_{0} θ0 θ 1 \theta_{1} θ1是最优的呢?
解释:为了解释该问题,我们从最简单的情况入手,前篇讲过,线性回归函数类似于一次函数( y = k x + b y=kx+b y=kx+b),当 b = 0 b=0 b=0时,此时的一次函数即为最简单的正比例函数。因此为了简化问题,我们首先令 θ 0 \theta_{0} θ0=0,那么此时的线性回归函数即为 h θ ( x ) = θ 1 x h_{\theta(x)}=\theta_{1} x hθ(x)=θ1x

①假设此时我们有三个样本, ( x ( 1 ) , y ( 1 ) ) = ( 1 , 1 ) , ( x ( 2 ) , y ( 2 ) ) = ( 2 , 2 ) , ( x ( 3 ) , y ( 3 ) ) = ( 3 , 3 ) (x^{(1)},y^{(1)})=(1,1),(x^{(2)},y^{(2)}) =(2,2),(x^{(3)},y^{(3)})=(3,3) (x(1),y(1))=(1,1),(x(2),y(2))=(2,2),(x(3),y(3))=(3,3),如图所示。
样本数据示意图
②此时,我们根据线性回归函数即为 h θ ( x ) = θ 1 x h_{\theta(x)}=\theta_{1} x hθ(x)=θ1x来预测具体模型,我们分别取 θ 1 = \theta_{1}= θ1={0, 0.5, 1.0, 1.5, 2}。根据不同的 θ 1 \theta_{1} θ1值画出其对应的图像,如图所示,红色点为已知样本数据,绿色线条为对应 θ 1 \theta_{1} θ1的函数图像。
线性回归函数模型示意图
③很明显可以看出来,当 θ 1 = 1.0 \theta_{1}= 1.0 θ1=1.0时,得到的模型最优。但是怎么让机器知道此时的 θ 1 \theta_{1} θ1是最优的模型参数呢?此时就需要使用到代价函数,通过计算代价函数,即可让机器判断哪个才是最优的结果。根据代价函数,我们分别计算一下上述5个模型的结果。

代价函数计算结果
④通过结果可以看出,当 θ 1 = 1.0 \theta_{1}= 1.0 θ1=1.0时,代价函数最小,即 minimize ⁡ θ 1 J ( θ 1 ) \underset{ \theta_{1}}{\operatorname{minimize}} J_{(\theta_{1})} θ1minimizeJ(θ1),且此时的模型最优。画出代价函数的图像,如下图所示。
代价函数图像
⑤结合图像可以发现,当代价函数结果最小时,对应的模型最优。

回到最初的线性回归函数 h ( x ) = θ 0 + θ 1 x h_{(x)}=\theta_{0}+\theta_{1} x h(x)=θ0+θ1x,当 θ 0 \theta_{0} θ0不等于0时,想象一下代价函数的图像是什么样子的。没错,此时代价函数是三维的,因为此时的 J ( θ 0 , θ 1 ) J_{(\theta_{0},\theta_{1})} J(θ0,θ1)会根据 θ 0 \theta_{0} θ0 θ 1 \theta_{1} θ1的改变而改变,而不仅仅是 θ 1 \theta_{1} θ1。图像大致如下,术语叫作“凸函数”。
三维示意图
它还有另一种表现形式,叫作“等高线图”,其实际和三维图是一样的。
(1)如图所示,当 θ 0 \theta_{0} θ0=800, θ 1 \theta_{1} θ1=-1.5时,模型如图左侧蓝色线条所示;
在这里插入图片描述
(2)如图所示,当 θ 0 \theta_{0} θ0=360, θ 1 \theta_{1} θ1=0时,模型如图左侧蓝色线条所示;
在这里插入图片描述
(3)如图所示,当 θ 0 \theta_{0} θ0=220, θ 1 \theta_{1} θ1=0.13时,模型如图左侧蓝色线条所示;
在这里插入图片描述
(4)由上可以看出,当取值越靠近等高线图中心时,模型越优,最中心时,模型最优。

梯度下降简介

通过前边的知识,我们了解了线性回归模型、代价函数之间的关系------代价函数值越小,线性回归模型越优。那么问题来了,如何求取代价函数的最小值呢?毕竟 θ 0 , θ 1 \theta_{0},\theta_{1} θ0,θ1取值组合有n种,每种组合都能得到一个新的代价函数结果值。此时就引入了梯度下降算法
梯度可以理解为是一个曲面沿着给定方向的倾斜程度,越陡表示梯度越大,梯度有正负之分。以上述代价函数为例进行说明:
图中分别作出p1(1,0),p2(1.5,0.58),p3(2,2.3)三点的梯度,即红色线条,其实也就是对应点切线。那么它的梯度值是多少呢?其实就是对应红色线条的斜率,可以直观感受出,梯度值由小到大p1<p2<p3,且p1处的梯度为0。
在这里插入图片描述
梯度下降算法公式:
θ j : = θ j − α ∂ ∂ θ j J ( θ 0 , θ 1 ) , f o r ( j = 1 a n d j = 0 ) \theta_{j}:=\theta_{j}-\alpha \frac{\partial}{\partial \theta_{j}} J_{\left(\theta_{0}, \theta_{1}\right)},for(j=1 and j=0) θj:=θjαθjJ(θ0,θ1),for(j=1andj=0)
其中 ∂ ∂ θ j J ( θ 0 , θ 1 ) \frac{\partial}{\partial \theta_{j}} J_{\left(\theta_{0}, \theta_{1}\right)} θjJ(θ0,θ1)其实就是计算的梯度, : = := :=表示赋值, α \alpha α表示学习率(步长)。注意 θ 0 \theta_{0} θ0 θ 1 \theta_{1} θ1应该同时更新。
在这里插入图片描述
公式替换:
θ j : = θ j − α ∂ ∂ θ j J ( θ 0 , θ 1 ) : = θ j − α ∂ ∂ θ j ⋅ 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 : = θ j − α ∂ ∂ θ j ⋅ 1 2 m ∑ i = 1 m ( θ 0 + θ 1 x ( i ) − y ( i ) ) 2 \begin{aligned} \theta_{j} &:=\theta_{j}-\alpha \frac{\partial}{\partial \theta_{j}} J_{\left(\theta_{0}, \theta_{1}\right)} \\ &:=\theta_{j}-\alpha \frac{\partial}{\partial \theta_{j}} \cdot \frac{1}{2 m} \sum_{i=1}^{m}\left(h_{\theta}(x^{(i)})-y^{(i)}\right)^{2} \\ &:=\theta_{j}-\alpha \frac{\partial}{\partial \theta_{j}} \cdot \frac{1}{2 m} \sum_{i=1}^{m}\left(\theta_{0}+\theta_{1} x^{(i)}-y^{(i)}\right)^{2} \end{aligned} θj:=θjαθjJ(θ0,θ1):=θjαθj2m1i=1m(hθ(x(i))y(i))2:=θjαθj2m1i=1m(θ0+θ1x(i)y(i))2
因此,当 j = 0 j=0 j=0时,即可得到 θ 0 \theta_{0} θ0,当 j = 1 j=1 j=1时,即可得到 θ 1 \theta_{1} θ1
θ 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 ) \begin{aligned} \theta_{0} &:=\theta_{0}-\alpha \frac{1}{m} \sum_{i=1}^{m}\left(h_{\theta}(x^{(i)})-y^{(i)}\right) \\ \theta_{1} &:=\theta_{1}-\alpha \frac{1}{m} \sum_{i=1}^{m}\left(h_{\theta}(x^{(i)})-y^{(i)}\right) \cdot x^{(i)} \end{aligned} θ0θ1:=θ0αm1i=1m(hθ(x(i))y(i)):=θ1αm1i=1m(hθ(x(i))y(i))x(i)
等价于:
θ 0 : = θ 0 − α 1 m ∑ i = 1 m ( θ 0 + θ 1 x ( i ) − y ( i ) ) θ 1 : = θ 1 − α 1 m ∑ i = 1 m ( θ 0 + θ 1 x ( i ) − y ( i ) ) ⋅ x ( i ) \begin{aligned} \theta_{0} &:=\theta_{0}-\alpha \frac{1}{m} \sum_{i=1}^{m}\left(\theta_{0}+\theta_{1} x^{(i)}-y^{(i)}\right) \\ \theta_{1} &:=\theta_{1}-\alpha \frac{1}{m} \sum_{i=1}^{m}\left(\theta_{0}+\theta_{1} x^{(i)}-y^{(i)}\right) \cdot x^{(i)} \end{aligned} θ0θ1:=θ0αm1i=1m(θ0+θ1x(i)y(i)):=θ1αm1i=1m(θ0+θ1x(i)y(i))x(i)

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值