岭回归(ridge regression)
在前面的一篇博客(机器学习——线性回归(Linear Regression))中提到,线性回归的解析解如下,
w
=
(
X
T
X
)
−
1
X
T
y
w = {({X^T}X)^{ - 1}}{X^T}y
w=(XTX)−1XTy
其中,X的维数为
N
×
(
d
+
1
)
N \times (d + 1)
N×(d+1)。因为大多数情况下样本量(N)是远大于特征数(d)的,所以,
X
T
X
X^TX
XTX常常是可逆的。但当X不是列满秩矩阵时,即特征数比样本数还要多,则
X
T
X
X^TX
XTX的行列式为0,
X
T
X
X^TX
XTX不可逆;或者X的某些列的线性相关性比较大时,
X
T
X
X^TX
XTX的行列式接近0,此时
X
T
X
X^TX
XTX为病态矩阵,此时计算逆矩阵误差会比较大。
为了解决 X T X X^TX XTX矩阵求逆的问题,给矩阵 X T X X^TX XTX加上一个 λ I \lambda I λI,从而使矩阵非奇异,进而能对 X T X + λ I {X^T}X + \lambda I XTX+λI求逆,这就是岭回归。
即岭回归的系数计算式为,
W
=
(
X
T
X
+
λ
I
)
−
1
X
T
Y
W = {({X^T}X + \lambda I)^{ - 1}}{X^T}Y
W=(XTX+λI)−1XTY
上式中的
λ
I
\lambda I
λI其实是正则化的一种体现,上式是L2-regularized linear regression的解析解,计算过程描述如下:
首先,L2-regularized linear regression的问题可以描述为,
min
w
  
λ
N
w
T
w
+
1
N
∑
n
=
1
N
(
y
n
−
w
T
x
n
)
2
\mathop {\min }\limits_w \;\frac{\lambda }{N}{w^T}w + \frac{1}{N}\sum\limits_{n = 1}^N {{{({y_n} - {w^T}{x_n})}^2}}
wminNλwTw+N1n=1∑N(yn−wTxn)2
写成矩阵形式为,
min
w
  
λ
N
w
T
w
+
1
N
∥
X
w
−
y
∥
2
\mathop {\min }\limits_w \;\frac{\lambda }{N}{w^T}w + \frac{1}{N}{\left\| {Xw - y} \right\|^2}
wminNλwTw+N1∥Xw−y∥2
对上式求梯度,
∇
(
w
)
=
2
λ
N
w
+
1
N
(
2
X
T
X
w
−
2
X
T
y
)
=
2
N
(
(
λ
I
+
X
T
X
)
w
−
X
T
y
)
=
0
\nabla (w) = \frac{{2\lambda }}{N}w + \frac{1}{N}(2{X^T}Xw - 2{X^T}y) = \frac{2}{N}((\lambda I + {X^T}X)w - {X^T}y) = 0
∇(w)=N2λw+N1(2XTXw−2XTy)=N2((λI+XTX)w−XTy)=0
令梯度为0,求得系数w,为,
w
=
(
X
T
X
+
λ
I
)
−
1
X
T
Y
w = {({X^T}X + \lambda I)^{ - 1}}{X^T}Y
w=(XTX+λI)−1XTY
所以,岭回归的系数解析解其实是对线性回归进行L2正则化的一种体现。
最小二乘支持向量机(LSSVM)
在上一篇博客中,提到了Representer Theorem,即对于任意的L2正则化的线性模型,其最佳化的 w w w均可表示为资料线性组合的形式,所以可以考虑把Kernel用在岭回归里,叫做kernel ridge regression。
由于
w
=
∑
i
=
0
N
β
n
z
n
w = \sum\limits_{i = 0}^N {{\beta _n}{z_n}}
w=i=0∑Nβnzn,所以一旦把岭回归kernel化之后,实际上就是用参数
β
\beta
β取代了原来的参数
w
w
w,则现在的kernel ridge regression问题可以描述如下,
min
β
  
λ
N
∑
n
=
1
N
∑
m
=
1
N
β
n
β
m
K
(
x
n
,
x
m
)
+
1
N
∑
n
=
1
N
(
y
n
−
∑
m
=
1
N
β
m
K
(
x
n
,
x
m
)
)
2
    
=
λ
N
β
T
K
β
+
1
N
(
∥
y
−
K
β
∥
2
)
              
