MachineLearning(Hsuan-Tien Lin)第九讲

来源:互联网 发布:这个淘宝内衣女模特赵 编辑:程序博客网 时间:2024/04/29 23:54

线性回归

线性回归问题

andrew的Week1和Week2说的也是线性回归。可以比较下二者所讲的。

比如银行给顾客信用卡的例子,线性回归做的不是决定“要不要给顾客信用卡”而是“要给顾客多少信用额度”,每个顾客给的不一样。线性回归:

注意,x0是常数项,是阈值。目标是希望加权后的结果和期望接近。没有sign,就是直接算出来的值就是结果,不需要像分类问题一样,取符号。

和分类不一样:(有两个特征x1x2

 一维的是:

红色的线是误差,即residual余数,预测和实际差多少。希望余数越小越好,用squared error衡量:

从机器学习角度要看两个,一个是训练数据上的error,另一个是还没看过的资料的error。

注意,有noise,所以(x,y)~P就是x和y都服从某个分布

线性回归算法

现在的问题就是,怎么minimize Ein(w)。这和Andrew讲的一样,就是要minJ(θ)。

—>是向量内积交换。1/N是求平均,是我们的预测,是希望的。

再把连加的展开,有点象

最后简化式子,X表示的是输入的资料,W表示变化的线,y是想要的输出。

目标是

这是一个连续、可导的凸函数,碗状。可以在andrew的Week1中看多维空间的成本函数Ein样子。

因为Ein(W)是碗状的,所以在碗底WLin一定就是Ein最小的地方。梯度是Ein(W)的d个偏导数为分量的向量。梯度方向是函数具有最大变化率的方向。沿正梯度方向,函数是上升的;沿负梯度方向,函数是下降的。

以下是几个常用的梯度公式:

把Ein(W)的平方展开,用正规方程(Normal Equation,andrew的Week2 )求min Ein(w): 

把称A这个称b为c

上式化为:

求梯度(可参考那几个常用梯度的式子):

再把A、b、c代回原来的值

碗底WLin是梯度为0的地方,是Ein最小的地方。

所以梯度为0,就是:

接下去,就是矩阵求逆(要可逆才行):

 

(Normal Equation已经在Andrewweek2中写过,一模一样

这里,把用符号表示。

这样,WLin可以表示为:

不可逆的话,就用梯度下降算法(重点在步长和方向)。

所以Normal Equation总结就是:

(1)矩阵X

(2)求逆

(3)求=

(4)

Normal Equation给人的感觉就是嗖的一下就出来了,不像梯度下降一样,一步一步迭代,给人感觉有在学习。所以,接下来,就分析一下为什么这个算法也是真的有在学习。

首先,它有好的EinEin(W)凸函数在碗底Ein最小,而且我们的确求出来了这个Ein

其次,有好的EoutEin=Eout

最后,它不是一下子就出结果。矩阵求逆中间也是一步一步求出来的。

一般化问题

我们深入分析下Eout也是好的。

首先把Ein的式子展开:

I是单位矩阵。

我们把叫做帽子(Hat)矩阵H。这个矩阵是y变成了

(因为,而

帽子矩阵H的作用是什么呢?

首先,在一个N维空间,y是这个空间的一个向量。

 

我们看,其中WLIN是权重,是x的系数。X是d+1维的空间。(本篇开始,我们就说

所以是X空间的一个向量。

 

X空间包含在N维空间中。

实际上是y在X空间的投影。垂直于X空间。线性回归做的事情,就是要让越小越好。

帽子矩阵H做的事情,就是投影。(去看看前面,我们说帽子矩阵是把y变成了

I-H做的事情,就是求

trace(I-H)就是(I-H)这个矩阵的对角线上所有值的和。

它的物理理解就是,y是N维空间的向量,当我们投影到d+1维空间时,求剩下部分的自由度就是(N-(d+1))。

上面说的是理想状况。(你会问“什么意思?”)实际存在noise,使我们求的的目标函数f(x)是:

它是有noise情况下求出来的:

 

所以,如果我们把noise也投影到x空间,那么也是noise和它在X空间投影的余数。

1/N是求平均,这个N是N笔资料。(N-(d+1))的N是N维。(对N维和N笔资料的说法不太理解,不知道是不是为了约掉N,才取N笔资料?)

noise level是资料中有多少的noise,即一定做不到的部分。d+1是自由度。N是资料量。 

Eout部分有点复杂(先不证了)。

所以,Normal Equation可以求得EinEout很接近。

 

帽子矩阵有三条性质:

(1)对称性

(2)两次投影会投到同一个地方

(3)取2次余数会得到同一个余数

线性回归解决分类问题

现在来比较线性分类和线性回归:

{+1,-1}也是实数,能不能就直接用线性回归,就不用什么线性分类,还是NP-hard。我们来看看线性分类的问题是否能用线性回归解。 

它们两个最大的区别就是错误衡量的方式。

sqr的err是个抛物线,左边y=1,错误最低的就是=1时;右边y=-1,错误最低的就是=-1时。

0/1的err是个阶梯,输出只能{+1,-1}。左边y=1,当>0,sign()输出是1时就没错,否则就错了;右边y=-1,当<0,sign()输出是-1时就没错,否则就错了。

从上面的图可以看出:

VCbound说:

上面告诉我们线性分类的err比线性回归的err小,所以:

所以,可以用线性回归解决线性分类问题,就是err宽松了些。

而且,PLA或pocket算法时,w0可以用线性回归求一个比较好的w,然后再用原来思路修正。这样就可以加速算法。

 


0 0
原创粉丝点击