您的位置:首页 > 其它

三种SVM的对偶问题

2015-12-25 09:21 941 查看

一、SVM原问题及要变成对偶问题的原因

对于SVM的,我们知道其最终目的是求取一分类超平面,然后将新的数据带入这一分类超平面的方程中,判断输出结果的符号,从而判断新的数据的正负。而求解svm分类器模型,最终可以化成如下的最优化问题:

minw,bs.t.12∥w∥21−yi(w⋅xi+b)≤0i=1,2,...,N\begin{aligned} \displaystyle{\min_{w,b}} \hspace{1cm}&{1\over 2}\parallel w \parallel ^2\\
s.t.\hspace{1cm}&1-y_i(w\cdot x_i +b)\leq 0\\
&i=1,2,...,N
\end{aligned}上式中,yiy_i对应样本xix_i的标签。

我们的目的是求出上述最优化问题的最优解,w∗w^*和b∗b^*,从而得到分类超平面:

w∗⋅x+b∗=0w^*\cdot x +b^* = 0进而得到分类决策函

f(x)=sign(w∗⋅x+b)f(x) = sign(w^*\cdot x+b)但是在求解这一最优化问题时,求解较为困难,且对于线性不可分的数据无法得到较好的分类超平面,因此根据拉格朗日对偶性,引进原最优化问题的对偶问题,通过求解对偶问题得到原始问题的最优解。

对偶问题的引进有两个方面,一是对偶问题的求解往往比原问题容易,二是对于线性不可分的数据可以通过加松弛变量、加核函数的方法,将其推广到非线性分类。

二、原始SVM的对偶问题及其求解

原始的SVM模型的原问题如下:

minw,bs.t.12∥w∥21−yi(w⋅xi+b)≤0i=1,2,...,N\begin{aligned} {\min_{w,b}} \hspace{1cm}&{1\over 2}\parallel w \parallel ^2\\
s.t.\hspace{1cm}&1-y_i(w\cdot x_i +b)\leq 0\\
&i=1,2,...,N
\end{aligned}为方便计算,将范数形式改写成如下形式:

minw,bs.t.12wTw1−yi(w⋅xi+b)≤0i=1,2,...,N\begin{aligned} \displaystyle{\min_{w,b}} \hspace{1cm}&{1\over 2}w^Tw\\
s.t.\hspace{1cm}&1-y_i(w\cdot x_i +b)\leq 0\\
&i=1,2,...,N
\end{aligned}要想求原始问题的对偶问题,首先构造拉格朗日函数入如下:

L(w,b,λ)=12wTw+∑i=1Nλi[1−yi(wTxi+b)]λi≥0,i=1,2,...,NL(w,b,\lambda) = \frac{1}{2}w^Tw + \sum_{i=1}^N \lambda_i[ 1-y_i(w^Tx_i+b)]\\ \lambda _i\geq0, \hspace{1cm}i=1,2,...,N上式中的λi\lambda_i是拉格朗日乘子。

观察上述式子,可发现

λi[1−yi(wTxi+b)]≤0\lambda_i[1-y_i(w^Tx_i+b)]\leq0

所以L(w,b,λ)≤12wTwL(w,b,\lambda) \leq \frac{1}{2}w^Tw,即构造的拉格朗日函数是原问题的一个下界。

根据拉格朗日对偶性,原始问题的的对偶问题是极大化极小问题:

maxλminw,bL(w,b,λ)\max _{\lambda}\min_{w,b}L(w,b,\lambda)上式所表达的意思是,先求L(w,b,λ)L(w,b,\lambda)对w,bw,b的极小,再求对λ\lambda的极大。

首先,求minw,bL(w,b,λ)\min _{w,b}L(w,b,\lambda):

我们知道,对于一阶可导函数,其在导数值为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\begin{aligned}
&0=\frac{\partial}{\partial w}L(w,b,\lambda)=w+\sum_{i=1}^N\lambda_i(-y_i x_i)\Rightarrow w= \sum_{i=1}^N\lambda_iy_i x_i\\
&0=\frac{\partial}{\partial b}L(w,b,\lambda)=-\sum_{i=1}^N\lambda_iy_i\Rightarrow \sum_{i=1}^N\lambda_iy_i = 0
\end{aligned}将求得的ww代入拉格朗日函数,可得

