您的位置:首页 > 其它

机器学习基石---Linear Regression

2018-02-05 16:11 190 查看
knitr::opts_chunk$set(echo = TRUE)


  前面都是在讲泛化的问题,现在开始讲算法相关。我之前看李航的书大都是怎么构建损失函数以及如何优化损失函数,也没想过泛化的问题。至于线性回归,统计学里讲的比较取巧,先假定存在线性关系,受误差项影响产生一些波动。书归正传,按照Week9的顺序,权当复习。

符号标记

x=(x0,x1,x2,⋯,xd)Tx=(x0,x1,x2,⋯,xd)T:样本特征,其中x0x0为常数项,其余为用户特征

yy:目标变量,连续型数值变量

w=(w0,w1,w2,⋯,wd)
20000
Tw=(w0,w1,w2,⋯,wd)T:系数向量

线性回归算法

  Hypothesis如下:

h(x)=wTXh(x)=wTX

线性回归算法的目标就是找到最合适的ww,使得训练集误差(EinEin)最小。而衡量误差的方式为:

Ein(h)=1N∑n=1N(h(xn)−yn)2Ein(h)=1N∑n=1N(h(xn)−yn)2

矩阵表示:



矩阵XX共计NN行,每一行代表一个样本,每个样本d+1d+1个维度。

对于这类线性回归问题,损失函数一般是凸函数。凸函数证明:

∂f∂w=2N(XTXw−XTy)∂2f∂w2=2NXTX∂f∂w=2N(XTXw−XTy)∂2f∂w2=2NXTX

易知Hessian Matrix为半正定,所以损失函数是凸函数。此时只要令一阶导为0,求出对应的ww即可。

2N(XTXw−XTy)=0XTXw=XTywLIN=(XTX)−1XTy2N(XTXw−XTy)=0XTXw=XTywLIN=(XTX)−1XTy

其中(XTX)−1XT(XTX)−1XT又称伪逆矩阵,记为X+X+。XTXXTX的逆矩阵不一定存在,软件总能求出一个替代矩阵。这样我们可以找一个ww使得损失函数最小。

泛化问题

  又是比较难的部分,线性回归能保证Ein≈EoutEin≈Eout吗?没大看懂,尝试着叙述一下。变换EinEin个形式:



用WLINWLIN预测时,可以得到预测值y^=XwLIN=X(XTX)−1XTyy^=XwLIN=X(XTX)−1XTy,称X(XTX)−1XTX(XTX)−1XT为Hat Matrix。

而Hat Matrix的物理意义如下:



Hat Matrix相当于对yy做往XX张成的线性空间span投影的操作。那么{I - X{X^ + }{I - X{X^ + }则是向span垂直方向投影。从几何上讲我们希望找到最短的y−y^y−y^,显然向量垂直这个线性空间时,满足要求。(三维的时候容易理解,试验设计教材上的比较清楚)。

  考虑noise存在的情况:y=f(X)+noisey=f(X)+noise,此时EinEin为:

Ein(wLIN)=1N∥y−XX+y∥2=1N∥(I−XX+)y∥2=1N∥(I−XX+)f(X)+(I−XX+)noise∥2Ein(wLIN)=1N‖y−XX+y‖2=1N‖(I−XX+)y‖2=1N‖(I−XX+)f(X)+(I−XX+)noise‖2

因为f(X)f(X)在XX张成的空间上,所以(I−XX+)f(X)(I−XX+)f(X)为0。进一步:

Ein(wLIN)=1N∥(I−XX+)noise∥2=1Ntrace(I−XX+)∥noise∥2=1N(N−(d+1))∥noise∥2Ein(wLIN)=1N‖(I−XX+)noise‖2=1Ntrace(I−XX+)‖noise‖2=1N(N−(d+1))‖noise‖2

推导过程并不懂,noise应该是一个矩阵,每个样本都会有一个随机扰动noise存在。Mr林并没有讲的很细致,就平均而言

E¯in=noiselevel∗(1+d+1N)E¯out=noiselevel∗(1−d+1N)E¯in=noiselevel∗(1+d+1N)E¯out=noiselevel∗(1−d+1N)

noise level也不知道什么意思,有的资料上貌似指的是误差项的协方差矩阵。



EinEin和EoutEout都向σ2σ2(noise level)收敛,他们之间的差异被2(d+1)N2(d+1)Nbound住。所以这时候说明NN够大时,Ein≈EoutEin≈Eout。

Summary

  有点怀念NG课程直接面向工程的方式,至少容易接受点。泛化的问题实在是比较难理解,先这样吧。

                         2018-02-05 于杭州
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: