码迷,mamicode.com
首页 > 其他好文 > 详细

1. Supervised Learning - Linear Regression

时间:2014-05-20 02:15:22      阅读:520      评论:0      收藏:0      [点我收藏+]

标签:des   style   blog   class   c   http   

Linear Regression线性回归

Notation

给定一个样本集T

样本总数为m

每个样本记做bubuko.com,布布扣

其中bubuko.com,布布扣为输入变量,也称为特征变量;bubuko.com,布布扣为我们要预测的输出变量,也称为目标变量

bubuko.com,布布扣表示第bubuko.com,布布扣个样本。

bubuko.com,布布扣

问题描述

给定一个样本集,学习一个函数bubuko.com,布布扣 使得bubuko.com,布布扣是对相应y的一个好的预测。

因为某些历史原因,h被称为假设hypothesis)。

整个过程如下图所示:

bubuko.com,布布扣

如果我们想要预测的目标变量是连续值,称为回归问题regression);

当目标变量是少数离散值时,称为分类问题(classification)

如何表示h

bubuko.com,布布扣

bubuko.com,布布扣是线性函数的参数(parameters)。

为了使我们的标记更简单,我们添加bubuko.com,布布扣项:

bubuko.com,布布扣

Cost function代价函数

我们要使bubuko.com,布布扣尽可能的靠近y

定义一个函数来度量bubuko.com,布布扣与相应bubuko.com,布布扣之间的距离,称为代价函数(cost function)

bubuko.com,布布扣

代价函数就是最小二乘OLS ordinary least squares )

使bubuko.com,布布扣尽可能的靠近y,也就是选择bubuko.com,布布扣最小化bubuko.com,布布扣

#1 Gradient descent algorithm 梯度下降算法

首先始化一个随机的bubuko.com,布布扣,然后重复的执行以下操作来更新bubuko.com,布布扣

bubuko.com,布布扣

α 被称作学习速率(learning rate)

脑补如下前景:你从山上往山谷走,每一步在x轴方向走α长度,每走一步前向四周张望,选择最陡的方向bubuko.com,布布扣走。

继续脑补:α大时,你很快就跑下山,但说不定就跨过全局最小值;α大时,下山需要花很长时间,但会更好的收敛于最小值。

 

bubuko.com,布布扣求偏导,假设只有一个训练样本时:

bubuko.com,布布扣

所以可以得到更新策略:

bubuko.com,布布扣

被称为LMS(least mean squares)更新策略,也称为Widrow-Hoff学习策略(Widrow Hoff 1960)

 

根据LMS更新策略,得到以下算法:

bubuko.com,布布扣

这个算法的特点是每此迭代都会查看所有的样本,所以被称为批梯度下降batch gradient descent

 

与批梯度下降算法相比,下面的算法每次迭代只查看一个样本:

bubuko.com,布布扣

被称为随机梯度下降stochastic gradient descent also incremental gradient descent)

当样本集比较大时,随机梯度下降比批梯度下降更快接近最小值,但随机梯度下降会在最小值附近徘回,而不会收敛于最小值。如果你在迭代的过程中减小α,随机梯度下降同样会收敛于最小值。

实际中,每个接近最小值都是可用的,有些值的泛化误差甚至小于最优值。

 

一般来说,梯度下降算法不能保证收敛于全局最优点。但如果目标函数是凸的(Convex),可以保证收敛于全局最优点。

过程如图,自行脑补:

bubuko.com,布布扣

bubuko.com,布布扣bubuko.com,布布扣

 

特征放缩(Feature Scaling)

保证特征有相近的尺度会帮助梯度下降算法更快收敛。如图,自行脑补:

bubuko.com,布布扣

最常用的方法是正规化:

bubuko.com,布布扣

其中bubuko.com,布布扣是平均值,bubuko.com,布布扣是标准差

 

如何确定收敛,如何确定α?

绘制bubuko.com,布布扣与迭代次数的关系图观测算法在何时趋于收敛

bubuko.com,布布扣

自动测试是否收敛的方法,例如将代价函数的变化直与某个阀直(例如0.001)进行比较,但通常看上面这样的图表更好。

梯度下降算法的每次迭代受到学习率的影响,如果学习率α过小,则达到收敛所需的迭代次数会非常高;如果学习率α过大,每次迭代可能不会减小代价函数,可能会越过局部最小值导致无法收敛。

通常可以考虑尝试这些学习率:

α=0.01,0.3,0.1,0.3,1,3,10

#2 Normal equations 正规方程组

    bubuko.com,布布扣 有直接解法:求导,令导数为零

求解过程见cs229 Lecture notes,使用Matrix derivatives和trace operator简化了运算

比较喜欢这句"Armed with the tools of matrix derivatives, let us now proceed to find in closed-form the value of θ that minimizes J (θ)."

最终得到normal equations:

bubuko.com,布布扣

如果bubuko.com,布布扣可逆,有如下解:(不可逆请用伪逆)

bubuko.com,布布扣

Normal equations VS gradient descent

normal equations可以直接得到bubuko.com,布布扣的解,不用担心gradient descent没有收敛的问题

normal equations中求逆的过程非常耗时,而gradient descent对于特征数量n较大问题常常速度比normal equations