L(w,b,λ)=−12∑i=1N∑j=1NλiλjyiyjxTixj+∑i=1Nλi−∑i=1Nλiyi⎛⎝∑j=1NλjyjxTjxi+b⎞⎠
L(w,b,\lambda)=-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\lambda_i\lambda_jy_iy_jx_i^Tx_j+\sum_{i=1}^N\lambda_i \\
-\sum_{i=1}^N\lambda_iy_i\left(\sum_{j=1}^N\lambda_jy_jx_j^Tx_i+b \right)
因为∑Ni=1λiyi=0\sum_{i=1}^N\lambda_iy_i = 0,故

L(w,b,λ)=−12∑i=1N∑j=1NλiλjyiyjxTixj+∑i=1Nλi
L(w,b,\lambda)=-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\lambda_i\lambda_jy_iy_jx_i^Tx_j+\sum_{i=1}^N\lambda_i
所以

g(λ)=minw,bL(w,b,λ)=−12∑i=1N∑j=1NλiλjyiyjxTixj+∑i=1Nλi
g(\lambda)=\min_{w,b}L(w,b,\lambda)=-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\lambda_i\lambda_jy_iy_jx_i^Tx_j+\sum_{i=1}^N\lambda_i
根据拉格朗日对偶的极大极小的性质,可知对偶问题的目标是:

maxλ−12∑i=1N∑j=1NλiλjyiyjxTixj+∑i=1Nλi
\max_{\lambda} \hspace{1cm}-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\lambda_i\lambda_jy_iy_jx_i^Tx_j+\sum_{i=1}^N\lambda_i\\
现在再找约束条件,即在前面的推导过程中,遇到与λ\lambda有关的等式或不等式,且该等式或不等式中不含原问的目标变量

可发现,在对b求偏导是得到∑Ni=1λiyi=0\sum_{i=1}^N\lambda_iy_i = 0,故这是一个约束条件,另外在构造拉格朗日函数时,约定了λi≥0\lambda_i\geq0,故原问题的对偶问题可以写成如下形式:

maxλs.t.−12∑i=1N∑j=1NλiλjyiyjxTixj+∑i=1Nλi∑i=1Nλiyi=0λi≥0,i=1,2,...,N\begin{aligned}
\displaystyle \max_{\lambda} \hspace{1cm}&-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\lambda_i\lambda_jy_iy_jx_i^Tx_j+\sum_{i=1}^N\lambda_i\\
s.t. \hspace{1cm}&\sum_{i=1}^N\lambda_iy_i = 0\\
&\lambda_i\geq0,\hspace{0.5cm}i=1,2,...,N
\end{aligned}故此得到了原始的SVM的对偶形式。现在考虑如何从对偶问题中求得原问题的最优解。

考虑对偶问题的最优化问题,存在λ∗\lambda^*是对偶的最优解,又因为

w=∑i=1Nλiyixiw= \sum_{i=1}^N\lambda_iy_i x_i

故可以解得

w∗=∑i=1Nλ∗iyixiw^*= \sum_{i=1}^N\lambda_i^*y_i x_i

同时根据KTT条件原理(这里不做解释,可以自行查阅资料,任何关于最优化理论、凸优化的书都会讲到这个),可解得b的值:

b∗=yj−∑i=1Nλ∗iyixTixjb^*=y_j-\sum_{i=1}^N\lambda_i^*y_ix_i^Tx_j故分离超平面为:

∑i=1Nλ∗iyixTix+b=0\sum_{i=1}^N\lambda_i^*y_ix_i^Tx+b=0分类决策函数为:

f(x)=sign(∑i=1Nλ∗iyixTix+b)f(x)=sign\left(\sum_{i=1}^N\lambda_i^*y_ix_i^Tx+b \right)

三、加松弛变量SVM的对偶问题

如上文所述,对于线性可分的数据,可以构造SVM模型,并将其转换为一个最优化问题,且这个优化问题的约束条件是对于所有的样本,都有1−yi(wTxi+b)≤01-y_i(w^Tx_i+b)\leq0。则对于线性不可分的数据,在数学形式的解释为存在某个样本(x,y)使上述的约束不成立,即1−y(wTx+b)>01-y(w^Tx+b)>0。