−
转
化
为
矩
阵
形
式
    
=
λ
N
β
T
K
β
+
1
N
(
β
T
K
T
K
β
−
2
β
T
K
T
y
+
y
T
y
)
\begin{array}{l} \mathop {\min }\limits_\beta \;\frac{\lambda }{N}\sum\limits_{n = 1}^N {\sum\limits_{m = 1}^N {{\beta _n}{\beta _m}K({x_n},{x_m})} + \frac{1}{N}} \sum\limits_{n = 1}^N {{{({y_n} - \sum\limits_{m = 1}^N {{\beta _m}K({x_n},{x_m})} )}^2}} \\\\ \;\; = \frac{\lambda }{N}{\beta ^T}K\beta + \frac{1}{N}({\left\| {y - K\beta } \right\|^2})\;\;\;\;\;\;\;-转化为矩阵形式\\\\ \;\; = \frac{\lambda }{N}{\beta ^T}K\beta + \frac{1}{N}({\beta ^T}{K^T}K\beta - 2{\beta ^T}{K^T}y + {y^T}y) \end{array}
βminNλn=1∑Nm=1∑NβnβmK(xn,xm)+N1n=1∑N(yn−m=1∑NβmK(xn,xm))2=NλβTKβ+N1(∥y−Kβ∥2)−转化为矩阵形式=NλβTKβ+N1(βTKTKβ−2βTKTy+yTy)
求上式的梯度,如下,
∇
E
(
β
)
=
2
N
(
λ
K
T
I
β
+
K
T
K
β
−
K
T
y
)
                        
=
2
N
K
T
(
(
λ
I
+
K
)
β
−
y
)
(
这
里
的
K
是
一
个
半
正
定
的
对
称
矩
阵
)
\begin{array}{l} \nabla E(\beta ) = \frac{2}{N}(\lambda {K^T}I\beta + {K^T}K\beta - {K^T}y)\\\\ \;\;\;\;\;\;\;\;\;\;\;\; = \frac{2}{N}{K^T}((\lambda I + K)\beta - y)\\\\ (这里的K是一个半正定的对称矩阵) \end{array}
∇E(β)=N2(λKTIβ+KTKβ−KTy)=N2KT((λI+K)β−y)(这里的K是一个半正定的对称矩阵)
让
∇
E
(
β
)
=
0
\nabla {\rm{E}}(\beta ) = 0
∇E(β)=0,可以得到如下的解析解,
β
=
(
λ
I
+
K
)
−
1
y
\beta = {(\lambda I + K)^{ - 1}}y
β=(λI+K)−1y
该解一定存在,因为
λ
>
0
\lambda > 0
λ>0,并且K一定是一个半正定矩阵,所以,
λ
I
+
K
\lambda I + K
λI+K一定可逆。
上面的是kernel ridge regression的参数求解过程,而LSSVM实际上就是kernel ridge regression用于分类的情况,即,
但LSSVM求解的时间复杂度达到了 O ( N 3 ) O(N^3) O(N3),且求解过程中,矩阵K是稠密的。
下面是linear ridge regression和kernel ridge regression的一个对比,
linear ridge regression | kernel ridge regression |
---|---|
w = ( X T X + λ I ) − 1 X T Y w = {({X^T}X + \lambda I)^{ - 1}}{X^T}Y w=(XTX+λI)−1XTY | β = ( λ I + K ) − 1 y \beta = {(\lambda I + K)^{ - 1}}y β=(λI+K)−1y |
限制更多,形状比较简单 | 更加灵活,边界可以很复杂 |
训练复杂度:
O
(
d
3
+
d
2
N
)
O(d^3+d^2N)
O(d3+d2N) 预测复杂度: O ( d ) O(d) O(d) | 训练复杂度:
O
(
N
3
)
O(N^3)
O(N3) 预测复杂度: O ( N ) O(N) O(N) |
当 N > > d N>>d N>>d时,计算很高效 | 对于样本数多的情况,计算量太大 |
所以,从上表可以看出,linear与kernel其实就是对efficiency和flexibility的一个取舍。
Tube Regression
在介绍Tube Regression之前,首先先对Soft-Margin SVM和LSSVM做一个对比,下面两张图是对同一个案例,分别用这两方法所求得的边界示意,
图中,正方形所框选出的都是支持向量(SVs),从中可以看出,LSSVM有更多的SVs,这就意味着其参数
β
\beta
β是稠密的,预测起来,也会更慢。但之前说过 ,标准的SVM求得的系数
α
\alpha
α是稀疏的,所以,要找到一种方法,获得一个稀疏的
β
\beta
β——Tube Regression。
- 在tube内(紫色区域内):没有错误
- 在tube外:计算到tube的距离当作error(红色线为error)
则其误差衡量方式为,
e
r
r
(
y
,
s
)
=
max
(
0
,
∣
s
−
y
∣
−
ε
)
err(y,s) = \max (0,\left| {s - y} \right| - \varepsilon )
err(y,s)=max(0,∣s−y∣−ε)
这中误差叫做
ε
−
i
n
s
e
n
s
i
t
i
v
e
    
