《机器学习基石》9-Linear Regression

这一节主要介绍线性回归算法。

Linear Regression Problem

对于输出空间 Y=R Y = R 的一类问题,一个比较简单的想法就是:将 Linear Classification 的决策函数中的 sign 函数去掉,使用各种特征的加权结果来表示 y y

yi=0dwixi=wTx y ≈ ∑ i = 0 d w i x i = w T x
这就是线性回归算法,它的假设空间为
h(x)=wTx h ( x ) = w T x
线性回归的目标是寻找一条直线 ( R2 R 2 ) 或者一个平面 ( R3 R 3 )或者超平面( Rn R n ),使得误差最小,常用的误差函数是平方误差
Ein(w)=1Nn=1N(h(xn)yn)2 E i n ( w ) = 1 N ∑ n = 1 N ( h ( x n ) − y n ) 2
Eout(w)=ϵ(x,y)P(wTxy) E o u t ( w ) = ϵ ( x , y ) ∼ P ( w T x − y )

Linear Regression Algorithm

Ein E i n 写成矩阵形式

Ein(w)=1Nn=1N(h(xn)yn)2=1NxT1wy1xT2wy2xTNwyN2=1NXwy2 E i n ( w ) = 1 N ∑ n = 1 N ( h ( x n ) − y n ) 2 = 1 N ‖ x 1 T w − y 1 x 2 T w − y 2 ⋅ ⋅ ⋅ x N T w − y N ‖ 2 = 1 N ‖ X w − y ‖ 2

其中
X=[xT1,1xT2,1xTN,1]RN×(d+1) X = [ x 1 T , 1 x 2 T , 1 ⋅ ⋅ ⋅ x N T , 1 ] ∈ R N × ( d + 1 )
wR(d+1)×1 w ∈ R ( d + 1 ) × 1
yRN×1 y ∈ R N × 1

我们的目标是找到一个 w w ,使得 Ein(w) E i n ( w ) 尽可能小。因此,将 Ein(w) E i n ( w ) w w 求导,得到:
Ein(w)=2NXT(Xwy) ∇ E i n ( w ) = 2 N X T ( X w − y )
Ein(w)=0 ∇ E i n ( w ) = 0 ,得到 w w 的最优解
wLIN=(XTX)1XTy=Xy w LIN = ( X T X ) − 1 X T y = X † y
其中
X=(XTX)1XT X † = ( X T X ) − 1 X T
称为矩阵 X X 的伪逆,于是
h(x)=wTLINx h ( x ) = w LIN T x

将上面做一个小结,得到 Linear Regression 算法的流程如下:
《机器学习基石》9-Linear Regression_第1张图片

Generalization Issue

下面我们来分析一下 Linear Regression 的 Ein E i n

Ein(wLIN)=1N||yy^||2=1N||yXXy||2=1N||(IH)y||2 E i n ( w L I N ) = 1 N | | y − y ^ | | 2 = 1 N | | y − X X † y | | 2 = 1 N | | ( I − H ) y | | 2
其中 H=XX H = X X † 是投影矩阵,把 y y 投影到 X X d+1 d + 1 个向量构成的平面上, H H 有如下的性质:

  • 对称性 H=HT H = H T
  • 幂等性 H2=H H 2 = H
  • 半正定性 λi0 λ i ≥ 0
  • trace(IH)=N(d+1) t r a c e ( I − H ) = N − ( d + 1 )

《机器学习基石》9-Linear Regression_第2张图片
假设 y=f(X)+noise,f(x)span y = f ( X ) + noise , f ( x ) ∈ span ,那么如上图所示,有

Ein(wLIN)=1N||(IH)y||2=1N||(IH)noise||2=1Ntrace(IH)||noise||2=1N(N(d+1))||noise||2 E i n ( w L I N ) = 1 N | | ( I − H ) y | | 2 = 1 N | | ( I − H ) n o i s e | | 2 = 1 N t r a c e ( I − H ) | | n o i s e | | 2 = 1 N ( N − ( d + 1 ) ) | | n o i s e | | 2
得到:
Ein(wLIN)=||noise||2(1d+1N) E i n ( w L I N ) = | | n o i s e | | 2 ⋅ ( 1 − d + 1 N )
Eout(wLIN)=||noise||2(1+d+1N) E o u t ( w L I N ) = | | n o i s e | | 2 ⋅ ( 1 + d + 1 N )

《机器学习基石》9-Linear Regression_第3张图片
两者最终都向 σ2 σ 2 (noise level)收敛,差距是 2(d+1)N 2 ( d + 1 ) N ,因此说明算法是可行的。

Linear Regression for Binary Classification

对比一下 Linear Classification 与 Linear Regression:

  • Linear Regression
    • 用于分类问题
    • Y={+1,1} Y = { + 1 , − 1 }
    • h(x)=sign(wTx) h ( x ) = sign ( w T x )
    • NP-hard,难于求解
  • Linear Regression
    • 用于回归问题
    • Y=R Y = R
    • h(x)=wTx h ( x ) = w T x
    • 易于求解

因为

err0/1=[[sign(wTx)y]]errsqr=(wTxy)2 err 0 / 1 = [ [ sign ( w T x ) ≠ y ] ] ≤ err sqr = ( w T x − y ) 2
所以可以将 Linear Regression 用于分类问题上:

  1. run Linear Regression on binary classification data D D
  2. return g(x)=sign(wTLINx) g ( x ) = sign ( w LIN T x )

以上便是 Linear Regression 的内容。

你可能感兴趣的:(台大-机器学习)