PRML第七之稀疏核机稀疏核机
在前⼀章中,我们研究了许多基于⾮线性核的学习算法。这种算法的⼀个最⼤的局限性
- 核函数k(xn, xm)必须对所有可能的训练点对xn和xm进⾏求值
- 这在训练阶段的计算上是不可⾏的,并且会使得对新的数据点进⾏预测时也会花费过多的时间。
本章中,我们会看到具有稀疏(sparse)解的基于核的算法,从⽽对新数据的预测只依赖于在训练数据点的⼀个⼦集上计算的核函数
⾸ 先, 我 们 详 细 讨 论 ⽀ 持 向 量 机 (support vector machine) (SVM)⽀ 持向 量 机 的 ⼀ 个 重 要 性 质 是 模 型 参 数 的 确 定 对 应 于 ⼀ 个 凸 最 优 化 问 题,因 此 许 多 局部 解 也 是 全 局 最 优 解。
最⼤边缘分类器
我们回到使⽤线性模型的⼆分类问题。线性模型的形式为
y
(
x
)
=
w
T
ϕ
(
x
)
+
b
y ( \boldsymbol { x } ) = \boldsymbol { w } ^ { T } \boldsymbol { \phi } ( \boldsymbol { x } ) + b
y(x)=wTϕ(x)+b
我们会简要介绍使⽤核函数表达的对偶形式,这避免了显式地在特征空间中进⾏计算。
我们假设训练数据集在特征空间中是线性可分的,存在⾄少⼀个参数w和b的选择⽅式,使得对于tn = +1的点,函数(7.1)都满⾜y(xn) > 0,对于tn = −1的点,都有y(xn) < 0,从⽽对于所有训练数据点,都有 t n y ( x n ) > 0 t _ { n } y \left( \boldsymbol { x } _ { n } \right) > 0 tny(xn)>0。我们应该尝试寻找泛化错误最⼩的那个解。这时候引入
- 边缘(margin)的概念,这个概念被定义为决策边界与任意样本之间的最⼩距离
在⽀持向量机中,决策边界被选为使边缘最⼤化的那个决策边界。点xn距离决策⾯的距离为
t
n
y
(
x
n
)
∥
w
∥
=
t
n
(
w
T
ϕ
(
x
n
)
+
b
)
∥
w
∥
\frac { t _ { n } y \left( \boldsymbol { x } _ { n } \right) } { \| \boldsymbol { w } \| } = \frac { t _ { n } \left( \boldsymbol { w } ^ { T } \boldsymbol { \phi } \left( \boldsymbol { x } _ { n } \right) + b \right) } { \| \boldsymbol { w } \| }
∥w∥tny(xn)=∥w∥tn(wTϕ(xn)+b)
最⼤边缘解可以通过下式得到
arg
max
w
,
b
{
1
∥
w
∥
min
n
[
t
n
(
w
T
ϕ
(
x
n
)
+
b
)
]
}
\underset { \boldsymbol { w } , b } { \arg \max } \left\{ \frac { 1 } { \| \boldsymbol { w } \| } \min _ { n } \left[ t _ { n } \left( \boldsymbol { w } ^ { T } \boldsymbol { \phi } \left( \boldsymbol { x } _ { n } \right) + b \right) \right] \right\}
w,bargmax{∥w∥1nmin[tn(wTϕ(xn)+b)]}
我们注意到如果我们进⾏重新标度w → κw以及b → κb,那么任意点xn距离决策⾯的距离
t
n
y
(
x
n
)
∥
w
∥
\frac { t _ { n } y \left( \boldsymbol { x } _ { n } \right) } { \| \boldsymbol { w } \| }
∥w∥tny(xn)不会发⽣改变。为了简单,我们就通过缩放一定能够找到一个w使得(这样只用讨论分母w就行啦)
t
n
(
w
T
ϕ
(
x
n
)
+
b
)
=
1
t _ { n } \left( \boldsymbol { w } ^ { T } \boldsymbol { \phi } \left( \boldsymbol { x } _ { n } \right) + b \right) = 1
tn(wTϕ(xn)+b)=1
所有的数据点会满⾜限制
t
(
w
T
ϕ
(
x
n
)
+
b
)
≥
1
,
n
=
1
,
…
,
N
t \left( \boldsymbol { w } ^ { T } \boldsymbol { \phi } \left( \boldsymbol { x } _ { n } \right) + b \right) \geq 1 , \quad n = 1 , \ldots , N
t(wTϕ(xn)+b)≥1,n=1,…,N
上 式取得等号 的数据点, 我们说限制被 激活(active),⼀旦边缘被最⼤化,会有⾄少两个激活的限制。就是支持向量嘛,所以这个时候是不是就只用讨论分母w了,最优化问题就简化为了最⼤化
∥
w
∥
−
1
∥w∥^{−1}
∥w∥−1,这等价于最⼩化
∥
w
∥
2
∥w∥^2
∥w∥2,因此我们要在限制条件(上式)下,求解最优化问题。
arg
min
w
,
b
1
2
∥
w
∥
2
\underset { \boldsymbol { w } , b } { \arg \min } \frac { 1 } { 2 } \| \boldsymbol { w } \| ^ { 2 }
w,bargmin21∥w∥2
了解决这个限制的最优化问题,我们引⼊拉格朗⽇乘数
a
n
≥
0
a_n ≥ 0
an≥0。公式(7.5)中的每个限制条件都对应着⼀个乘数an。从⽽可得下⾯的拉格朗⽇函数
L
(
w
,
b
,
a
)
=
1
2
∥
w
∥
2
−
∑
m
=
1
N
a
n
{
t
n
(
w
T
ϕ
(
x
n
)
+
b
)
−
1
}
L ( \boldsymbol { w } , b , \boldsymbol { a } ) = \frac { 1 } { 2 } \| \boldsymbol { w } \| ^ { 2 } - \sum _ { m = 1 } ^ { N } a _ { n } \left\{ t _ { n } \left( \boldsymbol { w } ^ { T } \boldsymbol { \phi } \left( \boldsymbol { x } _ { n } \right) + b \right) - 1 \right\}
L(w,b,a)=21∥w∥2−m=1∑Nan{tn(wTϕ(xn)+b)−1}
注意拉格朗⽇乘数项前⾯的负号,因为我们要关于w和b最⼩化,关于a最⼤化。(不是很懂???),令L(w, b, a)关于w和b的导数等于零,我们得到了下⾯两个条件
w
=
∑
n
=
1
N
a
n
t
n
ϕ
(
x
n
)
0
=
∑
n
=
1
N
a
n
t
n
\begin{aligned} \boldsymbol { w } = & \sum _ { n = 1 } ^ { N } a _ { n } t _ { n } \boldsymbol { \phi } \left( \boldsymbol { x } _ { n } \right) \\ 0 & = \sum _ { n = 1 } ^ { N } a _ { n } t _ { n } \end{aligned}
w=0n=1∑Nantnϕ(xn)=n=1∑Nantn
使 ⽤ 这 两 个 条 件 从L(w, b, a)中 消 去w和b, 就 得 到 了 最 ⼤ 化 边 缘 问 题 的 对 偶 表 ⽰ (dual representation),其中我们要关于a最⼤化
L
~
(
a
)
=
∑
n
=
1
N
a
n
−
1
2
∑
n
=
1
N
∑
m
=
1
N
a
n
a
m
t
n
t
m
k
(
x
n
,
x
m
)
a
n
≥
0
,
n
=
1
,
…
,
N
∑
n
=
1
N
a
n
t
n
=
0
\begin{array} { c } { \tilde { L } ( \boldsymbol { a } ) = \sum _ { n = 1 } ^ { N } a _ { n } - \frac { 1 } { 2 } \sum _ { n = 1 } ^ { N } \sum _ { m = 1 } ^ { N } a _ { n } a _ { m } t _ { n } t _ { m } k \left( \boldsymbol { x } _ { n } , \boldsymbol { x } _ { m } \right) } \\ { a _ { n } \geq 0 , \quad n = 1 , \ldots , N } \\ { \sum _ { n = 1 } ^ { N } a _ { n } t _ { n } = 0 } \end{array}
L~(a)=∑n=1Nan−21∑n=1N∑m=1Nanamtntmk(xn,xm)an≥0,n=1,…,N∑n=1Nantn=0
通过以上式子消除w和b并去符号,则新式子
L
~
(
a
)
=
∑
n
=
1
N
a
n
−
1
2
∑
n
=
1
N
∑
m
=
1
N
a
n
a
m
t
n
t
m
k
(
x
n
,
x
m
)
a
n
≥
0
,
n
=
1
,
…
,
N
∑
n
=
1
N
a
n
t
n
=
0
\begin{array} { c } { \tilde { L } ( \boldsymbol { a } ) = \sum _ { n = 1 } ^ { N } a _ { n } - \frac { 1 } { 2 } \sum _ { n = 1 } ^ { N } \sum _ { m = 1 } ^ { N } a _ { n } a _ { m } t _ { n } t _ { m } k \left( \boldsymbol { x } _ { n } , \boldsymbol { x } _ { m } \right) } \\ { a _ { n } \geq 0 , \quad n = 1 , \ldots , N } \\ { \sum _ { n = 1 } ^ { N } a _ { n } t _ { n } = 0 } \end{array}
L~(a)=∑n=1Nan−21∑n=1N∑m=1Nanamtntmk(xn,xm)an≥0,n=1,…,N∑n=1Nantn=0
对于⼀组固定的基函数,其中基函数的数量M⼩于数据点的数量N,转化为对偶问题似乎没有什么好处。但是,对偶问题使得模型能够⽤核函数重新表⽰,因此最⼤边缘分类器可以被⾼效地应⽤于维数超过数据点个数的特征空间,包括⽆穷维特征空间。soga
通过使⽤上述公式消去w, y(x)可以根据参数{an}和核函数表⽰,即
y
(
x
)
=
∑
n
=
1
N
a
n
t
n
k
(
x
,
x
n
)
+
b
y ( \boldsymbol { x } ) = \sum _ { \mathrm { n } = 1 } ^ { N } a _ { n } t _ { n } k \left( \boldsymbol { x } , \boldsymbol { x } _ { n } \right) + b
y(x)=n=1∑Nantnk(x,xn)+b
对于每个数据点,要么an = 0,要么
t
n
y
(
x
n
)
=
1
t_ny(x_n) = 1
tny(xn)=1。任何使得an = 0的数据点都不会出现在上述公式的求和式中,因此对新数据点的预测没有作⽤。剩下的数据点被称为⽀持向量
(support vector)。⼀旦模型被训练完毕,相当多的数据点都可以被丢弃,只有⽀持向量被保留。
注意到⽀持向量xn满⾜
t
n
y
(
x
n
)
=
1
t_ny(x_n) = 1
tny(xn)=1
t
n
y
(
x
n
)
=
1
t_ny(x_n) = 1
tny(xn)=1,⾸先乘以tn,使⽤
t
n
2
=
1
t^2_n = 1
tn2=1的性质,然后对于所有的⽀持向量,整理⽅程,解出b
t
n
(
∑
m
∈
S
a
m
t
m
k
(
x
n
,
x
m
)
+
b
)
=
1
t _ { n } \left( \sum _ { m \in \mathcal { S } } a _ { m } t _ { m } k \left( \boldsymbol { x } _ { n } , \boldsymbol { x } _ { m } \right) + b \right) = 1
tn(m∈S∑amtmk(xn,xm)+b)=1
b = 1 N S ∑ n ∈ S ( t n − ∑ m ∈ S a m t m k ( x n , x m ) ) b = \frac { 1 } { N _ { \mathcal { S } } } \sum _ { n \in \mathcal { S } } \left( t _ { n } - \sum _ { m \in \mathcal { S } } a _ { m } t _ { m } k \left( \boldsymbol { x } _ { n } , \boldsymbol { x } _ { m } \right) \right) b=NS1n∈S∑(tn−m∈S∑amtmk(xn,xm))
这个例⼦也从⼏何⾓度说明了SVM中稀疏性的来源。最⼤边缘超平⾯由⽀持向量的位置定义,其他数据点可以⾃由移动(只要仍然在边缘区域之外)⽽不改变决策边界,因此解与这些数据点⽆关。
对于接下来的模型⽐较,我们可以将最⼤边缘分类器⽤带有简单⼆次正则化项的最⼩化误差
函数表⽰,形式为
∑
n
=
1
N
E
∞
(
y
(
x
n
)
t
n
−
1
)
+
λ
∥
w
∥
2
\sum _ { n = 1 } ^ { N } E _ { \infty } \left( y \left( \boldsymbol { x } _ { n } \right) t _ { n } - 1 \right) + \lambda \| \boldsymbol { w } \| ^ { 2 }
n=1∑NE∞(y(xn)tn−1)+λ∥w∥2
重叠类分布
在实际中,类条件分布可能重叠,这种情况下对训练数据的精确划分会导致较差的泛化能⼒。
现在使得数据点允许在边缘边界的“错误侧”,但是增加⼀个惩罚项,这个惩罚项随着与决策边界的距离的增⼤⽽增⼤。对于接下来的最优化问题,令这个惩罚项是距离的线性函数⽐较⽅便。为了完成这⼀点,我们引⼊松弛变量(slack variable),每个训练数据点都有⼀个松
弛变量。
对于位于正确的边缘边界内部的点或者边, ξn = 0,对于其他点, ξn = |tn − y(xn)|,因此,对于位于决策边界y(xn) = 0上的点, ξn = 1,并且ξn > 1的点就是被误分类的点。限制条件变成了
t
n
y
(
x
n
)
≥
1
−
ξ
n
,
n
=
1
,
…
,
N
t _ { n } y \left( \boldsymbol { x } _ { n } \right) \geq 1 - \xi _ { n } , \quad n = 1 , \ldots , N
tny(xn)≥1−ξn,n=1,…,N
现在我们的⽬标是最⼤化边缘,同时以⼀种⽐较柔和的⽅式惩罚位于边缘边界错误⼀侧的
点。于是,我们最⼩化
C
∑
n
=
1
N
ξ
n
+
1
2
∥
w
∥
2
C \sum _ { n = 1 } ^ { N } \xi _ { n } + \frac { 1 } { 2 } \| \boldsymbol { w } \| ^ { 2 }
Cn=1∑Nξn+21∥w∥2
其中参数C > 0控制了松弛变量惩罚与边缘之间的折中。参数C类似于(作⽤相反的)正则化系数,因为它控制了最⼩化训练误差与模型复杂度之间的折中。在C → ∞的期限情况下,我们就回到了之前讨论过的⽤于线性可分数据的⽀持向量机。
对应的拉格朗⽇函数
L
(
w
,
b
,
ξ
,
a
,
μ
)
=
1
2
∥
w
∥
2
+
C
∑
n
=
1
N
ξ
n
−
∑
n
=
1
N
a
n
{
t
n
y
(
x
n
)
−
1
+
ξ
n
}
−
∑
n
=
1
N
μ
n
ξ
n
L ( \boldsymbol { w } , b , \boldsymbol { \xi } , \boldsymbol { a } , \boldsymbol { \mu } ) = \frac { 1 } { 2 } \| \boldsymbol { w } \| ^ { 2 } + C \sum _ { n = 1 } ^ { N } \xi _ { n } - \sum _ { n = 1 } ^ { N } a _ { n } \left\{ t _ { n } y \left( \boldsymbol { x } _ { n } \right) - 1 + \xi _ { n } \right\} - \sum _ { n = 1 } ^ { N } \mu _ { n } \xi _ { n }
L(w,b,ξ,a,μ)=21∥w∥2+Cn=1∑Nξn−n=1∑Nan{tny(xn)−1+ξn}−n=1∑Nμnξn
KKT条件
a
n
≥
0
t
n
y
(
x
n
)
−
1
+
ξ
n
≥
0
a
n
(
t
n
y
(
x
n
)
−
1
+
ξ
n
)
=
0
μ
n
≥
0
ξ
n
≥
0
μ
n
ξ
n
=
0
\begin{array} { c } { a _ { n } \geq 0 } \\ { t _ { n } y \left( \boldsymbol { x } _ { n } \right) - 1 + \xi _ { n } \geq 0 } \\ { a _ { n } \left( t _ { n } y \left( \boldsymbol { x } _ { n } \right) - 1 + \xi _ { n } \right) = 0 } \\ { \mu _ { n } \geq 0 } \\ { \xi _ { n } \geq 0 } \\ { \mu _ { n } \xi _ { n } = 0 } \end{array}
an≥0tny(xn)−1+ξn≥0an(tny(xn)−1+ξn)=0μn≥0ξn≥0μnξn=0
对参数求导
∂
L
∂
w
=
0
⇒
w
=
∑
n
=
1
N
a
n
t
n
ϕ
(
x
n
)
\frac { \partial L } { \partial \boldsymbol { w } } = 0 \Rightarrow \boldsymbol { w } = \sum _ { n = 1 } ^ { N } a _ { n } t _ { n } \boldsymbol { \phi } \left( \boldsymbol { x } _ { n } \right)
∂w∂L=0⇒w=n=1∑Nantnϕ(xn)
∂ L ∂ b = 0 ⇒ ∑ n = 1 N a n t n = 0 ∂ L ∂ ξ n = 0 ⇒ a n = C − μ n \begin{aligned} \frac { \partial L } { \partial b } & = 0 \Rightarrow \sum _ { n = 1 } ^ { N } a _ { n } t _ { n } = 0 \\ \frac { \partial L } { \partial \xi _ { n } } & = 0 \Rightarrow a _ { n } = C - \mu _ { n } \end{aligned} ∂b∂L∂ξn∂L=0⇒n=1∑Nantn=0=0⇒an=C−μn
从拉格朗⽇函数中消去w, b和{ξn},我们得到了下⾯形式的拉格朗⽇函数,这个公式和之前的情况是一毛一样的,只是限制条件改变了!求其最大值
L
~
(
a
)
=
∑
n
=
1
N
a
n
−
1
2
∑
n
=
1
N
∑
m
=
1
N
a
n
a
m
t
n
t
m
k
(
x
n
,
x
m
)
\tilde { L } ( \boldsymbol { a } ) = \sum _ { n = 1 } ^ { N } a _ { n } - \frac { 1 } { 2 } \sum _ { n = 1 } ^ { N } \sum _ { m = 1 } ^ { N } a _ { n } a _ { m } t _ { n } t _ { m } k \left( \boldsymbol { x } _ { n } , \boldsymbol { x } _ { m } \right)
L~(a)=n=1∑Nan−21n=1∑Nm=1∑Nanamtntmk(xn,xm)
满足
0
≤
a
n
≤
C
∑
n
=
1
N
a
n
t
n
=
0
\begin{array} { c } { 0 \leq a _ { n } \leq C } \\ { \sum _ { n = 1 } ^ { N } a _ { n } t _ { n } = 0 } \end{array}
0≤an≤C∑n=1Nantn=0
与之前⼀样,对于数据点的⼀个⼦集,有an = 0,在这种情况下这些数据点对于预测模型(7.13)没有贡献。剩余的数据点组成了⽀持向量。这些数据点满⾜an > 0,因此根据公式(7.25),它们必须满⾜
t
n
y
(
x
n
)
=
1
−
ξ
n
t _ { n } y \left( \boldsymbol { x } _ { n } \right) = 1 - \xi _ { n }
tny(xn)=1−ξn
如果an < C,那么公式(7.31)表明µn > 0,根据公式(7.28),这要求ξn = 0,从⽽这些点位于边缘上,an = C的点位于边缘内部,并且如果ξn ≤ 1则被正确分类,如果ξn > 1则分类错
误。为 了 确 定 公 式 (7.1) 中 的 参 数b, 我 们 注 意 到0 < an < C的 ⽀ 持 向 量 满⾜ξn = 0即tny(xn) = 1,因此就满⾜
t
n
(
∑
m
∈
S
a
m
t
m
k
(
x
n
,
x
m
)
+
b
)
=
1
t _ { n } \left( \sum _ { m \in \mathcal { S } } a _ { m } t _ { m } k \left( \boldsymbol { x } _ { n } , \boldsymbol { x } _ { m } \right) + b \right) = 1
tn(m∈S∑amtmk(xn,xm)+b)=1
b = 1 N M ∑ n ∈ M ( t n − ∑ m ∈ S a m t m k ( x n , x m ) ) b = \frac { 1 } { N _ { \mathcal { M } } } \sum _ { n \in \mathcal { M } } \left( t _ { n } - \sum _ { m \in \mathcal { S } } a _ { m } t _ { m } k \left( \boldsymbol { x } _ { n } , \boldsymbol { x } _ { m } \right) \right) b=NM1n∈M∑(tn−m∈S∑amtmk(xn,xm))
多类SVM
- 1对剩余,单独训练K个分类器,会遇到类别不平衡问题
- 修改了⽬标值,使得正例类别的⽬标值为+1,负例类别的⽬标值为 − 1 K − 1 - \frac { 1 } { K - 1 } −K−11
- 两两类别训练,训练 K ( K − 1 ) 2 \frac { K ( K - 1 ) } { 2 } 2K(K−1)个不同的⼆分类SVM,然后进行投票
- 通过将每对分类器组织成有向⽆环图,这就产⽣了DAGSVM(Platt et al., 2000)。对于K个类别, DAGSVM共有 K ( K − 1 ) 2 \frac { K ( K - 1 ) } { 2 } 2K(K−1)个分类器。每次对新的测试点分类时,只需要K − 1对分类器进⾏计算。选定的分类器是根据遍历图的路径确定的。
回归问题的SVM
现在将⽀持向量机推⼴到回归问题,同时保持它的**稀疏性。**在简单的线性回归模型中,
1
2
∑
n
=
1
N
{
y
n
−
t
n
}
2
+
λ
2
∥
w
∥
2
\frac { 1 } { 2 } \sum _ { n = 1 } ^ { N } \left\{ y _ { n } - t _ { n } \right\} ^ { 2 } + \frac { \lambda } { 2 } \| \boldsymbol { w } \| ^ { 2 }
21n=1∑N{yn−tn}2+2λ∥w∥2
为了得到稀疏解,⼆次误差函数被替换为⼀个ϵ-不敏感误差函数,如果预测y(x)和⽬标t之间的差的绝对值⼩于ϵ,那么这个误差函数给出的误差等于零,其中ϵ > 0。 ϵ-不敏感误差函数的⼀个简单的例⼦是
E
ϵ
(
y
(
x
)
−
t
)
=
{
0
,
if
∣
y
(
x
)
−
t
∣
<
ϵ
∣
y
(
x
)
−
t
∣
−
ϵ
,
otherwise
E _ { \epsilon } ( y ( \mathbf { x } ) - t ) = \left\{ \begin{array} { l l } { 0 , } & { \text { if } | y ( \mathbf { x } ) - t | < \epsilon } \\ { | y ( \mathbf { x } ) - t | - \epsilon , } & { \text { otherwise } } \end{array} \right.
Eϵ(y(x)−t)={0,∣y(x)−t∣−ϵ, if ∣y(x)−t∣<ϵ otherwise
于是我们最⼩化正则化的误差函数,形式为
C
∑
n
=
1
N
E
ϵ
(
y
(
x
)
−
t
n
)
+
1
2
∥
w
∥
2
C \sum _ { n = 1 } ^ { N } E _ { \epsilon } \left( y ( \boldsymbol { x } ) - t _ { n } \right) + \frac { 1 } { 2 } \| \boldsymbol { w } \| ^ { 2 }
Cn=1∑NEϵ(y(x)−tn)+21∥w∥2
对于每个数据点xn,我们现在需要两个松弛变量ξn ≥ 0和ξ!n ≥ 0,其中ξn > 0对应于tn > y(xn) + ϵ的数据点, ξ!> 0对应于tn < y(xn) − ϵ的数据点,如图7.7所⽰。⽬标点位于ϵ-管道内的条件是yn − ϵ ≤ tn ≤ yn + ϵ,其中yn = y(xn)。引⼊松弛变量使得数据点能够位于管道之外,只要松弛变量不为零即可。
持向量回归的误差函数就可以写成
C
∑
n
=
1
N
(
ξ
n
+
ξ
^
n
)
+
1
2
∥
w
∥
2
C \sum _ { n = 1 } ^ { N } \left( \xi _ { n } + \widehat { \xi } _ { n } \right) + \frac { 1 } { 2 } \| \boldsymbol { w } \| ^ { 2 }
Cn=1∑N(ξn+ξ
n)+21∥w∥2
限制条件
t
n
≤
y
(
x
n
)
+
ϵ
+
ξ
n
t
n
≥
y
(
x
n
)
−
ϵ
−
ξ
^
n
\begin{array} { l } { t _ { n } \leq y \left( \boldsymbol { x } _ { n } \right) + \epsilon + \xi _ { n } } \\ { t _ { n } \geq y \left( \boldsymbol { x } _ { n } \right) - \epsilon - \widehat { \xi } _ { n } } \end{array}
tn≤y(xn)+ϵ+ξntn≥y(xn)−ϵ−ξ
n
ξ n ⩾ 0 and ξ ^ n ⩾ 0 \xi _ { n } \geqslant 0 \text { and } \widehat { \xi } _ { n } \geqslant 0 ξn⩾0 and ξ n⩾0
然后最优化拉格朗⽇函数
L
=
C
∑
n
=
1
N
(
ξ
n
+
ξ
^
n
)
+
1
2
∥
w
∥
2
−
∑
n
=
1
N
(
μ
n
ξ
n
+
μ
^
n
ξ
^
n
)
−
∑
n
=
1
N
a
n
(
ϵ
+
ξ
n
+
y
n
−
t
n
)
−
∑
n
=
1
N
a
^
n
(
ϵ
+
ξ
^
n
−
y
n
+
t
n
)
\begin{array} { c } { L = C \sum _ { n = 1 } ^ { N } \left( \xi _ { n } + \widehat { \xi } _ { n } \right) + \frac { 1 } { 2 } \| \boldsymbol { w } \| ^ { 2 } - \sum _ { n = 1 } ^ { N } \left( \mu _ { n } \xi _ { n } + \widehat { \mu } _ { n } \widehat { \xi } _ { n } \right) } \\ { - \sum _ { n = 1 } ^ { N } a _ { n } \left( \epsilon + \xi _ { n } + y _ { n } - t _ { n } \right) - \sum _ { n = 1 } ^ { N } \widehat { a } _ { n } \left( \epsilon + \widehat { \xi } _ { n } - y _ { n } + t _ { n } \right) } \end{array}
L=C∑n=1N(ξn+ξ
n)+21∥w∥2−∑n=1N(μnξn+μ
nξ
n)−∑n=1Nan(ϵ+ξn+yn−tn)−∑n=1Na
n(ϵ+ξ
n−yn+tn)
相关向量机
⽀持向量机还是有许多局限性
- SVM的输出是⼀个决策结果⽽不是后验概率。
- ⽀持向量机还是有许多局限性
- 有⼀个复杂度参数C或者ν(以及回归问题中的参数ϵ)必须使⽤诸如交叉验证的⽅法确定。
- 预测是⽤核函数的线性组合表⽰的,核函数以训练数据点为中⼼,并且必须是正定的。
相关向量机(relevance vector machine)或者RVM(Tipping, 2001)是⼀个⽤于回归问题分类问题的贝叶斯稀疏核⽅法,它具有许多SVM的特征,同时避免了SVM的主要的局限性。此外,它通常会产⽣更加稀疏的模型,从⽽使得在测试集上的速度更快,同时保留了可⽐的泛化误差。
⽤于回归的RVM
模型定义了给定⼀个输⼊向量x的情况下,实值⽬标变量t的条件概率分布,形式为
p
(
t
∣
x
,
w
,
β
)
=
N
(
t
∣
y
(
x
)
,
β
−
1
)
p ( t | \boldsymbol { x } , \boldsymbol { w } , \beta ) = \mathcal { N } ( t | y ( \boldsymbol { x } ) , \beta ^ { - 1 } )
p(t∣x,w,β)=N(t∣y(x),β−1)
y ( x ) = ∑ i = 1 M w i ϕ i ( x ) = w T ϕ ( x ) y ( \boldsymbol { x } ) = \sum _ { i = 1 } ^ { M } w _ { i } \phi _ { i } ( \boldsymbol { x } ) = \boldsymbol { w } ^ { T } \boldsymbol { \phi } ( \boldsymbol { x } ) y(x)=i=1∑Mwiϕi(x)=wTϕ(x)
相关向量机是这个模型的⼀个具体实例,它试图**重现⽀持向量机的结构。特别地,基函数由核给出,训练集的每个数据点关联着⼀个核。⼀般的表达式(7.77)于是就可以写成与SVM相类似的形式。
y
(
x
)
=
∑
n
=
1
N
w
n
k
(
x
,
x
n
)
+
b
y ( \boldsymbol { x } ) = \sum _ { n = 1 } ^ { N } w _ { n } k \left( \boldsymbol { x } , \boldsymbol { x } _ { n } \right) + b
y(x)=n=1∑Nwnk(x,xn)+b
假设我们有输⼊向量x的N次观测,我们将这些观测聚集在⼀起,记作数据矩阵X,它的
第n⾏是xT n,其中n = 1, . . . , N。对应的⽬标值为
t
=
(
t
1
,
…
,
t
N
)
T
\mathbf { t } = \left( t _ { 1 } , \dots , t _ { N } \right) ^ { T }
t=(t1,…,tN)T。因此,似然函数为
p
(
t
∣
X
,
w
,
β
)
=
∏
n
=
1
N
p
(
t
n
∣
x
n
,
w
,
β
)
p ( \mathbf { t } | \boldsymbol { X } , \boldsymbol { w } , \beta ) = \prod _ { n = 1 } ^ { N } p \left( t _ { n } | \boldsymbol { x } _ { n } , \boldsymbol { w } , \beta \right)
p(t∣X,w,β)=n=1∏Np(tn∣xn,w,β)
引⼊参数向量w上的先验分布。为每个权参数wi都引⼊了⼀个单独的超参数αi,⽽不是⼀个共
享的超参数。因此权值先验的形式为
p
(
w
∣
α
)
=
∏
i
=
1
M
N
(
w
i
∣
0
,
α
i
−
1
)
p ( \boldsymbol { w } | \boldsymbol { \alpha } ) = \prod _ { i = 1 } ^ { M } \mathcal { N } \left( w _ { i } | 0 , \alpha _ { i } ^ { - 1 } \right)
p(w∣α)=i=1∏MN(wi∣0,αi−1)
使⽤公式(3.49)给出的线性模型的结果,我们看到权值的后验概率分布还是⾼斯分布,形
式为
p
(
w
∣
t
,
X
,
α
,
β
)
=
N
(
w
∣
m
,
Σ
)
p ( \boldsymbol { w } | \mathbf { t } , \boldsymbol { X } , \boldsymbol { \alpha } , \beta ) = \mathcal { N } ( \boldsymbol { w } | \boldsymbol { m } , \boldsymbol { \Sigma } )
p(w∣t,X,α,β)=N(w∣m,Σ)
m = β Σ Φ T t Σ = ( A + β Φ T Φ ) − 1 \begin{array} { c } { \boldsymbol { m } = \beta \boldsymbol { \Sigma } \boldsymbol { \Phi } ^ { T } \mathbf { t } } \\ { \boldsymbol { \Sigma } = \left( \boldsymbol { A } + \beta \boldsymbol { \Phi } ^ { T } \mathbf { \Phi } \right) ^ { - 1 } } \end{array} m=βΣΦTtΣ=(A+βΦTΦ)−1
其 中, Φ是N × M的 设 计 矩 阵, 元 素 为 Φ n i = ϕ i ( x n ) ( i = 1 , … , N ) \Phi _ { n i } = \phi _ { i } \left( \boldsymbol { x } _ { n } \right) ( i = 1 , \ldots , N ) Φni=ϕi(xn)(i=1,…,N), 且 Φ n M = 1 \Phi _ { n M } = 1 ΦnM=1(n =1, . . . , N), A = diag(αi)。
作为最优化的结果,我们发现超参数{αi}的⼀部分趋于特别⼤的值(原则上是⽆穷⼤),因
此对应于这些超参数的权参数wi的后验概率的均值和⽅差都是零。作为最优化的结果,我们发现超参数{αi}的⼀部分趋于特别⼤的值(原则上是⽆穷⼤),因此对应于这些超参数的权参数wi的后验概率的均值和⽅差都是零。
优势:
- RVM中先关向量的数量⽐SVM中使⽤的⽀持向量的数量少得多。
- 对于⼀⼤类回归任务和分类任务, RVM⽣成的模型通常⽐对应的⽀持向量机⽣成的模型简洁了⼀个数量级,从⽽使得处理测试数据的速度有了极⼤的提升。
- 值得注意的是,与SVM相⽐,这种稀疏性的增⼤并没有减⼩泛化误差。
缺点:
- 与SVM相⽐, RVM的⼀个主要缺点是训练过程涉及到优化⼀个⾮凸的函数,并且与⼀个效
果相似的SVM相⽐,训练时间要更长。