e
r
r
o
r
{\rm{\varepsilon - insensitive\;\; error}}
ε−insensitiveerror,有如下关系,
当 ∣ s − y ∣ ≤ ε : 误 差 为 0 当 ∣ s − y ∣ > ε : 误 差 为 ∣ s − y ∣ − ε \begin{array}{l} 当\left| {s - y} \right| \le \varepsilon :误差为0\\ 当\left| {s - y} \right| > \varepsilon :误差为\left| {s - y} \right|{\rm{ - }}\varepsilon \end{array} 当∣s−y∣≤ε:误差为0当∣s−y∣>ε:误差为∣s−y∣−ε
下面将Tube Regression和Squared Regression做一个对比,
Tube Regression | Squared Regression |
---|---|
误差图像如下,
- 当 ∣ s − y ∣ \left| {s - y} \right| ∣s−y∣很小时, t u b e ≈ s q u a r e d tube \approx squared tube≈squared;
- 当 ∣ s − y ∣ \left| {s - y} \right| ∣s−y∣越来越小时,即从中间向两边,tube增长缓慢,不容易受noise影响。
加入L2 regularizer之后,即L2-Regularized Tube Regression描述如下,
min w    λ N w T w + 1 N ∑ n = 1 N max ( 0 , ∣ w T z n − y ∣ − ε ) \mathop {\min }\limits_w \;\frac{\lambda }{N}{w^T}w + \frac{1}{N}\sum\limits_{n = 1}^N {\max (0,\left| {{w^T}{z_n} - y} \right| - \varepsilon )} wminNλwTw+N1n=1∑Nmax(0,∣∣wTzn−y∣∣−ε)
将上式改写,可得到SVR的原始形式如下,
min b , w    1 2 w T w + C ∑ n = 1 N max ( 0 , ∣ w T z n + b − y n ∣ − ε )                                  — — S t a n d a r d      S V R      P r i m a l \mathop {\min }\limits_{b,w} \;\frac{1}{2}{w^T}w + C\sum\limits_{n = 1}^N {\max (0,\left| {{w^T}{z_n} + b - {y_n}} \right| - \varepsilon )}\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;——Standard \;\;SVR \;\;Primal b,wmin21wTw+Cn=1∑Nmax(0,∣∣wTzn+b−yn∣∣−ε)——StandardSVRPrimal
上述问题的形式,比方便求解,对比之前SVM部分的推导,将其进行改写,改写后的等价最优化问题如下,
min
b
,
w
,
ξ
∧
,
ξ
∨
    
1
2
w
T
w
+
C
∑
n
=
1
N
(
ξ
n
∨
+
ξ
n
∧
)
      
s
.
t
.
      
−
ε
−
ξ
n
∨
≤
y
n
−
w
T
z
n
−
b
≤
ε
+
ξ
n
∧
                            
