一、SVM原问题及要变成对偶问题的解决办法
对于SVM的,我们知道其终于目的是求取一分类超平面,然后将新的数据带入这一分类超平面的方程中,推断输出结果的符号,从而推断新的数据的正负。
而求解svm分类器模型。终于能够化成例如以下的最优化问题:
minw,bs.t.12∥w∥21?yi(w?xi+b)≤0i=1,2,...,N
上式中。
yi相应样本
xi的标签。
我们的目的是求出上述最优化问题的最优解,
w?和
b?,从而得到分类超平面:
w??x+b?=0
进而得到分类决策函
f(x)=sign(w??x+b)
可是在求解这一最优化问题时。求解较为困难,且对于线性不可分的数据无法得到较好的分类超平面。因此依据拉格朗日对偶性,引进原最优化问题的对偶问题,通过求解对偶问题得到原始问题的最优解。
对偶问题的引进有两个方面。一是对偶问题的求解往往比原问题easy。二是对于线性不可分的数据能够通过加松弛变量、加核函数的方法,将其推广到非线性分类。
二、原始SVM的对偶问题及其求解
原始的SVM模型的原问题例如以下:
minw,bs.t.12∥w∥21?yi(w?xi+b)≤0i=1,2,...,N
为方便计算,将范数形式改写成例如以下形式:
minw,bs.t.12wTw1?yi(w?xi+b)≤0i=1,2,...,N
要想求原始问题的对偶问题。首先构造拉格朗日函数入例如以下:
L(w,b,λ)=12wTw+∑i=1Nλi[1?yi(wTxi+b)]λi≥0,i=1,2,...,N
上式中的
λi是拉格朗日乘子。
观察上述式子。可发现
λi[1?yi(wTxi+b)]≤0
所以
L(w,b,λ)≤12wTw,即构造的拉格朗日函数是原问题的一个下界。
依据拉格朗日对偶性。原始问题的的对偶问题是极大化极小问题:
maxλminw,bL(w,b,λ)
上式所表达的意思是,先求
L(w,b,λ)对
w,b的极小,再求对
λ的极大。
首先。求
minw,bL(w,b,λ):
我们知道。对于一阶可导函数,其在导数值为0的地方。取到极大或极小值,对于我们构造的拉格朗日函数,其偏导导数为0的点,一定是极小值。故:
0=??wL(w,b,λ)=w+∑i=1Nλi(?yixi)?w=∑i=1Nλiyixi0=??bL(w,b,λ)=?∑i=1Nλiyi?∑i=1Nλiyi=0
将求得的
w代入拉格朗日函数,可得
L(w,b,λ)=?12∑i=1N∑j=1NλiλjyiyjxTixj+∑i=1Nλi?∑i=1Nλiyi??∑j=1NλjyjxTjxi+b??
由于
∑Ni=1λiyi=0,故
L(w,b,λ)=?12∑i=1N∑j=1NλiλjyiyjxTixj+∑i=1Nλi
所以
g(λ)=minw,bL(w,b,λ)=?12∑i=1N∑j=1NλiλjyiyjxTixj+∑i=1Nλi
依据拉格朗日对偶的极大极小的性质,可知对偶问题的目标是:
maxλ?12∑i=1N∑j=1NλiλjyiyjxTixj+∑i=1Nλi
如今再找约束条件,
即在前面的推导过程中。遇到与λ有关的等式或不等式,且该等式或不等式中不含原问的目标变量。
可发现,在对b求偏导是得到
∑Ni=1λiyi=0,故这是一个约束条件,另外在构造拉格朗日函数时。约定了
λi≥0,故原问题的对偶问题能够写成例如以下形式:
maxλs.t.?12∑i=1N∑j=1NλiλjyiyjxTixj+∑i=1Nλi∑i=1Nλiyi=0λi≥0,i=1,2,...,N
故此得到了原始的SVM的对偶形式。如今考虑怎样从对偶问题中求得原问题的最优解。
考虑对偶问题的最优化问题。存在λ?是对偶的最优解。又由于
w=∑i=1Nλiyixi
故能够解得
w?=∑i=1Nλ?iyixi
同一时候依据KTT条件原理(这里不做解释,能够自行查阅资料,不论什么关于最优化理论、凸优化的书都会说到这个),可解得b的值:
b?=yj?∑i=1Nλ?iyixTixj
故分离超平面为:
∑i=1Nλ?iyixTix+b=0
分类决策函数为:
f(x)=sign(∑i=1Nλ?iyixTix+b)
三、加松弛变量SVM的对偶问题
如上文所述。对于线性可分的数据,能够构造SVM模型。并将其转换为一个最优化问题,且这个优化问题的约束条件是对于全部的样本。都有1?yi(wTxi+b)≤0。则对于线性不可分的数据。在数学形式的解释为存在某个样本(x,y)使上述的约束不成立,即1?y(wTx+b)>0。
既然约束条件不成立,那是否能增加一个松弛变量ξ,ξ≥0,使得1?y(wTx+b)?ξ≤0?
正是基于这个思想,出现了加松弛变量的SVM,其原始问题的形式例如以下:
minw,bs.t.12wTw+C∑i=1Nξi1?yi(w?xi+b)?ξi≤0?ξi≤0i=1,2,...,N
当中C为常数,
ξi为松弛变量。
由于我在约束中加了松弛变量,可是我们希望我们所加的松弛变量越小越好。这样越接近于原约束条件。故把“松弛变量越小越好”这一期望,放在目标函数中,由于目标函数是求最小值,故加上
C∑Ni=1ξi,这一项也被称为
“惩处项”。能够理解为增加的松弛变量越大。对目标函数的惩处力度越高。
现要求其对偶问题。相似于前面的解法,首先构造拉格朗日函数例如以下:
L(w,b,ξ,λ,β)=12wTw+C∑i=1Nξi+∑i=1Nλi[1?yi(wTxi+b)?ξi]+∑i=1Nβi(?ξi)
相同。求偏导可得:
0=??wL(w,b,λ)=w+∑i=1Nλi(?yixi)?w=∑i=1Nλiyixi0=??bL(w,b,λ)=?∑i=1Nλiyi?∑i=1Nλiyi=00=??ξi=C?λi?βi?λi=C?βi≤C
将结果代回拉格朗日函数。可得例如以下形式:
L(w,b,λ)=?12∑i=1N∑j=1NλiλjyiyjxTixj+∑i=1Nλi+C∑i=1Nξi?∑i=1Nλiξi?∑i=1Nβiξi
由于
C?λi?βi=0。所以
C∑i=1Nξi?∑i=1Nλiξi?∑i=1Nβiξi=0
故
g(λ,β)=minw,bL(w,b,λ)=?12∑i=1N∑j=1NλiλjyiyjxTixj+∑i=1Nλi
则对偶形式为
maxλs.t.?12∑i=1N∑j=1NλiλjyiyjxTixj+∑i=1Nλi∑i=1Nλiyi=00≤λi≤C,i=1,2,...,N
观察上式可发现,对于原问题。加了松弛变量后,其对偶形式变化比較小,仅仅是在约束条件上有些许变化。从这点也可发现将原问题化成对偶问题的优点,
即原问题形式的变化非常大,可是对偶问题变化却非常小,方便求解。所以非常多优化问题。假设在原问题上较为难实现,则能够考虑转化为对偶问题。
四、加核函数SVM的对偶问题
加核函数的思想是:
通过一个非线性变化将输入空间映射到一个更高维的特征空间(希尔伯特空间),使得在输入空间中的超曲面模型相应希尔伯特空间中的超平面模型。
因此,在输入空间的非线性分类问题能够变成希尔伯特空间中的线性分类问题,故能够继续使用SVM模型。
核函数的定义:
设X是输入空间(欧式空间Rn的子集或离散集合),又设H为特征空间(希尔伯特空间)。假设存在一个从X到H的映射:
?(x):X→H
使得对全部的
x,y∈X,函数
K(x,y)满足条件
K(x,y)=<?(x),?(y)>
其中<?(x),?(y)>表示内积。
核技巧的想法是:
在学习预測中,仅仅定义核函数
K(x,y)。而不是显式的定义映射函数
?。
通常,直接计算K(x,y)比較easy,而通过?(x)和?(y)计算K(x,y)并不easy。比較经常使用的核函数——高斯核函数:
K(x,y)=exp(?∥x?y∥22σ2)
基于核函数的思想,先定义原SVM模型例如以下:
minw,bs.t.12wTw+C∑i=1Nξi1?yi(w??(xi)+b)?ξi≤0?ξi≤0i=1,2,...,N
当中
?(xi)是映射将原输入样本映射到希尔伯特空间的特征。
转化为对偶形式例如以下:;
maxλs.t.?12∑i=1N∑j=1Nλiλjyiyj?T(xi)?(xj)+∑i=1Nλi∑i=1Nλiyi=00≤λi≤C,i=1,2,...,N
终于化为带核函数形式:
maxλs.t.?12∑i=1N∑j=1NλiλjyiyjK(xi,xj)+∑i=1Nλi∑i=1Nλiyi=00≤λi≤C,i=1,2,...,N
通过观察发现,由原始的输入的内积
xTix,转换到映射空间的内积
?T(xi)?(xj),再转换为核函数形式,整个学习的过程是隐式的在特征空间(希尔伯特空间)进行的吗,而我们得到的显式的结果是用核函数显式的表达,这样的技巧称为
核技巧。
其实。仅仅要是学习算法中涉及输入项的内积的函数,都能够用核函数的方法取代内积操作。