gradient descent有个好处是可控:时间比较有限,设置一个比较大的α少跑几圈;时间比较充裕,设置一个比较小的α多跑几圈;对现在的值不满意可以接着跑

n小于10000考虑用Normal equations

#3 Ridge regression岭回归(正则化Regularization)

如果bubuko.com,布布扣矩阵不满秩,或者其他数值解不稳定的情况(线性相关),则可以使用下面的解:

bubuko.com,布布扣

岭回归的算法通过最小化带惩罚项的代价函数:

bubuko.com,布布扣

参数bubuko.com,布布扣在最小化bubuko.com,布布扣与最小化误差平方和之间起到平衡作用

梯度下降不存在这种问题

Model selection模型选择

可以添加高次项,或者自行构造有些特征使线性回归可以做拟合出非线性函数出来

比如bubuko.com,布布扣

再比如考虑通过把房屋长度和宽度相乘构造房屋面积特征

后面会专门开辟一章讲模型选择

Probabilistic interpretation最小二乘法的概率诠释

为什么最小二乘法最为代价函数?

 

假设样本来自某未知的过程:

bubuko.com,布布扣

其中bubuko.com,布布扣项捕捉了建模的参数对输出的影响,和随机噪音。

假设:(个人感觉这样的假设还是比较合理的)

1.bubuko.com,布布扣独立同分布(IID independently and identically distributed)

2.bubuko.com,布布扣

也就是:

bubuko.com,布布扣

bubuko.com,布布扣标记指bubuko.com,布布扣不是随机变量,而是真实存在,未被发现的值。

 

用极大似然估计法(Maximum Likehood Estimate)对bubuko.com,布布扣进行估计:

bubuko.com,布布扣

bubuko.com,布布扣

最大化?(θ)等价于最小化代价函数:

bubuko.com,布布扣

以上的假设(bubuko.com,布布扣独立同分布,bubuko.com,布布扣)不是最小二乘法的必要条件。

充分必要条件来自Gauss–Markov theorem。这个定理同时有多个等价版本。。

Anscombe‘s quartet安斯库姆四重奏

考虑一下四组数据(F.J. Anscombe 1973)

10 

13 

11 

14 

12 

8.04 

6.95 

7.58 

8.81 

8.33 

9.96 

7.24 

4.26 

10.84 

4.82 

5.68 

10 

13 

11 

14 

12 

9.14 

8.14 

8.74 

8.77 

9.26 

8.1 

6.13 

3.1 

9.13 

7.26 

4.74 

10 

13 

11 

14 

12 

7.46 

6.77

12.74 

7.11 

7.81 

8.84 

6.08 

5.39 

8.15 

6.42 

5.73 

19 

6.58 

5.76 

7.71 

8.84 

8.47 

7.04 

5.25 

12.5 

5.56 

7.91 

6.89 

进行线性回归,得到相同的直线方程(你这是在逗我)

bubuko.com,布布扣

第一组数据是大多人看到上述统计数字的第一反应,是最"正常"的一组数据;

第二组数据所反映的事实上是一个精确的二次函数关系,只是在错误地应用了线性模型后,各项统计数字与第一组数据恰好都相同;

第三组数据描述的是一个精确的线性关系,只是这里面有一个异常值,它导致了上述各个统计数字,尤其是相关度值的偏差;

第四组数据则是一个更极端的例子,其异常值导致了平均数、方差、相关度、线性回归线等所有统计数字全部发生偏差。

所以请不要滥用线性回归,以及其他机器学习算法。拿到数据的第一件事就是把数据绘来。

 

正态性检验

直方图,排列图/柏拉图,概率纸图,Q-Q图,P-P图等有时间再做整理

[请善用excel,最强大的数据分析工具,没有之一]

Locally weighted linear regression 局部加权线性回归

1.学习θ ,使得bubuko.com,布布扣最小化,其中权重bubuko.com,布布扣

2.输出bubuko.com,布布扣

non-parametric algorithm 非参数算法(为了做预测,须存储东西的数量随着样本数量的增加而线性增加)

预测阶段需要整个样本集

如果样本离x较远,bubuko.com,布布扣 较大,bubuko.com,布布扣接近于0;如果样本离x较近,bubuko.com,布布扣 较小,bubuko.com,布布扣接近于1。

τ控制bubuko.com,布布扣随样本与x的距离下降的多快,称为带宽参数(bandwidth)

bubuko.com,布布扣

参考资料

  • [1] CS229 Lecture notes 1 (ps) (pdf)   Supervised Learning, Discriminative Algorithms Andrew Ng
  • [2] Coursera Machine Learning Andrew Ng
  • [3]《数据之魅:基于开源工具的数据分析》 Philipp K. Janer [Anscombe‘s quartet安斯库姆四重奏部分]
  • [4]《支持向量机导论》 Nello Cristianini,John Shawe-Taylor [Ridge regression岭回归部分]
  • [5]《Locally weighted linear regression(局部加权线性回归)》华科小涛 [最后一张图]

1. Supervised Learning - Linear Regression,布布扣,bubuko.com

1. Supervised Learning - Linear Regression

标签:des   style   blog   class   c   http   

原文地址:http://www.cnblogs.com/noooop/p/3731032.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!