ξ
n
∨
≥
0
,
ξ
n
∧
≥
0
\begin{array}{l} \mathop {\min }\limits_{b,w,{\xi ^ \wedge },{\xi ^ \vee }} \;\;\frac{1}{2}{w^T}w + C\sum\limits_{n = 1}^N {(\xi _n^ \vee + \xi _n^ \wedge )} \\\\ \;\;\;s.t.\;\;\; - \varepsilon - \xi _n^ \vee \le {y_n} - {w^T}{z_n} - b \le \varepsilon + \xi _n^ \wedge \\\\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;\xi _n^ \vee \ge 0,\xi _n^ \wedge \ge 0 \end{array}
b,w,ξ∧,ξ∨min21wTw+Cn=1∑N(ξn∨+ξn∧)s.t.−ε−ξn∨≤yn−wTzn−b≤ε+ξn∧ξn∨≥0,ξn∧≥0
其中,参数C的含义:regularization和tube violation的权衡
参数
ε
\varepsilon
ε的含义:tube的宽度
上述问题可用QP来求解,共有 d ~ + 1 + 2 N \tilde d + 1 + 2N d~+1+2N个变量,4N条约束,接下来,就是把primal问题转为dual问题,移除对 d ~ \tilde d d~的依赖。
引入拉格朗日乘子
α
∧
&
α
∨
{\alpha ^ \wedge }\& {\alpha ^ \vee }
α∧&α∨:
目
标
方
程
                  
1
2
w
T
w
+
C
∑
n
=
1
N
(
ξ
n
∨
+
ξ
n
∧
)
加
入
α
n
∧
        
f
o
r
          
y
n
−
w
T
z
n
−
b
≤
ε
+
ξ
n
∧
加
入
α
n
∨
        
f
o
r
    
−
ε
−
ξ
n
∨
≤
y
n
−
w
T
z
n
−
b
\begin{array}{l} 目标方程\;\;\;\;\;\;\;\;\;\frac{{\rm{1}}}{{\rm{2}}}{w^T}w + C\sum\limits_{n = 1}^N {(\xi _n^ \vee + \xi _n^ \wedge )} \\\\ 加入\alpha _n^ \wedge \;\;\;\;for\;\;\;\;\;{y_n} - {w^T}{z_n} - b \le \varepsilon + \xi _n^ \wedge \\\\ 加入\alpha _n^ \vee \;\;\;\;for\;\; - \varepsilon - \xi _n^ \vee \le {y_n} - {w^T}{z_n} - b \end{array}
目标方程21wTw+Cn=1∑N(ξn∨+ξn∧)加入αn∧foryn−wTzn−b≤ε+ξn∧加入αn∨for−ε−ξn∨≤yn−wTzn−b
KKT条件:
∂
L
∂
w
i
=
0
:
              
w
=
∑
n
=
1
N
(
α
n
∧
−
α
n
∨
⎵
β
n
)
z
n
∂
L
∂
b
=
0
:
                
∑
n
=
1
N
(
α
n
∧
−
α
n
∨
)
=
0
c
o
m
p
l
e
m
e
n
t
a
r
y
    
s
l
a
c
k
n
e
s
s
:
α
n
∧
(
ε
+
ξ
n
∧
−
y
n
+
w
T
z
n
+
b
)
=
0
α
n
∨
(
ε
+
ξ
n
∨
+
y
n
−
w
T
z
n
−
b
)
=
0
\begin{array}{l} \frac{{\partial L}}{{\partial {w_i}}} = 0:\;\;\;\;\;\;\;w = \sum\limits_{n = 1}^N {(\underbrace {\alpha _n^ \wedge - \alpha _n^ \vee }_{{\beta _n}})} {z_n}\\\\ \frac{{\partial L}}{{\partial b}} = 0:\;\;\;\;\;\;\;\;\sum\limits_{n = 1}^N {(\alpha _n^ \wedge - \alpha _n^ \vee )} = 0\\\\ {\rm{complementary \;\;slackness:}}\begin{array}{} {\alpha _n^ \wedge (\varepsilon + \xi _n^ \wedge - {y_n} + {w^T}{z_n} + b) = 0}\\ {\alpha _n^ \vee (\varepsilon + \xi _n^ \vee + {y_n} - {w^T}{z_n} - b) = 0} \end{array} \end{array}
∂wi∂L=0:w=n=1∑N(βn
αn∧−αn∨)zn∂b∂L=0:n=1∑N(αn∧−αn∨)=0complementaryslackness:αn∧(ε+ξn∧−yn+wTzn+b)=0αn∨(ε+ξn∨+yn−wTzn−b)=0
推导过程略,下面直接给出SVR Dual:
min
  
1
2
∑
n
=
1
N
∑
m
=
1
N
(
α
n
∧
−
α
n
∨
)
(
α
m
∧
−
α
m
∨
)
K
n
,
m
+
∑
n
=
1
N
(
(
ε
−
y
n
)
⋅
α
n
∧
+
(
ε
+
y
n
)
⋅
α
n
∨
)
s
.
t
.
  