既然约束条件不成立,那能否加入一个松弛变量ξ,ξ≥0\xi,\xi\geq0,使得1−y(wTx+b)−ξ≤01-y(w^Tx+b)-\xi\leq0?

正是基于这个思想,出现了加松弛变量的SVM,其原始问题的形式如下:

minw,bs.t.12wTw+C∑i=1Nξi1−yi(w⋅xi+b)−ξi≤0−ξi≤0i=1,2,...,N\begin{aligned}
\displaystyle{\min_{w,b}} \hspace{1cm}&{1\over 2}w^Tw+C\sum_{i=1}^N\xi_i\\
s.t.\hspace{1cm}&1-y_i(w\cdot x_i +b)-\xi_i\leq 0\\
&-\xi_i\leq0\\
&i=1,2,...,N
\end{aligned}其中C为常数,ξi\xi_i为松弛变量。

因为我在约束中加了松弛变量,但是我们希望我们所加的松弛变量越小越好,这样越接近于原约束条件,故把“松弛变量越小越好”这一期望,放在目标函数中,因为目标函数是求最小值,故加上C∑Ni=1ξiC\sum_{i=1}^N\xi_i,这一项也被称为“惩罚项”,可以理解为加入的松弛变量越大,对目标函数的惩罚力度越高。

现要求其对偶问题,类似于前面的解法,首先构造拉格朗日函数如下:

L(w,b,ξ,λ,β)=12wTw+C∑i=1Nξi+∑i=1Nλi[1−yi(wTxi+b)−ξi]+∑i=1Nβi(−ξi)L(w,b,\xi,\lambda,\beta)=\frac{1}{2}w^Tw+C\sum_{i=1}^N\xi_i+\sum_{i=1}^N \lambda_i[ 1-y_i(w^Tx_i+b)-\xi_i]\\+\sum_{i=1}^N\beta_i(-\xi_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\begin{aligned}
&0=\frac{\partial}{\partial w}L(w,b,\lambda)=w+\sum_{i=1}^N\lambda_i(-y_i x_i)\Rightarrow w= \sum_{i=1}^N\lambda_iy_i x_i\\
&0=\frac{\partial}{\partial b}L(w,b,\lambda)=-\sum_{i=1}^N\lambda_iy_i\Rightarrow \sum_{i=1}^N\lambda_iy_i = 0\\
&0=\frac{\partial}{\partial \xi_i}=C-\lambda_i-\beta_i\Rightarrow\lambda_i=C-\beta_i\leq C
\end{aligned}将结果代回拉格朗日函数,可得如下形式:

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
L(w,b,\lambda)=-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\lambda_i\lambda_jy_iy_jx_i^Tx_j+\sum_{i=1}^N\lambda_i \\
+C\sum_{i=1}^N\xi_i-\sum_{i=1}^N\lambda_i\xi_i-\sum_{i=1}^N\beta_i\xi_i
因为C−λi−βi=0C-\lambda_i-\beta_i=0,所以

C∑i=1Nξi−∑i=1Nλiξi−∑i=1Nβiξi=0C\sum_{i=1}^N\xi_i-\sum_{i=1}^N\lambda_i\xi_i-\sum_{i=1}^N\beta_i\xi_i=0故

g(λ,β)=minw,bL(w,b,λ)=−12∑i=1N∑j=1NλiλjyiyjxTixj+∑i=1Nλi
g(\lambda,\beta)=\min_{w,b}L(w,b,\lambda)=-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\lambda_i\lambda_jy_iy_jx_i^Tx_j+\sum_{i=1}^N\lambda_i
则对偶形式为

maxλs.t.−12∑i=1N∑j=1NλiλjyiyjxTixj+∑i=1Nλi∑i=1Nλiyi=00≤λi≤C,i=1,2,...,N\begin{aligned}
\displaystyle \max_{\lambda} \hspace{1cm}&-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\lambda_i\lambda_jy_iy_jx_i^Tx_j+\sum_{i=1}^N\lambda_i\\
s.t. \hspace{1cm}&\sum_{i=1}^N\lambda_iy_i = 0\\
&0\leq\lambda_i\leq C,\hspace{0.5cm}i=1,2,...,N
\end{aligned}观察上式可发现,对于原问题,加了松弛变量后,其对偶形式变化比较小,只是在约束条件上有些许变化。从这点也可发现将原问题化成对偶问题的好处,即原问题形式的变化很大,但是对偶问题变化却很小,方便求解。所以很多优化问题,如果在原问题上较为难实现,则可以考虑转化为对偶问题。

四、加核函数SVM的对偶问题

加核函数的思想是:

通过一个非线性变化将输入空间映射到一个更高维的特征空间(希尔伯特空间),使得在输入空间中的超曲面模型对应希尔伯特空间中的超平面模型。因此,在输入空间的非线性分类问题可以变成希尔伯特空间中的线性分类问题,故可以继续使用SVM模型。

核函数的定义:

设X\mathbb X是输入空间(欧式空间RnR^n的子集或离散集合),又设H\mathbb H为特征空间(希尔伯特空间),如果存在一个从X\mathbb X到H\mathbb H的映射:

ϕ(x):X→H\phi(x):\mathbb X\rightarrow \mathbb H使得对所有的x,y∈Xx,y\in\mathbb X,函数K(x,y)K(x,y)满足条件

K(x,y)=<ϕ(x),ϕ(y)>K(x,y)=<\phi(x),\phi(y)>其中<ϕ(x),ϕ(y)>其中<\phi(x),\phi(y)>表示内积。

核技巧的想法是:

在学习预测中,只定义核函数K(x,y)K(x,y),而不是显式的定义映射函数ϕ\phi。通常,直接计算K(x,y)K(x,y)比较容易,而通过ϕ(x)\phi(x)和ϕ(y)\phi(y)计算K(x,y)K(x,y)并不容易。比较常用的核函数——高斯核函数:

K(x,y)=exp(−∥x−y∥22σ2)K(x,y)=exp\left( -\frac{\|x-y\|^2}{2\sigma^2}\right)基于核函数的思想,先定义原SVM模型如下:

minw,bs.t.12wTw+C∑i=1Nξi1−yi(w⋅ϕ(xi)+b)−ξi≤0−ξi≤0i=1,2,...,N\begin{aligned}
\displaystyle{\min_{w,b}} \hspace{1cm}&{1\over 2}w^Tw+C\sum_{i=1}^N\xi_i\\
s.t.\hspace{1cm}&1-y_i(w\cdot \phi(x_i) +b)-\xi_i\leq 0\\
&-\xi_i\leq0\\
&i=1,2,...,N
\end{aligned}其中ϕ(xi)\phi(x_i)是映射将原输入样本映射到希尔伯特空间的特征。

转化为对偶形式如下:;

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\begin{aligned}
\displaystyle \max_{\lambda} \hspace{1cm}&-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\lambda_i\lambda_jy_iy_j\phi^T(x_i)\phi(x_j)+\sum_{i=1}^N\lambda_i\\
s.t. \hspace{1cm}&\sum_{i=1}^N\lambda_iy_i = 0\\
&0\leq\lambda_i\leq C,\hspace{0.5cm}i=1,2,...,N
\end{aligned}最终化为带核函数形式:

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\begin{aligned}
\displaystyle \max_{\lambda} \hspace{1cm}&-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\lambda_i\lambda_jy_iy_jK(x_i,x_j)+\sum_{i=1}^N\lambda_i\\
s.t. \hspace{1cm}&\sum_{i=1}^N\lambda_iy_i = 0\\
&0\leq\lambda_i\leq C,\hspace{0.5cm}i=1,2,...,N
\end{aligned}通过观察发现,由原始的输入的内积xTixx_i^Tx,转换到映射空间的内积ϕT(xi)ϕ(xj)\phi^T(x_i)\phi(x_j),再转换为核函数形式,整个学习的过程是隐式的在特征空间(希尔伯特空间)进行的吗,而我们得到的显式的结果是用核函数显式的表达,这种技巧称为核技巧

事实上,只要是学习算法中涉及输入项的内积的函数,都可以用核函数的方法代替内积操作。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: