单变量线性回归

线性回归模型(Linear Regression Model

包括线性假设(linear hypothesis)和平方差代价函数(squared error cost function


字母的含义:

M = Number of training examples 训练样本的数量

x = "input"variable / features 输入变量/特征

y = "output"variable / "target"variable 输出变量/目标变量

 

( xy ) 表示一个训练样本(training example

( x(i), y(i) ) 表示第i个训练样本(这个上标i是训练集的一个索引)

 

大致流程:

                  训练集(Training Set

                     |

                 学习算法(Learning Algorithm

                     |

     x > 假设函数: hhypothesis)—> y

h是一个引导x得到y的函数

 

先从线性函数(linear function)开始,因为它是学习的基础。

这种特定的模型被称为线性回归(linear regression

 

一元线性回归(单变量x的函数)

hθ(x) = θ0  + θ1 * x

或者可以叫做:单变量线性回归(univariate linear regression

hθ(x)也可以写成h(x) ; θ0 θ1 称为模型参数) 

   ----->    

通过一个训练集得出θ0 θ1这两个参数的值,

来让假设函数表示的直线尽量地与这些数据点很好的拟合。

 

如何得到 θ0θ1

这两个值要能使h(x)(输入x时我们的预测值)最接近该样本对应的y值。

要尽量选择参数值,使得在训练集中的x值,我们能准确地预测y的值。

 

在线性回归中,我们要解决的是一个最小化问题。

h(x)y之间的差距要小,也可以要两者之间的差的平方最小。

现在要做的是对所有训练样本(i=1i=M的样本)进行一个求和。

 

所以我们要让:

将第i号对应的预测结果(h(x))减去第i号的实际结果所得的差的平方相加得到的总和

这个值尽量小。


代价函数(cost function)也被称作平方误差代价函数(squared error cost function

代价函数:

 

(有点像方差公式)    (这里的h(x)就是hθ(x) = θ0  + θ1 x

 

因为这个式子里xy都是样本用例,是固定不变的,

所以在相同用例下J随θ0 ,θ1 的值变化而变化。

最终目标:要找到θ0 和θ1 的值来使这个J最小

 

这个函数是解决回归问题最常用的手段(还有其他代价函数也可以)。

 

当θ0=0时,θ1 J(θ1 )的函数是一条开口朝上的抛物线,最低点就是j的最小值。

j在最低点时,此时θ1 就是答案了。

 

θ0 ,θ1均不为0时,θ0 ,θ1J(θ0 ,θ1)的图像类似碗的一个三维曲面。

如图:

            


也可以用等高线图(contour plots),或称为等高图像(contour figures)来描述代价函数J

如图:

            

    左边的是h(x)的图像,右边是等高线图

等高线图同一个圈上的点具有相同的J(θ0 ,θ1)值。 


梯度下降gradient descent

可以用梯度下降算法最小化任意函数J

 

做法(有点像一个从山的某一处开始下山的过程):

1、给定θ0 θ1初始值(通常将θ0 θ1都设为0)。

2、不停地一点点改变θ0 θ1,来使J(θ0 ,θ1 )变小,

  直到找到J的最小值。

 

反复做一下这动作,直到收敛{

               ∂

  θj := θj - α ------- J(θ0 ,θ1 )  j只能为01

              ∂θj

}

 

注意:

1:= 表示赋值,是一个赋值运算符(assignment operator

   (如果是 = 的话,就是一个真假判定)

2)这里的α是一个被称为学习率(learning rate)的数字,

   用来控制梯度下降时,我们迈出多大的步子。

   如果α值很大,梯度下降就很迅速,我们会用大步伐下山;反之亦然。

(3)α后面那一大块,是一个导数项(derivative term)。

   是图像上那一点的切线的斜率。

   当越来越接近最低点时,导数项会越来越趋向于0

4)需要同时更新 θ0 θ1 。(同步更新 simultaneous updates

                  ∂

   temp0 = θ0  - α ------- J(θ0 ,θ1 )

                 ∂θ0

                  ∂

   temp1 = θ1  - α ------- J(θ0 ,θ1 )

                 ∂θ1

   θ0 := temp0

   θ1 := temp1

 

在梯度下降法中,当我们接近局部最低点时,梯度下降法会自动采取更小的幅度,

这是因为当我们接近局部最低点时,根据定义,在局部最低是导数等于零。

所以没必要另外减小α。


将梯度下降和代价函数合起来就是回归的梯度下降法(Gradient descent algorithm

                  (也可以称为Batch梯度下降法)

 

反复做一下这动作,直到收敛{

              1    M 

   θ0 :=θ0 - α--- * (h(x(i))-y(i))

                 M   i=1

 

              1    M 

   θ1 :=θ1 - α--- * (h(x(i))-y(i)) * x(i)

                 M   i=1

}


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值