线性回归

来源:互联网 发布:淘宝优惠券app排名 编辑:程序博客网 时间:2024/06/11 20:15


把监督式学习中关于房屋价格的例子稍作更改,除了原有数据,再加入卧室数量这一数据项。

居住面积(feet 2  )卧室数量价格(1000$s)2104340016003330240035401416223230004540………

现在输入变成了一个二维向量,其中x (i) 1  表示训练集中第i个房屋的居住面积,x (i) 2  表示第i个房屋的卧室数量。为了完成监督式学习,我们首先考虑如何将假设h 在计算机中实现。为此我们先假设y x 的一个线性函数:

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

上式中θ 是将X 映射到Y 的线性函数的组成参数(也叫权重)。后文中会将h θ (x) 简写为h ( x) ,我们还可以令x 0 =1 (截距项的系数),则上式可简写为:

h(x) =θ 0 +θ 1 x 1 +θ 2 x 2 =θ 0 x 0 +θ 1 x 1 +θ 2 x 2 = i=0 n θ i x i =θ T x  

构成h(x) θ x 都是列向量,n 是输入属性的个数(本例中是2)。要让预测值h(x) 接近目标变量期望y ,我们该如何选择参数θ 呢?我们引入成本函数的概念,让他表示h(x) y 的近似度:

J(θ)=12  i=1 m (h θ (x (i) )y (i) ) 2 . 

由上面的最小方差成本函数衍生出最小方差回归模型


1 LMS算法

要选择合适的权重值θ 使得成本函数J(θ) 的值最小化。我们需要一个搜索算法,从某一随机值出发,不断地迭代更新最后收敛到成本函数最小的最优解。我们使用梯度下降算法,从初始θ 出发,不断重复以下操作:

θ j :=θ j αθ j  J(θ). 

其中α 表示学习率,整个式子每次更新,就像是在J(θ) 下降最快的方向迈一小步,因此被称为梯度下降法。

将成本函数关于某一权重θ j  的偏导数展开:

θ j  J(θ) =θ j  12 (h θ (x)y) 2 =212 (h θ (x)y)θ j  (h θ (x)y)=(h θ (x)y)θ j  ( i=0 n θ i x i y)=(h θ (x)y)x j   

对于单个训练样本则有:

θ j :=θ j +α(y (i) h θ (x (i) ))x (i) j . 

该方法被称为最小均方差更新法(Least Mean Squares),也叫Widrow-Hoff学习法。这种方法直观而自然,我们可以看到当预测值与实际值接近时,权重变化就会很小;反之,权重就会变化很大,从逻辑而言这个公式也合情合理。

上面的公式只对单个训练样本,我们有两种方法可将其推广到整个训练集的回归,其一执行以下操作:

 Repeat until convergence {θ j :=θ j +α i=1 m (y (i) h θ (x (i) ))x (i) j (for every j)}   

它每次更新要遍历整个训练集,因此称为批梯度下降法。注意到,该方法确实有可能落入局部最优解的陷阱,但我们暂时只考虑仅含一个全局最优解的优化问题,这时该方法每次都能收敛到全局最优。

成本函数是一个凸二次函数,下面我们给一个梯度下降优化二次函数的图示:
gradient descent

上图的椭圆代表二次函数的等高线,折现的轨迹是梯度下降的路径,而其上的每个点则表示θ 梯度下降时的值,可以看到它从(48, 30)出发最后到达最优解(25, 25)。

如果我们使用梯度下降法求解之前仅有房屋面积的例子,可得θ 0 =71.27,θ 1 =0.1345 ,可绘制出下图:
house price

将卧室数量也加入特征中,则求得:θ 0 =89.60,θ 1 =0.1392,θ 2 =8.738 


除了批梯度下降,还有一种方法同样表现出色,它的运行步骤是这样的:

 Loop {for i=1 to m, {θ j :=θ j +α(y (i) h θ (x (i) ))x (i) j (for every j)}}   

这种方法每遇到一个样本就更新一次权重,它被称为随机梯度下降法或增量梯度下降法。由于批梯度下降每走一步都要遍历训练集,当样本个数很大时,训练的时间成本就很高。随机梯度下降每遇一个样本就更新一次权重,普遍来说收敛速度会快于批梯度法(虽然有时会无法收敛到最优解,而是在最优解附近振荡,即使如此得到的近似依然很好)。当训练集很大时,随机梯度下降往往比批梯度下降更受欢迎。

0 0