∑
n
=
1
N
(
α
n
∧
−
α
n
∨
)
            
0
≤
α
n
∧
≤
C
,
0
≤
α
n
∨
≤
C
\begin{array}{l} \min \;\frac{1}{2}\sum\limits_{n = 1}^N {\sum\limits_{m = 1}^N {(\alpha _n^ \wedge - \alpha _n^ \vee )(\alpha _m^ \wedge - \alpha _m^ \vee ){K_{n,m}}} } + \sum\limits_{n = 1}^N {((\varepsilon - {y_n}) \cdot \alpha _n^ \wedge + (\varepsilon + {y_n}) \cdot \alpha _n^ \vee )} \\\\ s.t.\;\sum\limits_{n = 1}^N {(\alpha _n^ \wedge - \alpha _n^ \vee )} \\\\ \;\;\;\;\;\;0 \le \alpha _n^ \wedge \le C,0 \le \alpha _n^ \vee \le C \end{array}
min21n=1∑Nm=1∑N(αn∧−αn∨)(αm∧−αm∨)Kn,m+n=1∑N((ε−yn)⋅αn∧+(ε+yn)⋅αn∨)s.t.n=1∑N(αn∧−αn∨)0≤αn∧≤C,0≤αn∨≤C
与QP的形式相似,可以用相似的求解器来求解。
SVR解的稀疏性解释:
根据KKT条件,有如下关系:
w
=
∑
n
=
1
N
(
α
n
∧
−
α
n
∨
⎵
β
n
)
z
n
c
o
m
p
l
e
m
e
n
t
a
r
y
    
s
l
a
c
k
n
e
s
s
:
α
n
∧
(
ε
+
ξ
n
∧
−
y
n
+
w
T
z
n
+
b
)
=
0
α
n
∨
(
ε
+
ξ
n
∨
+
y
n
−
w
T
z
n
−
b
)
=
0
\begin{array}{l} w = \sum\limits_{n = 1}^N {(\underbrace {\alpha _n^ \wedge - \alpha _n^ \vee }_{{\beta _n}})} {z_n}\\ {\rm{complementary\;\; slackness:}}\begin{array}{} {\alpha _n^ \wedge (\varepsilon + \xi _n^ \wedge - {y_n} + {w^T}{z_n} + b) = 0}\\ {\alpha _n^ \vee (\varepsilon + \xi _n^ \vee + {y_n} - {w^T}{z_n} - b) = 0} \end{array} \end{array}
w=n=1∑N(βn
αn∧−αn∨)zncomplementaryslackness:αn∧(ε+ξn∧−yn+wTzn+b)=0αn∨(ε+ξn∨+yn−wTzn−b)=0
而根据tube regression,把数据点分为两部分,即
- 在tube之内的点,有,
∣ w T z n + b − y n ∣ < ε ⇒ ξ n ∧ = 0 , ξ n ∨ = 0 ⇒ ( ε + ξ n ∧ − y n + w T z n + b ) ≠ 0 , ( ε + ξ n ∨ + y n − w T z n − b ) ≠ 0 ⇒ α n ∧ = 0 , α n ∨ = 0 ⇒ β n = 0 \begin{array}{l} \left| {{w^T}{z_n} + b - {y_n}} \right| < \varepsilon \\\\ \Rightarrow \xi _n^ \wedge = 0,\xi _n^ \vee = 0\\\\ \Rightarrow (\varepsilon + \xi _n^ \wedge - {y_n} + {w^T}{z_n} + b) \ne 0,(\varepsilon + \xi _n^ \vee + {y_n} - {w^T}{z_n} - b) \ne 0\\\\ \Rightarrow \alpha _n^ \wedge = 0,\alpha _n^ \vee = 0\\\\ \Rightarrow {\beta _n} = 0 \end{array} ∣∣wTzn+b−yn∣∣<ε⇒ξn∧=0,ξn∨=0⇒(ε+ξn∧−yn+wTzn+b)̸=0,(ε+ξn∨+yn−wTzn−b)̸=0⇒αn∧=0,αn∨=0⇒βn=0
- 在tube之外的点,即SVs,则 β n ≠ 0 {\beta _n} \ne 0 βn̸=0
所以,SVR可以有一个稀疏解 β \beta β。