关于周志华老师的《机器学习》这本书的学习笔记
记录学习过程
本博客记录Chapter6 支持向量机
1 间隔与支持向量
对于给定的训练集,分类学习的最基本想法就是基于训练集D在样本空间中找到一个划分超平面。且应该找位于两位训练样本 “正中间” 的划分超平面(图中加粗的),因为该划分超平面对样本局部扰动的“容忍性”最好,即根据该平面划分的分类结果是最鲁棒的,对未见示例的泛化能力最强。
该划分超平面可以用如下线性方程描述:
w
T
x
+
b
=
0
\bold {w^T x}+b=0
wTx+b=0
样本空间中任意点
x
\bold x
x到超平面
x
,
b
\bold x,b
x,b的距离可以写为:
r
=
∣
w
T
x
+
b
∣
∣
∣
w
∣
∣
r=\frac{|\bold{w^T x}+b|}{||\bold w||}
r=∣∣w∣∣∣wTx+b∣
假设超平面能将样本正确分类,对于
(
x
i
,
y
i
)
(\bold x_i,y_i)
(xi,yi),总有:
{
w
T
x
i
+
b
≥
+
1
,
y
i
=
+
1
w
T
x
i
+
b
≤
−
1
,
y
i
=
−
1
\begin{cases} \bold{w^T x_i}+b \ge +1, \space\space y_i=+1\\ \bold{w^T x_i}+b \le -1, \space\space y_i=-1 \end{cases}
{wTxi+b≥+1, yi=+1wTxi+b≤−1, yi=−1
如上图画圈的样本所示,这几个距离超平面最近的训练样本使得式(3)的等号成立,他们被称为“支持向量”(support vector),两个异类支持向量到超平面的距离之和被称为“间隔”(margin):
γ
=
2
∣
∣
w
∣
∣
\gamma = \frac{2}{||\bold w||}
γ=∣∣w∣∣2
因此,只需要最大化间隔,支持向量机(Support Vector Machine,简称SVM) 的基本型如下:
min
x
,
b
1
2
∣
∣
w
∣
∣
2
s
.
t
.
y
i
(
w
T
x
i
+
b
)
≥
1
,
i
=
1
,
2
,
…
,
m
\min_{\bold{x},b}\frac{1}{2}||\bold w||^2\\ s.t.\space\space y_i(\bold{w^T x_i}+b)\ge 1, \space\space i=1,2,…,m
x,bmin21∣∣w∣∣2s.t. yi(wTxi+b)≥1, i=1,2,…,m
2 对偶问题
对式(5)使用拉格朗日乘子法可得其“对偶问题”(dual problem):
L
(
w
,
b
,
α
)
=
1
2
∣
∣
w
∣
∣
2
+
∑
i
=
1
m
α
i
(
1
−
y
i
(
w
T
x
i
+
b
)
)
L(\bold w, b, \bold \alpha)=\frac{1}{2}||\bold w||^2+\sum_{i=1}^m\alpha_i(1-y_i(\bold{w^T x_i}+b))
L(w,b,α)=21∣∣w∣∣2+i=1∑mαi(1−yi(wTxi+b))
令
L
(
w
,
b
,
α
)
L(\bold w,b,\alpha)
L(w,b,α)对
w
\bold w
w和
b
b
b偏导为0可得:
w
=
∑
i
=
1
m
α
i
y
i
x
i
0
=
∑
i
=
1
m
α
i
y
i
\bold w=\sum_{i=1}^m \alpha_iy_i\bold x_i\\ 0=\sum_{i=1}^m \alpha_iy_i
w=i=1∑mαiyixi0=i=1∑mαiyi
将式(7)带入式(6),得对偶问题:
max
α
∑
i
=
1
m
α
i
−
1
2
∑
i
=
1
m
∑
j
=
1
m
α
i
α
j
y
i
y
j
x
i
T
x
j
s
.
t
.
{
∑
i
=
1
m
a
i
y
i
=
0
α
i
≥
0
,
i
=
1
,
2
,
…
,
m
\max_\alpha \sum_{i=1}^m\alpha_i-\frac{1}{2}\sum_{i=1}^m\sum_{j=1}^m\alpha_i\alpha_jy_iy_j\bold{x_i^T x_j}\\ s.t.\begin{cases}\space\space \sum_{i=1}^m a_iy_i=0\\ \alpha_i \ge 0, \space\space i=1,2,…,m \end{cases}
αmaxi=1∑mαi−21i=1∑mj=1∑mαiαjyiyjxiTxjs.t.{ ∑i=1maiyi=0αi≥0, i=1,2,…,m
解出
α
\alpha
α后,求出
w
\bold w
w和b可得模型:
f
(
x
)
=
w
T
x
+
b
=
∑
i
=
1
m
α
i
y
i
x
i
T
x
+
b
f(\bold x)=\bold{w^T x}+b=\sum_{i=1}^m \alpha_iy_i\bold x_i^T\bold x+b
f(x)=wTx+b=i=1∑mαiyixiTx+b
同时,该模型还需要满足KKT条件:
{
α
i
≥
0
1
−
y
i
f
(
x
i
)
=
1
−
y
i
(
w
T
x
i
+
b
)
≤
0
α
i
(
1
−
y
i
f
(
x
i
)
)
=
0
\begin{cases} \alpha_i \ge 0\\ 1-y_if(\bold x_i)=1-y_i(\bold{w^T x_i}+b) \le 0\\ \alpha_i(1-y_if(\bold x_i))=0 \end{cases}
⎩⎪⎨⎪⎧αi≥01−yif(xi)=1−yi(wTxi+b)≤0αi(1−yif(xi))=0
因此,对于训练样本
(
x
i
,
y
i
)
(\bold x_i, y_i)
(xi,yi),总有
α
i
=
0
\alpha_i=0
αi=0或
y
i
f
(
x
i
)
=
1
y_if(\bold x_i)=1
yif(xi)=1。若
α
=
0
\alpha=0
α=0,则样本不会在
f
(
x
)
f(\bold x)
f(x)求和中出现,也就不会对
f
(
x
)
f(\bold x)
f(x)有任何影响;反之,所对应样本一定在边界上,是一个支持向量。这体现出:训练完成后,大部分训练样本不需要保留,最终模型只与支持向量有关。
求解式(8)的代表方法有SOM(Sequential Minimal Optimization)法:先固定 α i \alpha_i αi之外的所有参数,求 α i \alpha_i αi上的极值。其步骤如下:
-
选取一对需更新的变量 α i \alpha_i αi和 α j \alpha_j αj
仅考虑 α i \alpha_i αi和 α j \alpha_j αj,式(8)中的约束就可以重写为:
α i y i + α j y = c − c = ∑ k ≠ i , j α k y k \alpha_iy_i+\alpha_jy=c\\ -c=\sum_{k \neq i,j}\alpha_ky_k αiyi+αjy=c−c=k=i,j∑αkyk -
固定其他参数,求解更新后的 α i \alpha_i αi和 α j \alpha_j αj
用 α i y i + α j y = c \alpha_iy_i+\alpha_jy=c αiyi+αjy=c消去目标函数中的 α j \alpha_j αj,即可得到关于 α i \alpha_i αi的单变量二次规划问题,仅有的约束是 α i ≥ 0 \alpha_i\ge0 αi≥0,具有闭式解。即可更新 α i 和 α j \alpha_i和\alpha_j αi和αj。
-
b b b的值考虑到支持向量满足 y s f ( x i ) = 1 y_sf(\bold x_i)=1 ysf(xi)=1,因此有:
b = 1 ∣ S ∣ ∑ s ∈ S ( 1 / y s − ∑ i ∈ S α i y i x i T x s ) b=\frac{1}{|S|}\sum_{s\in S}(1/y_s-\sum_{i\in S}\alpha_iy_i\bold{x_i^T x_s}) b=∣S∣1s∈S∑(1/ys−i∈S∑αiyixiTxs)
SOM法高效的原因在于:注意到只需选取的 α i \alpha_i αi和 α j \alpha_j αj中有一个不满足KKT条件,目标函数就会在迭代后减小。直观来看,KKT条件违背的程度越大,则变量更新后可能导致的目标函数值减幅越大。于是,SMO先选取违背KKT条件程度最大的变量,第二个变量应选择一个使目标函数值减小最快的变量,但由于比较各变量所对应的目标函数值减幅的复杂度过高,因此SMO采用了一个启发式:使选取的两变量所对应样本之间的间隔最大。一种直观的解释是,这样的两个变量有很大的差别,与对两个相似的变量进行更新相比,对它们进行更新会带给目标函数值更大的变化。
总结一下:就是选两个间隔比较大的样本 ( x i , y i ) (\bold x_i,y_i) (xi,yi)和 ( x j , y j ) (\bold x_j,y_j) (xj,yj)。固定除了 α i 、 α j \alpha_i、\alpha_j αi、αj以外的所有参数,这样就能求得 − c = ∑ k ≠ i , j α k y k -c=\sum_{k \neq i,j}\alpha_ky_k −c=∑k=i,jαkyk,同时 α i y i + α j y = c \alpha_iy_i+\alpha_jy=c αiyi+αjy=c,将该式带入目标函数,可以得到关于 α i \alpha_i αi的单变量二次规划函数,求得关于 α i \alpha_i αi的极值,更新 α i 、 α j \alpha_i、\alpha_j αi、αj,继续该过程,直到模型收敛。
3 核函数
对于线性不可分问题,我们可以把样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分。(如果原始数据的空间是有限维,则一定存在一个高维特征空间使得样本可分)
令
ϕ
(
x
)
\phi(\bold x)
ϕ(x)表示
x
\bold x
x映射后的特征向量,则特征空间中划分超平面所对应的模型可表示为:
f
(
x
)
=
w
T
ϕ
(
x
)
+
b
f(\bold x)=\bold{w^T\phi(x)}+b
f(x)=wTϕ(x)+b
规划模型:
min
x
,
b
1
2
∣
∣
w
∣
∣
2
s
.
t
.
y
i
(
w
T
ϕ
(
x
i
)
+
b
)
≥
1
,
i
=
1
,
2
,
…
,
m
\min_{\bold{x},b}\frac{1}{2}||\bold w||^2\\ s.t.\space\space y_i(\bold{w^T \phi(x_i)}+b)\ge 1, \space\space i=1,2,…,m
x,bmin21∣∣w∣∣2s.t. yi(wTϕ(xi)+b)≥1, i=1,2,…,m
对偶问题:
max
α
∑
i
=
1
m
α
i
−
1
2
∑
i
=
1
m
∑
j
=
1
m
α
i
α
j
y
i
y
j
ϕ
(
x
i
)
T
ϕ
(
x
j
)
s
.
t
.
{
∑
i
=
1
m
a
i
y
i
=
0
α
i
≥
0
,
i
=
1
,
2
,
…
,
m
\max_\alpha \sum_{i=1}^m\alpha_i-\frac{1}{2}\sum_{i=1}^m\sum_{j=1}^m\alpha_i\alpha_jy_iy_j\bold{\phi(x_i)^T \phi(x_j)}\\ s.t.\begin{cases}\space\space \sum_{i=1}^m a_iy_i=0\\ \alpha_i \ge 0, \space\space i=1,2,…,m \end{cases}
αmaxi=1∑mαi−21i=1∑mj=1∑mαiαjyiyjϕ(xi)Tϕ(xj)s.t.{ ∑i=1maiyi=0αi≥0, i=1,2,…,m
由于样本映射到特征空间的维数可能很高,甚至是无穷维,因此直接计算
ϕ
(
x
i
)
T
ϕ
(
x
i
)
\phi(\bold x_i)^T\phi(\bold x_i)
ϕ(xi)Tϕ(xi)是很困难的,因此为避开这个问题,设想一个函数(核函数):
κ
(
x
i
,
x
j
)
=
<
ϕ
(
x
i
)
,
ϕ
(
x
j
)
>
=
ϕ
(
x
i
)
T
ϕ
(
x
j
)
\kappa(x_i,x_j)=<\phi(\bold x_i),\phi(\bold x_j)>=\phi(\bold x_i)^T\phi(\bold x_j)
κ(xi,xj)=<ϕ(xi),ϕ(xj)>=ϕ(xi)Tϕ(xj)
将上面对偶问题重写为:
max
α
∑
i
=
1
m
α
i
−
1
2
∑
i
=
1
m
∑
j
=
1
m
α
i
α
j
y
i
y
j
κ
(
x
i
T
,
x
j
)
s
.
t
.
{
∑
i
=
1
m
a
i
y
i
=
0
α
i
≥
0
,
i
=
1
,
2
,
…
,
m
\max_\alpha \sum_{i=1}^m\alpha_i-\frac{1}{2}\sum_{i=1}^m\sum_{j=1}^m\alpha_i\alpha_jy_iy_j\bold{\kappa(x_i^T ,x_j)}\\ s.t.\begin{cases}\space\space \sum_{i=1}^m a_iy_i=0\\ \alpha_i \ge 0, \space\space i=1,2,…,m \end{cases}
αmaxi=1∑mαi−21i=1∑mj=1∑mαiαjyiyjκ(xiT,xj)s.t.{ ∑i=1maiyi=0αi≥0, i=1,2,…,m
求解后可得(支持向量展式):
f
(
x
)
=
w
T
ϕ
(
x
)
+
b
=
∑
i
=
1
m
α
i
y
i
ϕ
(
x
i
)
T
ϕ
(
x
)
+
b
=
∑
i
=
1
m
α
i
y
i
κ
(
x
,
x
i
)
+
b
f(\bold x)=\bold w^T\phi(\bold x)+b=\sum_{i=1}^m\alpha_iy_i\phi(\bold x_i)^T\phi(\bold x)+b\\=\sum_{i=1}^m\alpha_iy_i\kappa(\bold x,\bold x_i)+b
f(x)=wTϕ(x)+b=i=1∑mαiyiϕ(xi)Tϕ(x)+b=i=1∑mαiyiκ(x,xi)+b
所以问题的关键在于如何找到一个映射 ϕ \phi ϕ以及对应的核函数 κ ( ⋅ , ⋅ ) \kappa(\cdot,\cdot) κ(⋅,⋅)。
关于核函数的定理:令 χ \chi χ为输入空间, κ ( ⋅ , ⋅ ) \kappa(\cdot, \cdot) κ(⋅,⋅)为定义在 χ × χ \chi \times \chi χ×χ上的对称函数,则 κ \kappa κ是核函数当且仅当对于任意数据 D = { x 1 , x 2 , … , x m } D=\{\bold {x_1,x_2,…,x_m}\} D={x1,x2,…,xm},“核矩阵” K K K总是半正定的。
- 半正定:对于一个 n × n n\times n n×n的实对称矩阵 A A A,对任意长度为 n n n的非零向量 x x x,都有 x T A x ≥ 0 x^TAx\ge0 xTAx≥0
该定理表明,只要一个对称函数所对应的核矩阵半正定,它就能作为核函数使用。对于一个半正定核矩阵,总能找到一个与之对应的映射 ϕ \phi ϕ,即任何一个核函数都隐式定义了一个“再生核希尔伯特空间”(Reproducing Kernel Hilbert Space),作为特征空间。
几种常用的核函数如下:
同时上述几种核函数,还能通过函数组合得到新的组合核函数:
- 线性组合: γ 1 κ 1 + γ 2 κ 2 \gamma_1\kappa_1+\gamma_2\kappa_2 γ1κ1+γ2κ2
- 直积: κ 1 ⊗ κ 2 ( x , z ) = κ 1 ( x , z ) κ 2 ( x , z ) \kappa_1 \otimes \kappa_2(\bold{x,z})=\kappa_1(\bold{x,z})\kappa_2(\bold{x,z}) κ1⊗κ2(x,z)=κ1(x,z)κ2(x,z)
- 对于任意函数 g ( x ) g(\bold x) g(x), κ ( x , z ) = g ( x ) κ 1 ( x , z ) g ( z ) \kappa(\bold{x,z})=g(\bold x)\kappa_1(\bold{x,z})g(\bold z) κ(x,z)=g(x)κ1(x,z)g(z)
4 软间隔和正则化
在现实任务中,我们往往很难确定合适的核函数使得训练样本在特征空间中线性可分。即便恰好找到了某个核函数使训练集在特征空间中线性可分,也很难断定这个貌似线性可分的结果不是由于过拟合所造成的。缓解该问题的一个办法是允许支持向量机在一些样本上出错。为此,要引入 “软间隔”(soft margin) 的概念。
软间隔允许某些样本不满足约束: y i ( w T x i + b ) ≥ 1 y_i(\bold{w^T x_i}+b)\ge1 yi(wTxi+b)≥1。
但在最大化间隔的同时,还需要保证不满足约束的样本尽可能少(
ϑ
0
/
1
\vartheta_{0/1}
ϑ0/1是损失函数):
min
w
,
b
=
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
m
ϑ
0
/
1
(
y
i
(
w
T
x
i
+
b
)
−
1
)
ϑ
0
/
1
=
{
1
,
i
f
z
<
0
;
0
,
o
t
h
e
r
w
i
s
e
\min_{w,b}=\frac{1}{2}||w||^2+C\sum_{i=1}^m \vartheta_{0/1}(y_i(\bold{w^T x_i}+b)-1)\\ \vartheta_{0/1}=\begin{cases} 1 ,\space\space\space if \space z<0;\\ 0 ,\space\space\space otherwise \end{cases}
w,bmin=21∣∣w∣∣2+Ci=1∑mϑ0/1(yi(wTxi+b)−1)ϑ0/1={1, if z<0;0, otherwise
ϑ
0
/
1
\vartheta_{0/1}
ϑ0/1函数非凸、不连续、数学性质不太好,使得目标函数较难求解。因此常常采用其他函数代替
ϑ
0
/
1
\vartheta_{0/1}
ϑ0/1,称为替代损失,如:
- hinge损失: ϑ h i n g e ( z ) = m a x ( 0 , 1 − z ) \vartheta_{hinge}(z)=max(0,1-z) ϑhinge(z)=max(0,1−z)
- 指数损失: ϑ e x p ( z ) = e ( − z ) \vartheta_{exp}(z)=e^{(-z)} ϑexp(z)=e(−z)
- 对率损失: ϑ l o g ( z ) = l o g ( 1 + e − z ) \vartheta_{log}(z)=log(1+e^{-z}) ϑlog(z)=log(1+e−z)
引入松弛变量,将规划模型改写为(其实是hinge替代损失函数的一种变形):
min
w
,
b
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
m
ξ
i
s
.
t
.
{
y
i
(
w
T
ϕ
(
x
i
)
+
b
)
≥
1
−
ξ
i
,
i
=
1
,
2
,
…
,
m
ξ
i
≥
0
,
i
=
1
,
2
,
3
…
,
m
\min_{\bold{w},b}\frac{1}{2}||\bold w||^2+ C\sum_{i=1}^m \xi_i\\ s.t. \begin{cases} y_i(\bold{w^T \phi(x_i)}+b)\ge 1-\xi_i, \space\space i=1,2,…,m\\ \xi_i \ge 0, \space\space\space i=1,2,3…,m \end{cases}
w,bmin21∣∣w∣∣2+Ci=1∑mξis.t.{yi(wTϕ(xi)+b)≥1−ξi, i=1,2,…,mξi≥0, i=1,2,3…,m
对偶问题为:
max
α
∑
i
=
1
m
α
i
−
1
2
∑
i
=
1
m
∑
j
=
1
m
α
i
α
j
y
i
y
j
x
i
T
x
j
s
.
t
.
{
∑
i
=
1
m
a
i
y
i
=
0
0
≤
α
i
≤
C
,
i
=
1
,
2
,
…
,
m
\max_\alpha \sum_{i=1}^m\alpha_i-\frac{1}{2}\sum_{i=1}^m\sum_{j=1}^m\alpha_i\alpha_jy_iy_j\bold{x_i^T x_j}\\ s.t.\begin{cases}\space\space \sum_{i=1}^m a_iy_i=0\\ 0\le \alpha_i \le C, \space\space i=1,2,…,m \end{cases}
αmaxi=1∑mαi−21i=1∑mj=1∑mαiαjyiyjxiTxjs.t.{ ∑i=1maiyi=00≤αi≤C, i=1,2,…,m
若采用其他的替代损失函数:
-
对率损失函数 ϑ l o g \vartheta_{log} ϑlog:
如果使用对率损失函数 ϑ l o g \vartheta_{log} ϑlog来替代0/1损失函数,则几乎就得到了对率回归模型。实际上,支持向量机与对率回归的优化目标相近,通常情形下它们的性能也相当。对率回归的优势主要在于其输出具有自然的概率意义,即在给出预测标记的同时也给出了概率,而支持向量机的输出不具有概率意义,欲得到概率输出需进行特殊处理。此外,对率回归能直接用于多分类任务,支持向量机为此则需进行推广;另一方面,hinge损失有一块“平坦”的零区域,使得支持向量机的解具有稀疏性,对率损失是光滑的单调递增函数,不能导出支持向量的概念,因此对率回归的解依赖于更多的训练样本,预测开销更大。
-
我们还可以把0/1损失函数换成别的替代损失函数以得到其他学习模型,这些模型的性质与所用的替代函数直接相关,但它们具有一个共性:优化目标中的第一项用来描述划分超平面的“间隔”大小,另一项 ∑ i = 1 m ϑ ( f ( x i ) , y i ) \sum_{i=1}^m\vartheta{(f(\bold x_i),y_i)} ∑i=1mϑ(f(xi),yi)用来表述训练集上的误差,可写为更一般的形式:
min f Ω ( f ) + C ∑ i = 1 m ϑ ( f ( x i ) , y i ) \min_f \Omega(f)+C\sum_{i=1}^m \vartheta(f(\bold x_i),y_i) fminΩ(f)+Ci=1∑mϑ(f(xi),yi)-
其中 Ω ( f ) \Omega(f) Ω(f)称为 “结构风险”(structural risk),用于描述模型 f f f的某些性质;第二项 ∑ i = 1 m ϑ ( f ( x i ) , y i ) \sum_{i=1}^m \vartheta(f(\bold x_i),y_i) ∑i=1mϑ(f(xi),yi)称为 “经验风险”(empirical risk),用于描述模型与训练数据的契合程度。 C用于对二者进行折中,从经验风险最小化的角度来看, Ω ( f ) \Omega(f) Ω(f)表述了我们希望获得具有何种性质的模型(例如希望获得复杂度较小的模型),这为引入领域知识和用户意图提供了途径;另一方面,该信息有助于削减假设空间,从而降低了最小化训练误差的过拟合风险。
从这个角度来说,上式称为 “正则化”(regularization)问题, Ω ( f ) \Omega(f) Ω(f)称为正则化项,C则称为正则化常数。 L p L_p Lp范数(norm)是常用的正则化项,其中 L 2 L_2 L2范数 ∣ ∣ w ∣ ∣ 2 ||\bold w||_2 ∣∣w∣∣2倾向于 w \bold w w的分量取值尽量均衡,即非零分量个数尽量稠密;而 L 0 L_0 L0范数和 L 1 L_1 L1范数则倾向于 w \bold w w的分量尽量稀疏,即非零分量个数尽量少。
-
正则化可以理解为”罚函数“。对不希望得到的结果施以惩罚,从而使得优化过程趋向于希望目标。(从贝叶斯估计角度,正则化项可认为是提供了模型的先验概率)
-
5 支持向量回归
支持向量回归(Support Vector Regression, SVR):假设我们能容忍 f ( x ) f(\bold x) f(x)和真实值 y y y之间有 ϵ \epsilon ϵ的偏差。即当 ∣ f ( x ) − y ∣ > ϵ |f(\bold x)-y|\gt \epsilon ∣f(x)−y∣>ϵ时才计算损失。
目标函数(
ϑ
ϵ
(
z
)
\vartheta_\epsilon(z)
ϑϵ(z)是
ϵ
\epsilon
ϵ-不敏感损失函数):
min
w
,
b
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
m
ϑ
ϵ
(
f
(
x
i
)
−
y
i
)
ϑ
ϵ
(
z
)
=
{
0
,
i
f
∣
z
∣
≤
ϵ
∣
z
∣
−
ϵ
,
o
t
h
e
r
w
i
s
e
\min_{\bold{w},b}\frac{1}{2}||\bold w||^2+ C\sum_{i=1}^m \vartheta_\epsilon(f(\bold x_i)-y_i)\\ \vartheta_\epsilon(z)=\begin{cases} 0,\space\space\space\space\space\space\space\space\space\space if\space |z|\le\epsilon\\ |z|-\epsilon,\space\space otherwise \end{cases}
w,bmin21∣∣w∣∣2+Ci=1∑mϑϵ(f(xi)−yi)ϑϵ(z)={0, if ∣z∣≤ϵ∣z∣−ϵ, otherwise
引入松弛变量,规划模型:
min
w
,
b
,
ξ
i
,
ξ
^
i
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
m
(
ξ
i
+
ξ
^
i
)
s
.
t
.
{
f
(
x
i
)
−
y
i
≤
ϵ
+
ξ
i
y
i
−
f
(
x
i
)
≤
ϵ
+
ξ
^
i
ξ
i
≥
0
,
ξ
^
i
≥
0
,
i
=
1
,
2
,
3
…
,
m
\min_{\bold{w},b,\xi_i,\hat \xi_i}\frac{1}{2}||\bold w||^2+ C\sum_{i=1}^m (\xi_i+\hat \xi_i)\\ s.t. \begin{cases} f(\bold x_i)-y_i \le \epsilon+\xi_i\\ y_i-f(\bold x_i) \le \epsilon+\hat \xi_i\\ \xi_i \ge 0,\hat \xi_i \ge0, \space\space\space i=1,2,3…,m \end{cases}
w,b,ξi,ξ^imin21∣∣w∣∣2+Ci=1∑m(ξi+ξ^i)s.t.⎩⎪⎨⎪⎧f(xi)−yi≤ϵ+ξiyi−f(xi)≤ϵ+ξ^iξi≥0,ξ^i≥0, i=1,2,3…,m
对偶问题:
max
α
∑
i
=
1
m
y
i
(
α
^
i
−
α
i
)
−
ϵ
(
α
^
i
+
α
i
)
−
1
2
∑
i
=
1
m
∑
j
=
1
m
(
α
^
i
−
α
i
)
(
α
^
j
−
α
j
)
x
i
T
x
j
s
.
t
.
{
∑
i
=
1
m
(
α
^
i
−
α
i
)
=
0
0
≤
α
i
,
α
^
i
≤
C
,
i
=
1
,
2
,
…
,
m
\max_\alpha \sum_{i=1}^my_i(\hat \alpha_i-\alpha_i)-\epsilon(\hat \alpha_i+\alpha_i)-\frac{1}{2}\sum_{i=1}^m\sum_{j=1}^m(\hat \alpha_i-\alpha_i)(\hat \alpha_j-\alpha_j)\bold{x_i^T x_j}\\ s.t.\begin{cases}\space\space \sum_{i=1}^m (\hat \alpha_i-\alpha_i)=0\\ 0\le \alpha_i,\hat \alpha_i \le C, \space\space i=1,2,…,m \end{cases}
αmaxi=1∑myi(α^i−αi)−ϵ(α^i+αi)−21i=1∑mj=1∑m(α^i−αi)(α^j−αj)xiTxjs.t.{ ∑i=1m(α^i−αi)=00≤αi,α^i≤C, i=1,2,…,m
SVR的解如:
f
(
x
)
=
∑
i
=
1
m
(
α
^
i
−
α
i
)
x
i
T
x
+
b
b
=
y
i
+
ϵ
−
∑
i
=
1
m
(
α
^
i
−
α
i
)
x
i
T
x
i
f(\bold x)=\sum_{i=1}^m(\hat \alpha_i-\alpha_i)\bold{x_i^T x}+b\\ b=y_i+\epsilon-\sum_{i=1}^m(\hat \alpha_i-\alpha_i)\bold{x_i^T x_i}
f(x)=i=1∑m(α^i−αi)xiTx+bb=yi+ϵ−i=1∑m(α^i−αi)xiTxi
因此,能满足
α
^
i
−
α
i
≠
0
\hat \alpha_i-\alpha_i \neq 0
α^i−αi=0的样本即为 SVR的支持向量。 他们必定落在
ϵ
\epsilon
ϵ-间隔带之外,因为间隔带内部的
α
^
i
=
α
i
=
0
\hat \alpha_i=\alpha_i=0
α^i=αi=0,因此,SVR的支持向量仅仅是训练样本的一部分,其解依然有稀疏性。
6 核方法
表示定理(representer theorem):令
H
H
H为核函数
κ
\kappa
κ对应的再生核希尔伯特空间,
∣
∣
h
∣
∣
H
||h||_H
∣∣h∣∣H表示
H
H
H空间中关于
h
h
h的范数,对于任意单调递增函数$\Omega:[0, \infty] \mapsto R
和
任
意
非
负
损
失
函
数
和任意非负损失函数
和任意非负损失函数\vartheta:R^m \mapsto [0, \infty]$,优化问题
min
h
∈
H
F
(
h
)
=
Ω
(
∣
∣
h
∣
∣
H
)
+
ϑ
(
h
(
x
1
)
,
h
(
x
2
)
,
…
,
h
(
x
m
)
)
\min_{h\in H}\space F(h)=\Omega(||h||_H)+\vartheta(h(x_1),h(x_2),…,h(x_m))
h∈Hmin F(h)=Ω(∣∣h∣∣H)+ϑ(h(x1),h(x2),…,h(xm))
的解总可以写为:
h
∗
(
x
)
=
∑
i
=
1
m
α
i
κ
(
x
,
x
i
)
h^*(x)=\sum_{i=1}^m\alpha_i\kappa(x,x_i)
h∗(x)=i=1∑mαiκ(x,xi)
核方法:基于核函数的学习方法。常见的是,通过”核化“来将线性学习器拓展为非线性学习器。
核线性判别分析(KLDA):
利用某种映射 ϕ : χ ↦ F \phi:\chi \mapsto F ϕ:χ↦F,将样本映射到一个特征空间。
其学习目标为:
max
w
J
(
w
)
=
w
T
S
b
ϕ
w
w
T
S
w
ϕ
w
\max_w J(w)=\frac{\bold w^T\bold S_b^\phi\bold w}{\bold w^T\bold S_w^\phi\bold w}
wmaxJ(w)=wTSwϕwwTSbϕw
其中,
S
b
ϕ
\bold S_b^\phi
Sbϕ是类间散度矩阵,
S
w
ϕ
\bold S_w^\phi
Swϕ为类内散度矩阵。
我们使用核函数 κ ( x , x i ) = ϕ ( x i ) T ϕ ( x i ) \kappa(x,x_i)=\phi(x_i)^T\phi(x_i) κ(x,xi)=ϕ(xi)Tϕ(xi)来隐式地表达映射和特征空间。得到 h ( x ) = ∑ i = 1 m α i κ ( x , x i ) h(x)=\sum_{i=1}^m\alpha_i\kappa(x,x_i) h(x)=∑i=1mαiκ(x,xi)
因此 w = ∑ i = 1 m α i ϕ ( x i ) w=\sum_{i=1}^m\alpha_i\phi(x_i) w=∑i=1mαiϕ(xi)
令
K
∈
R
m
×
m
K\in R^{m\times m}
K∈Rm×m为核函数
κ
\kappa
κ所对应的核矩阵。
(
K
)
i
j
=
κ
(
x
i
,
x
j
)
(K)_{ij}=\kappa(x_i,x_j)
(K)ij=κ(xi,xj)。令
1
i
∈
{
1
,
0
}
m
×
1
1_i \in \{1,0\}^{m\times 1}
1i∈{1,0}m×1表示第
i
i
i类样本地指示向量,即当
1
i
1_i
1i的第
j
j
j个分量为1当且仅当
x
j
∈
X
i
x_j \in X_i
xj∈Xi,否则为0。令
μ
^
0
=
1
m
0
K
1
0
μ
^
1
=
1
m
1
K
1
1
M
=
(
μ
^
0
−
μ
^
1
)
(
μ
^
0
−
μ
^
1
)
T
N
=
K
K
T
−
∑
i
=
0
1
m
i
μ
^
i
μ
^
i
T
\hat \mu_0 = \frac{1}{m_0}K1_{0}\\ \hat \mu_1 = \frac{1}{m_1}K1_{1}\\ M=(\hat \mu_0-\hat \mu_1)(\hat \mu_0-\hat \mu_1)^T\\ N=KK^T-\sum_{i=0}^1m_i\hat \mu_i\hat \mu_i^T
μ^0=m01K10μ^1=m11K11M=(μ^0−μ^1)(μ^0−μ^1)TN=KKT−i=0∑1miμ^iμ^iT
于是,目标函数等价于
max
α
J
(
α
)
=
α
T
M
α
α
T
N
α
\max_\alpha J(\alpha)=\frac{\alpha^TM\alpha}{\alpha^TN\alpha}
αmaxJ(α)=αTNααTMα
利用线性判别分析求解法可以求得
α
\alpha
α,进而求得投影函数
h
(
x
)
h(x)
h(x)。