这一章主要介绍SVM和相关向量机。SVM是一个决策机器,不提供后验概率,而且得到的解是稀疏的,这里的稀疏指的是,只有部分训练样本(支持向量)对模型结果有影响。而RVM是基于贝叶斯方法的,能提供后验概率的输出,并且通常能产生比SVM更稀疏的解
1 最大边缘分类器
1 点到线性决策面的距离推导
如上图,首先假设 y(x)=wTx ,分析任意点 xn 到局侧面 y(x)=0 的距离。
显然, xn 可以分解为
其中, xn⊥ 是x在决策面上的投影,r是点到决策面的距离。
处理公式则有:
则点到决策面的距离为:
2 基本的SVM
首先考虑二元分类线性模型, y(x)=wTϕ(x)+b 。如果线性可分,则 y(x0)>0 ,标签 t0=1 , y(x0)<0 ,则标签 t0=−1 。SVM引入边沿margin的概念,如下图
根据上面的推导,点 xn 到决策面的距离为:
则最大化最小边缘解可以表示为:
考虑到对w和b作缩放,不会影响点 xn 到决策面的距离,因此我们简化模型,对于距离决策面最近的点,令
这种情况下,所有的点都会满足限制:
显然,现在最大化的公式可以转化为:
显然,这是一个有不等约束的优化问题。参考KKT条件,我们可用拉格朗日乘子法求解,构建函数如下:
求导求解后,得到对偶表示,结果如下:
其中
由约束条件可知,对任何的数据点,要么 an=0 ,要么 tny(xn)=1 。因此, an=0 的点都不会出现在对偶表示的公式中,也就是它们对新数据点的预测没有作用,所以SVM是稀疏核机,那些对新数据预测有作用的点就是支持向量,刚好它们满足 tny(xn)=1 ,所以它们对应于特征空间的最大边缘处。
3 软限制的SVM
但实际中两类数据的分布会有重叠的情况,另外也有噪音的存在,导致两类训练数据如果一定要完全分开,泛化性能会很差。SVM引入软限制的机制,允许训练时一些样本被误分类。我们修改目标函数,允许样本点位于错误的一边,但会增加一个惩罚项,其大小随着数据点到边界的距离而增大这个惩罚项叫松弛变量,表示为:
边界内以及上的点,惩罚 ξn 为0,而超出决策边界(无法正确分类)的点, ξn=1 。因此,初始的限制条件就发生了改变,如下:
对于容易误分类的点,由于惩罚大,限制被适当放宽,反之限制相对较强。这在一定程度上保证了泛化性能不被个别异常数据影响。
现在,对应的损失函数变成:
其中,C是超参数,形成折中。
对应的拉格朗日函数为:
最后求解得到的形式同硬限制,如下:
对应的约束(盒约束)为:
我们已经看到核函数对应于特征空间中的内积。特征空间可以是高维的,甚至是无穷维的。通过直接对核函数操作,而不显式引入特征空间,支持向量机或许在一定程度上避免了维度灾难的问题。然而,事实并非如此,因为限制了特征空间维度的特征的值之间存在限制,如:
这个核函数表示一个六维空间的内积。 ϕ(x) 是从输入空间到六维空间的映射.映射后,六个维度每个维度的值是有固定参数的,也就是映射后,六维特征是有固定的形式。因此,原二维数据x都被限制到了六维空间的一个nonlinear manifold中。
4 多类SVM
基本的支持向量机是二类分类器,对于多类的情况它本质上无法解决。有几种方法:
(1)用下式计算:
但是不同的分类器是在不同任务上进行训练的,无法保证不同分类器产生的实数值 yk(x) 具有恰当的标度。
(2)one-vs-rest:会存在数据不均衡的问题;但用的最多
(3)one-vs-one:在所有可能的类别对之间训练 K(K−1)2 个不同的二分类SVM,然后将测试数据点分到具有最高”投票数”的类别中;但是这种方法训练耗时大
5 SVM处理回归问题
简单的线性回归模型,误差函数为:
为了得到稀疏解,引入 ϵ -不敏感误差函数,也就是如果预测y(x)和目标t的差的绝对值小于 ϵ ,那么误差默认为0。一个例子是:
于是,误差函数变为:
现在,目标点位于管道内的条件是 yn−ϵ<=tn<=yn+ϵ ,其中, yn=y(xn) 。
考虑引入松弛变量 ξn>=0 和 ξnˆ>=0 ,其中, ξn>=0 对应于 tn>y(xn)+ϵ 的数据,而 ξnˆ>=0 对应于 tn<y(xn)−ϵ 的数据点。所以,对应的条件变为:
支持向量机回归误差函数变为:
对应的拉格朗日函数为:
求解得到的结果:
对应的KKT条件为:
简单分析,如果
ϵ+ξn+yn−tn=0
,那么系数
an
只能非零,这表明数据点要么位于
ϵ
-管道的上边界上(
ξn=0
),要么位于上边界的上方(
ξn>0
)。类似,
anˆ
的非零值表示
ϵ+ξnˆ−yn+tn=0
,这些点必须位于
ϵ
-管道的下边界上或者下边界的下方。
而且,
ϵ+ξn+yn−tn=0
和
ϵ+ξnˆ−yn+tn=0
是不兼容的,因此对于每个数据点
xn
,
an
和
anˆ
至少一个为零。因此,对预测有贡献的数据点就是那些
an≠0
或
anˆ≠0
成立的数据点,它们位于
ϵ
-管道边界上或者管道外部。我们再次得到了稀疏解。
2 相关向量机
SVM存在一些缺点,如不能完成多类分类,因为用最大边沿的概念分析数据,无法得到概率输出。RVM能较好的处理概率输出。这是一个用于回归问题和分类问题的贝叶斯稀疏核方法。
1 回归问题
考虑线性回归模型,模型定义了给定一个输入向量x的情况下,实值目标变量t的条件概率分布,形式为:
其中, y(x)=∑Mi=1wTϕ(x)
这里,RVM采用的基函数是核函数的形式。于是,表达式修改为类似SVM的形式。
假设我们有N次观测,则整体的似然函数为:
下面为参数向量w引入零均值的高斯先验分布,RVM这里的关键区别在于我们为每个权参数 wi 引入单独的超参数 αi ,即权重先验形式为:
接下来计算w的后验概率分布,它必然是个高斯分布,形式如下:
其中,均值和方差分别是:
其中, Φ 是 N∗M 的设计矩阵,满足 Φni=ϕi(xn) ,且 ΦnM=1(n=1,...,N) , A=diag(αi)
这里, α 和 β 是参数,可以用第二类最大似然法求解。这里,略去过程,对于最优化的结果,实验发现超参数 {αi} 的部分趋于特别大,因此对应于超参的权参数 wi 的后验概率均值和方差都为0.因此这些权重对应的基函数 ϕi(x) 被从模型中去掉,对于新输入的预测没有作用,所以它也是稀疏得到解。对应于剩下的非零权值的输入 xn 被称为相关向量。
求得最大边缘似然函数的超参数 α∗ 和 β∗ 后,对于新输入的x,预测分布为:
其中, σ2(x)=(β∗)−1+ϕ(x)T∑ϕ(x)
对比SVM,RVM的主要缺点是训练过程涉及到优化一个非凸的函数,并且与一个效果相似的SVM相比,训练时间要更长。优点则在于RVM中相关向量的数量比SVM中使用的支持向量数量少得多。RVM生成的模型比对应的支持向量机生成的模型简洁一个数量级,从而使得处理测试数据的速度有极大提升。
2 分类问题
考虑二分类问题,目标变量是二值变量 t∈{0,1} 。这个模型现在的形式为基函数是线性组合后经过logistic sigmoid变换的结果,形式为:
因为这里包含了logistic sigmoid函数,我们不采用回归模型的求解方法(因为不好求解),而是采用拉普拉斯近似,对于固定的 α ,w的后验概率分布的众数可以通过最大化下式得到:
拉普拉斯近似求解后得到:
这里可以看出,RVM给出的是概率输出,这是优于SVM的地方。
对于多分类的情况,可以构建K个线模型,如下:
然后用softmax函数进行组合输出,如下:
这样,对数似然函数为:
优点:RVM对多分类问题处理的基础更加牢固,并且对于新的数据点,能够给出概率形式的预测;它避免了通过交叉验证确定模型复杂度的过程,补偿了训练时间的劣势;它产生的模型更加稀疏,对于预测点的预测时间通常更短
缺点:训练时间长
3 拉格朗日乘子法和KKT条件
这部分是推导SVM的关键,单独讲解;这里参考了http://blog.youkuaiyun.com/xianlingmao/article/details/7919597
一般的优化问题可以分为三类:
(1) 无约束优化问题:
(2)有等式约束的优化问题:
(3)有不等式约束的优化问题:
对于第一类问题,简单的采用Fermat(求导找最优)的方法得到;
对于第二类问题,采用拉格朗日乘子法
对于第三类问题,采用KKT条件
拉格朗日乘子法:
以第二类问题为例,定义函数 L(a,x)=f(x)+aTH(x) ,对该函数各参数求导取零,得到最优解。
KKT条件:
把所有的不等式约束、等式约束和目标函数全部写为一个式子 L(a,b,x)=f(x)+a∗g(x)+b∗h(x) ,KKT条件是说最优值必须满足以下条件:
(1) L(a, b, x)对x求导为零;
(2) h(x) =0;
(3) a*g(x) = 0;
下面主要解释为什么拉格朗日乘子法和KKT条件得到的是最优解。
拉格朗日乘子法,设想我们的目标函数z = f(x), x是向量, z取不同的值,相当于可以投影在x构成的平面(曲面)上,即成为等高线,如下图,目标函数是f(x, y),这里x是标量,虚线是等高线,现在假设我们的约束g(x)=0,x是向量,在x构成的平面或者曲面上是一条曲线,假设g(x)与等高线相交,交点就是同时满足等式约束条件和目标函数的可行域的值,但肯定不是最优值,因为相交意味着肯定还存在其它的等高线在该条等高线的内部或者外部,使得新的等高线与目标函数的交点的值更大或者更小,只有到等高线与目标函数的曲线相切的时候,可能取得最优值,如下图所示,即等高线和目标函数的曲线在该点的法向量必须有相同方向,所以最优值必须满足:f(x)的梯度 = a* g(x)的梯度,a是常数,表示左右两边同向。这个等式就是L(a,x)对参数求导的结果。
而KKT条件是满足强对偶条件的优化问题的必要条件,可以这样理解:我们要求
令
则f(x)可以写为:
为什么呢?因为 h(x)=0 , g(x)<=0 ,现在是取 L(a,b,x) 的最大值,而 a∗g(x)<=0 ,所以L(a,b,x)只有在 a∗g(x)=0 的情况下才能取得最大值,否则,就不满足约束条件。
因此
maxa,bL(a,b,x)
在满足约束条件的情况下就是
f(x)
,我们的目标函数可以写为
如果用对偶表达则为:
由于我们的优化是满足强对偶的(强对偶就是说对偶式子的最优值是等于原问题的最优值的),所以在取得最优值x0的条件下,它满足
也就是说
因而, minxf(x)+a∗g(x)+b∗h(x) 在x0取得了最小值,用fermat定理,即是说 L(a,b,x)=f(x)+a∗g(x)+b∗h(x) 在x0处求导为0,这就是KKT条件的第一条;而第二条h(x)的约束在原本的问题中已经包含,第三个条件 ag(x)=0 则在刚刚讨论中已包含。