支持向量机(SVM)
支持向量机(Support Vecor Machine, SVM)本身是一个二元分类算法,是对感知器算法模型的一种扩展,现在的SVM算法支持线性分类和非线性分类的分类应用,并且也能够直接将SVM应用于回归应用中 。我们也可以将SVM应用在多元分类领域中。在不考虑集成学习算法,不考虑特定的数据集的时候,在分类算法中SVM可以说是特别优秀的。
- 线性可分(Linearly Separable):在数据集中,如果可以找出一个超平面,将两组数据分开,那么这个数据集叫做线性可分数据。
- 线性不可分(Linear Inseparable):在数据集中,没法找出一个超平面,能够将两组数据分开,那么这个数据集就叫做线性不可分数据。
- 分割超平面(Separating Hyperplane):将数据集分割开来的直线/平面叫做分割超平面。
- 间隔(Margin):数据点到分割超平面的距离称为间隔。
- 支持向量(Support Vector):离分割超平面最近的那些点叫做支持向量
1 相关数学知识
最优化问题一般是指对于某一个函数而言,求解在其指定作用域上的全局最小值问题,一般分为以下三种情况(备注:以下几种方式求出来的解都有可能是局部极小值,只有当函数是凸函数的时候,才可以得到全局最小值) :
-
无约束问题:求解方式一般为梯度下降法
minxf(x) \mathop{min}\limits_{x} f(x) xminf(x) -
等式约束条件:求解方式一般为拉格朗日乘子法
minxf(x)subject to:hk(x)=0,k=1,2,...,p \mathop{min}\limits_{x} f(x) \\ subject\ to: h_k(x)=0,k=1,2,...,p xminf(x)subject to:hk(x)=0,k=1,2,...,p -
不等式约束条件:求解方式一般为KKT条件
minxf(x)subject to:hk(x)=0,k=1,2,...,pgj(x)<=0,j=1,2,..,q \mathop{min}\limits_{x} f(x) \\ \begin{aligned} subject\ to: h_k(x) & =0,k=1,2,...,p \\ g_j(x) &<=0,j=1,2,..,q\\ \end{aligned} xminf(x)subject to:hk(x)gj(x)=0,k=1,2,...,p<=0,j=1,2,..,q
1.1 梯度下降法
梯度下降法(Gradient Descent, GD)常用于求解无约束情况下凸函数(Convex Function)的极小值,是一种迭代类型的算法,因为凸函数只有一个极值点,故求解出来的极小值点就是函数的最小值点 。
J(θ)=12N∑i=1N(hθ(xi)−yi)2
J(\theta)=\frac{1}{2N}\sum_{i=1}^{N}(h_{\theta}(x_{i})-y_{i})^2
J(θ)=2N1i=1∑N(hθ(xi)−yi)2
θ∗=argminθJ(θ) {\theta}^*={\arg \min}_{\theta} {J(\theta)} θ∗=argminθJ(θ)
1.2 拉格朗日乘子法
拉格朗日乘子法就是当我们的优化函数存在等值约束的情况下的一种最优化求解方式;其中参数ααα被称为拉格朗日乘子,要求ααα不等于0。
minx,yf(x,y)s.t:g(x,y)=c令L(x,y,α)=f(x,y)+α(g(x,y)−c);α≠0L(x,y,α)分别求导,令其等于0
\mathop{min}\limits_{x,y} f(x,y)
\\ s.t: g(x,y)=c
\\令 L(x,y,\alpha) = f(x,y)+\alpha(g(x,y)-c);\alpha \neq0
\\ L(x,y,\alpha)分别求导,令其等于0
x,yminf(x,y)s.t:g(x,y)=c令L(x,y,α)=f(x,y)+α(g(x,y)−c);α=0L(x,y,α)分别求导,令其等于0
上述式子转换为:
minxf(x)+∑i=1pαihi(x);αi≠0
\mathop{min}\limits_{x} f(x)+\sum_{i=1}^{p}{\alpha}_ih_i(x);{\alpha}_i\neq 0
xminf(x)+i=1∑pαihi(x);αi=0
1.3 对偶问题
在优化问题中,目标函数f(x)f(x)f(x)存在多种形式,如果目标函数和约束条件都为变量xxx的线性函数,则称问题为线性规划;如果目标函数为二次函数,则称最优化问题为二次规划;如果目标函数或者约束条件为非线性函数,则称最优化问题为非线性优化。每个线性规划问题都有一个对应的对偶问题。对偶问题具有以下几个特性:
- 对偶问题的对偶是原问题;
- 无论原始问题是否是凸的,对偶问题都是凸优化问题;
- 对偶问题可以给出原始问题的一个下界;
- 当满足一定条件的时候,原始问题和对偶问题的解是完美等价的
对偶问题的直观理解:最小的里面的那个最大的要比最大的那个里面的最小的大;从而就可以为原问题引入一个下界
1.4 KKT问题
KKT条件是泛拉格朗日乘子法的一种形式;主要应用在当我们的优化函数存在不等值约束的情况下的一种最优化求解方式;KKT条件即满足不等式约束情况下的条件 。
minxf(x)s. t.:hi(x)=0,i=1,2,...,pgj(x)≤0,j=1,2,..,q
\mathop{min}\limits_{x} f(x)
\\ \begin{aligned}
s.\ t.: h_i(x) & =0,i=1,2,...,p
\\ g_j(x) &\leq0,j=1,2,..,q\\
\end{aligned}
xminf(x)s. t.:hi(x)gj(x)=0,i=1,2,...,p≤0,j=1,2,..,q
列出 Lagrangian 得到无约束优化问题:
minxL(x,α,β)L(x,α,β)=f(x)+∑i=1pαihi(x)+∑i=1qβigi(x);αi≠0,βi⩾0
\\ \mathop{min}\limits_{x} L(x,\alpha,\beta)
\\L(x,\alpha,\beta)=f(x)+\sum_{i=1}^p\alpha_ih_i(x) + \sum_{i=1}^q \beta_ig_i(x);\alpha_i \neq0,\beta_i \geqslant 0
xminL(x,α,β)L(x,α,β)=f(x)+i=1∑pαihi(x)+i=1∑qβigi(x);αi=0,βi⩾0
经过之前的分析(算上拉格朗日乘子法处理等式约束),便得知加上不等式约束后可行解 x(局部最优解或全局最优解,可能有多个,要代原式中判断) 需要满足的就是以下的 KKT 条件:
∇xL(x,α,β)=0(1)βjgj(x)=0,j=1,2,...,q(2)hi(x)=0,i=1,2,...,p(3)gj(x)≤0,j=1,2,...,q(4)βj≥0,j=1,2,...,q(5)
\begin{aligned}
\nabla_xL(x,\alpha,\beta)&=0 && (1)
\\ \beta_jg_j(x)&=0,j=1,2,...,q && (2)
\\ h_i(x)&=0, i=1,2,...,p && (3)
\\ g_j(x) &\leq 0, j=1,2,...,q && (4)
\\ \beta_j &\geq 0,j=1,2,...,q && (5)
\end{aligned}
∇xL(x,α,β)βjgj(x)hi(x)gj(x)βj=0=0,j=1,2,...,q=0,i=1,2,...,p≤0,j=1,2,...,q≥0,j=1,2,...,q(1)(2)(3)(4)(5)
注意这边L只对xxx求偏导。满足 KKT 条件后极小化 Lagrangian 即可得到在不等式约束条件下的可行解。 KKT 条件看起来很多,其实很好理解:
- (1) :拉格朗日取得可行解的必要条件;
- (2) :这就是以上分析的一个比较有意思的约束,称作松弛互补条件;
- (3) ∼∼ (4) :初始的约束条件;
- (5) :不等式约束的 Lagrange Multiplier 需满足的条件。
- 其中利用式(1)(2)(3)求最优X∗X^*X∗和 βi\beta_iβi,然后通过式(4)和(5)验证这些解是否可行,“可行”指的是这些解是否能让(4)和(5)的不等号成立,不成立则排除。注意,αi\alpha_iαi是可以取任意值的,不受限制。因为它们是等式约束的拉格朗日乘子,不是不等式的乘子。
具体推导如下:
上图左表达的是,当我们要找的局部最优解(或者全局最优解)刚好就在约束条件的可行区域内部(这个时候最优解对应的是g(x)<0g(x)<0g(x)<0),此时约束条件就没有任何的作用,故此时我们可以让βi=0β_i=0βi=0,因为约束条件没有作用。上图右表达的就是没有约束条件下的局部最优解(或者全局最优解)在加上约束条件之后,就取不到了(不在可行域之中了),这时可行域中的局部最优解(或者全局最优解)一定会在边界g(x)=0g(x)=0g(x)=0处取到。所以无论哪种情况都会得到:βg(x)=0βg(x)=0βg(x)=0
-
可行解必须在约束区域g(x∗)g(x^*)g(x∗)之内,由图可知,可行解x∗x^*x∗只能在g(x∗)<0g(x^*)<0g(x∗)<0和g(x∗)=0g(x^*)=0g(x∗)=0的区域取得
- 当可行解x∗x^*x∗在g(x∗)<0g(x^*)<0g(x∗)<0的区域中的时候,此时令βi=0β_i=0βi=0即可消去约束,直接极小化f(x∗)f(x^*)f(x∗)即可得到
- 当可行解x∗x^*x∗在g(x∗)=0g(x^*)=0g(x∗)=0的区域中的时候,此时直接等价于等式约束问题的求解
-
对于参数βββ的取值而言,在等值约束中,约束函数和目标函数的梯度只要满足平行即可,而在不等式约束中,若β≠0β≠0β=0,则说明可行解在约束区域的边界上,这个时候可行解应该尽可能的靠近无约束情况下的解,所以在约束边界上,目标函数的负梯度方向应该远离约束区域朝无约束区域时的解,此时约束函数的梯度方向与目标函数的负梯度方向应相同,−∇xf(x)=β∇xg(x)-\nabla_xf(x)=\beta \nabla_xg(x)−∇xf(x)=β∇xg(x) ;
其实就是在这种情况下,考虑上图右约束圆圈的边界,最优点就落在,约束条件的圆心与目标函数的圆心相连直线与边界相交的那个点上。有一点需要注意的是,在无约束的拉格朗日乘子法中等式约束与目标函数的梯度是平行的,在这里其实也是平行的,但多了一个条件不仅要平行还要相反,故βββ必须>0,在等式约束中就没有这个限制。
看完这张图你可能会觉得这和我上面讲的不一样,但实际上是一样的。这一段不是在解释为什么βββ为什么一定要大于0,而是在解释当取到最优解的时候,(用我上面的话来讲就是)最优点就落在,约束条件的圆心与目标函数的圆心相连直线与边界相交的那个点上。它是在解释为什么两者是平行的(线性相关的)。其实按照我之前的理解来就好了,图中的梯度只画了一个目标函数的,容易搞混了,在红点处其实还有一个反方向的约束条件的梯度。
理论证明如下:
minxf(x)s.t:gj(x)⩽0,j=1,2,...,q
\mathop{min}\limits_{x} f(x)\\
s.t: g_j(x)\leqslant0,j=1,2,...,q \\
xminf(x)s.t:gj(x)⩽0,j=1,2,...,q
由上式原问题得到拉格朗日式子如下:
L(x,β)=f(x)+∑i=1qβigi(x);βi⩾0
L(x,\beta)=f(x)+ \sum_{i=1}^q \beta_ig_i(x);\beta_i \geqslant 0 \\
L(x,β)=f(x)+i=1∑qβigi(x);βi⩾0
证明minxf(x)=minxmaxβL(x,β)\mathop{min}\limits_{x} f(x) =\mathop{min}\limits_{x} \mathop{max}\limits_{\beta} L(x,\beta)xminf(x)=xminβmaxL(x,β):
对偶问题:minxmaxβL(x,β)=maxβminxL(x,β) =maxβ[minxf(x)+minxβg(x)] =maxβminxf(x)+maxβminxβg(x)=minxf(x)+maxβminxβg(x)∵βi⩾0,gi(x)⩽0∴minxβigi(x)={0β为0或者g(x)为0−∞β>0或者g(x)<0∴maxβminxβigi(x)=0;β=0或者g(x)=0∴minxf(x)=maxβminxL(x,β);β=0或者g(x)=0
\begin{aligned}
对偶问题:\mathop{min}\limits_{x} \mathop{max}\limits_{\beta} L(x,\beta) &= \mathop{max}\limits_{\beta}\mathop{min}\limits_{x} L(x,\beta) \\\
&= \mathop{max}\limits_{\beta} [\mathop{min}\limits_{x} f(x)+\mathop{min}\limits_{x} \beta g(x)] \\\
&= \mathop{max}\limits_{\beta} \mathop{min}\limits_{x} f(x)+ \mathop{max}\limits_{\beta} \mathop{min}\limits_{x} \beta g(x)
\\ &= \mathop{min}\limits_{x} f(x)+ \mathop{max}\limits_{\beta} \mathop{min}\limits_{x} \beta g(x)
\end{aligned}
\\ \begin{aligned}
\\ \because &\beta_i \geqslant 0, g_i(x)\leqslant0
\\ \therefore & \mathop{min}\limits_{x} \beta_i g_i(x)=
\begin{cases}
0 & \beta为0或者g(x)为0
\\ -\infty & \beta>0或者g(x)<0
\end{cases}
\\ \therefore &\mathop{max}\limits_{\beta} \mathop{min}\limits_{x} \beta_i g_i(x)=0 ;\beta=0或者g(x)=0
\\ \therefore &\mathop{min}\limits_{x}f(x)=\mathop{max}\limits_{\beta} \mathop{min}\limits_{x}L(x,\beta);\beta=0或者g(x)=0
\end{aligned}
对偶问题:xminβmaxL(x,β) =βmaxxminL(x,β)=βmax[xminf(x)+xminβg(x)]=βmaxxminf(x)+βmaxxminβg(x)=xminf(x)+βmaxxminβg(x)∵∴∴∴βi⩾0,gi(x)⩽0xminβigi(x)={0−∞β为0或者g(x)为0β>0或者g(x)<0βmaxxminβigi(x)=0;β=0或者g(x)=0xminf(x)=βmaxxminL(x,β);β=0或者g(x)=0
2 硬间隔SVM
2.1 目标函数推导
设置分割超平面为
y(x)=wTϕ(x)+b
y(x)=w^T{\phi}(x)+b
y(x)=wTϕ(x)+b
可以得到
{y(xi)>0⇔yi=+1y(xi)<0⇔yi=−1⇒yi.y(xi)>0
\left\{
\begin{aligned}
y(x_{i}) > 0 &\Leftrightarrow&y_{i}=+1 \\
y(x_{i}) < 0 &\Leftrightarrow&y_{i}=-1
\end{aligned}
\right.\Rightarrow y_{i}.y(x_{i})>0
{y(xi)>0y(xi)<0⇔⇔yi=+1yi=−1⇒yi.y(xi)>0
我们知道,SVM是使用距离进行切分的算法
-
高中数学距离公式:
dist=∣Ax0+By0+C∣A2+B2 dist=\frac{|Ax_0+By_0+C|}{\sqrt{A^2+B^2}} dist=A2+B2∣Ax0+By0+C∣ -
如果映射到更高维度,可以写成如下形式:
dist=∣f(X0)∣∣∣θ∣∣2⇔函数距离几何距离 dist=\frac{|f(X_0)|}{||\theta ||_2} \Leftrightarrow \frac{函数距离}{几何距离} dist=∣∣θ∣∣2∣f(X0)∣⇔几何距离函数距离 -
根据上面公式,对w,bw,bw,b进行缩放,可以得到:
yi.y(xi)∣∣w∣∣=yi.(wT.Φ(xi)+b)∣∣w∣∣,其中Φ(xi)表示向量[xi(1),xi(2),...,xi(m)]T,第i个样本,有m维度 \frac{y_{i}.y(x_{i})}{||w||}=\frac{y_{i}.(w^T.{\Phi}(x_{i})+b)}{||w||},其中{\Phi}(x_{i})表示向量[x_{i}^{(1)},x_{i}^{(2)},...,x_{i}^{(m)}]^T,第i个样本,有m维度 ∣∣w∣∣yi.y(xi)=∣∣w∣∣yi.(wT.Φ(xi)+b),其中Φ(xi)表示向量[xi(1),xi(2),...,xi(m)]T,第i个样本,有m维度 -
目标,找到距离分割超平面最近的样本,让它距离分割超平面距离最大(泛化性能最好)
-
目标函数为:
argmaxw,bminiyi∗(wTΦ(xi)+b)∣∣w∣∣⏟最近的样本⏟距离最远 \underbrace{ \arg \max\limits_{w,b}\underbrace{\min \limits_{i} \frac{y_{i}*(w^T\Phi(x_{i})+b)}{||w||}}_{最近的样本}}_{距离最远} \\ 距离最远argw,bmax最近的样本imin∣∣w∣∣yi∗(wTΦ(xi)+b)
即:
argmaxw,b1∣∣w∣∣miniyi∗(wTΦ(xi)+b) \arg \max\limits_{w,b} \frac{1}{||w||}{\min \limits_{i}{y_{i}*(w^T\Phi(x_{i})+b)}} argw,bmax∣∣w∣∣1iminyi∗(wTΦ(xi)+b) -
可以通过等比缩放的方法www的方法,使得正负类别点的函数值都满足|y|≥1 ,即
yi.(wT.Φ(xi)+b)⩾1 {y_{i}.(w^T.{\Phi}(x_{i})+b)}\geqslant 1 yi.(wT.Φ(xi)+b)⩾1 -
通过这个条件,我们可以将目标函数公式进行调整为:
argmaxw,b1∣∣w∣∣ \mathop{\arg \max }\limits_{w,b} \frac{1}{||w||} w,bargmax∣∣w∣∣1
-
因此公式调整为:
argmaxw,b1∣∣w∣∣s.t. yi.(wT.Φ(xi)+b)⩾1,i=1,2...,N \mathop{\arg \max }\limits_{w,b} \frac{1}{||w||} \\ s.t.\ { } {y_{i}.(w^T.{\Phi}(x_{i})+b)}\geqslant 1 , i=1,2...,N w,bargmax∣∣w∣∣1s.t. yi.(wT.Φ(xi)+b)⩾1,i=1,2...,N -
一般不方便求最大值,所以我们将求最大的目标函数修改为求最小的目标函数,为:
argminw,b∣∣w∣∣2s.t: yi.(wT.Φ(xi)+b)⩾1,i=1,2...,N \mathop{\arg \min }\limits_{w,b} {||w||}^2 \\ s.t:\ { } {y_{i}.(w^T.{\Phi}(x_{i})+b)}\geqslant 1 , i=1,2...,N w,bargmin∣∣w∣∣2s.t: yi.(wT.Φ(xi)+b)⩾1,i=1,2...,N
2.2 拉格朗日乘子法
虽然有了目标函数,到底谁是支持向量,如何计算www,这些问题还没有解决,就用到了拉格朗日乘子法。
目标函数如下:
argminw,b∣∣w∣∣2s.t. yi.(wT.Φ(xi)+b)⩾1,i=1,2...,N
\mathop{\arg \min
}\limits_{w,b} {||w||}^2 \\
s.t.\ { } {y_{i}.(w^T.{\Phi}(x_{i})+b)}\geqslant 1 , i=1,2...,N
w,bargmin∣∣w∣∣2s.t. yi.(wT.Φ(xi)+b)⩾1,i=1,2...,N
根据拉格朗日乘子法:
L(w,b,α)=12∣∣w∣∣2−∑i=1Nαi(yi(wT.Φ(xi)+b)−1)
L(w,b,\alpha)=\frac{1}{2}||w||^2-\sum_{i=1}^{N}\alpha_{i}(y_{i}(w^T.\Phi(x_{i})+b)-1)
L(w,b,α)=21∣∣w∣∣2−i=1∑Nαi(yi(wT.Φ(xi)+b)−1)
原问题是极小极大问题 :
minw,bmaxαL(w,b,α)
\mathop{ \min
}\limits_{w,b}\mathop{ \max
}\limits_{\alpha}L(w,b,\alpha)
w,bminαmaxL(w,b,α)
对偶进行转换:
maxαminw,bL(w,b,α)
\mathop{ \max
}\limits_{\alpha}\mathop{ \min
}\limits_{w,b}L(w,b,\alpha)
αmaxw,bminL(w,b,α)
将拉格朗日函数L(w,b,α)L(w,b,α)L(w,b,α)分别对w,bw,bw,b求偏导,令结果为0,得到:
L(w,b,α)=12∣∣w∣∣2−∑i=1Nαi(yi(wT.Φ(xi)+b)−1)∂L∂w=0⇒w=∑i=1NαiyiΦ(xi)∂L∂b=0⇒0=∑i=1Nαiyi
\begin{aligned}
L(w,b,\alpha)&=\frac{1}{2}||w||^2-\sum_{i =1}^{N}\alpha_{i}(y_{i}(w^T.\Phi(x_{i})+b)-1)
\\ \frac{\partial L}{\partial w}=0
&\Rightarrow
w=\sum_{i=1}^N\alpha_{i}y_{i}\Phi(x_{i})
\\ \frac{\partial L}{\partial b}=0
&\Rightarrow
0=\sum_{i=1}^N\alpha_{i}y_{i}
\end{aligned}
L(w,b,α)∂w∂L=0∂b∂L=0=21∣∣w∣∣2−i=1∑Nαi(yi(wT.Φ(xi)+b)−1)⇒w=i=1∑NαiyiΦ(xi)⇒0=i=1∑Nαiyi
将上一步的求导结果带入 L(w,b,α)L(w,b,α)L(w,b,α)得:
L(w,b,α)=12∣∣w∣∣2−∑i=1Nαi(yi(wT.Φ(xi)+b)−1)=12wTw−wT∑i=1NαiyiΦ(xi)−b∑i=1Nαiyi+∑i=1nαi=12wT∑i=1NαiyiΦ(xi)−wT∑i=1NαiyiΦ(xi)−b∗0+∑i=1Nαi=∑i=1nαi−12(∑i=1NαiyiΦ(xi))T∑i=1NαiyiΦ(xi)=∑i=1Nαi−12∑i,j=1N(αiαjyiyjΦT(xi)Φ(xj))
\begin{aligned}
L(w,b,\alpha)&=\frac{1}{2}||w||^2-\sum_{i=1}^{N}\alpha_{i}(y_{i}(w^T.\Phi(x_{i})+b)-1) \\
&= \frac{1}{2}w^Tw-w^T\sum_{i=1}^N\alpha_{i}y_{i}\Phi(x_{i})-b\sum_{i=1}^N\alpha_{i}y_{i}+\sum_{i=1}^n\alpha_{i}\\
&=\frac{1}{2}w^T\sum_{i=1}^N\alpha_{i}y_{i}\Phi(x_{i})-w^T\sum_{i=1}^N\alpha_{i}y_{i}\Phi(x_{i})-b*0+\sum_{i=1}^N\alpha_{i} \\
&=\sum_{i=1}^n\alpha_{i}-\frac{1}{2}(\sum_{i=1}^N\alpha_{i}y_{i}\Phi(x_{i}))^T\sum_{i=1}^N\alpha_{i}y_{i}\Phi(x_{i}) \\
&=\sum_{i=1}^N\alpha_{i}-\frac{1}{2}\sum_{i,j=1}^N(\alpha_{i}\alpha_{j}y_{i}y_{j}\Phi^T(x_{i})\Phi(x_{j}))
\end{aligned}
L(w,b,α)=21∣∣w∣∣2−i=1∑Nαi(yi(wT.Φ(xi)+b)−1)=21wTw−wTi=1∑NαiyiΦ(xi)−bi=1∑Nαiyi+i=1∑nαi=21wTi=1∑NαiyiΦ(xi)−wTi=1∑NαiyiΦ(xi)−b∗0+i=1∑Nαi=i=1∑nαi−21(i=1∑NαiyiΦ(xi))Ti=1∑NαiyiΦ(xi)=i=1∑Nαi−21i,j=1∑N(αiαjyiyjΦT(xi)Φ(xj))
α∗=argmaxα{∑i=1nαi−12∑i,j=1n(αiαjyiyjΦT(xi)Φ(xj))} \alpha^*=\mathop{\arg \max}\limits_{\alpha}\{\sum_{i=1}^n\alpha_i-\frac{1}{2}\sum_{i,j=1}^n(\alpha_i\alpha_jy_iy_j\Phi^T(x_i)\Phi(x_j))\} α∗=αargmax{i=1∑nαi−21i,j=1∑n(αiαjyiyjΦT(xi)Φ(xj))}
继续求公式L(w,b,α)L(w,b,α)L(w,b,α)对ααα极大 :
maxα{∑i=1nαi−12∑i,j=1n(αiαjyiyjΦT(xi)Φ(xj))}s.t. ∑i=1Nαiyi=0αi≥0,i=1,2,...,N
\mathop{\max}\limits_{\alpha}\{\sum_{i=1}^n\alpha_i-\frac{1}{2}\sum_{i,j=1}^n(\alpha_i\alpha_jy_iy_j\Phi^T(x_i)\Phi(x_j))\} \\
\begin{aligned}
s.t. \ \sum_{i=1}^N\alpha_{i}y_{i}&=0\\
\alpha_{i}& \geq 0, i=1,2,...,N
\end{aligned}
αmax{i=1∑nαi−21i,j=1∑n(αiαjyiyjΦT(xi)Φ(xj))}s.t. i=1∑Nαiyiαi=0≥0,i=1,2,...,N
整理目标函数,添加负号 :
minα{12∑i,j=1N(αiαjyiyjΦT(xi)Φ(xj))−∑i=1Nαi}s.t. ∑i=1Nαiyi=0αi≥0,i=1,2,...,N
\mathop{\min}\limits_{\alpha}\{\frac{1}{2}\sum_{i,j=1}^N(\alpha_i\alpha_jy_iy_j\Phi^T(x_i)\Phi(x_j))-\sum_{i=1}^N\alpha_{i}\} \\
\begin{aligned}
s.t. \ \sum_{i=1}^N\alpha_{i}y_{i}&=0\\
\alpha_{i}& \geq 0, i=1,2,...,N
\end{aligned}
αmin{21i,j=1∑N(αiαjyiyjΦT(xi)Φ(xj))−i=1∑Nαi}s.t. i=1∑Nαiyiαi=0≥0,i=1,2,...,N
构造一个求约束最优的问题:
minα{12∑i,j=1N(αiαjyiyjΦT(xi)Φ(xj))−∑i=1Nαi}s.t. ∑i=1Nαiyi=0αi≥0,i=1,2,...,N
\mathop{\min}\limits_{\alpha}\{\frac{1}{2}\sum_{i,j=1}^N(\alpha_i\alpha_jy_iy_j\Phi^T(x_i)\Phi(x_j))-\sum_{i=1}^N\alpha_{i}\} \\
\begin{aligned}
s.t. \ \sum_{i=1}^N\alpha_{i}y_{i}&=0\\
\alpha_{i}& \geq 0, i=1,2,...,N
\end{aligned}
αmin{21i,j=1∑N(αiαjyiyjΦT(xi)Φ(xj))−i=1∑Nαi}s.t. i=1∑Nαiyiαi=0≥0,i=1,2,...,N
求出ααα就能得出最优解。
2.3 分割超平面求解
通过上面步骤,计算:
w∗=∑i=1Nαi∗yiΦ(xi)b∗=yj−∑i=1Nαi∗yi(Φ(xi)Φ(xj))
w^*=\sum_{i=1}^N{\alpha_{i}}^*y_{i}\Phi(x_{i})\\
b^*=y_{j}-\sum_{i=1}^N{\alpha_{i}}^*y_{i}(\Phi(x_{i})\Phi(x_{j}))
w∗=i=1∑Nαi∗yiΦ(xi)b∗=yj−i=1∑Nαi∗yi(Φ(xi)Φ(xj))
求得分离超平面为:
w∗Φ(x)+b∗=0
w^*{\Phi}(x)+b^*=0
w∗Φ(x)+b∗=0
分类函数为:
f(x)=sign(w∗Φ(x)+b∗)
f(x)=sign(w^*{\Phi}(x)+b^*)
f(x)=sign(w∗Φ(x)+b∗)
2.4 案例详解
给定三个数据点:正例点x1=(3,3),x2=(4,3)x_1=(3,3),x_2=(4,3)x1=(3,3),x2=(4,3), 负例点x3=(1,1)x_3=(1,1)x3=(1,1),构造此时的约束优化条件
目标函数:
minα{12∑i=1N∑j=1N(αiαjyiyj(Φ(xi)Φ(xj))−∑i=1Nαi}=12(18α12+25α22+2α32+42α1α2−12α1α3−14α2α3)−α1−α2−α3s.t. ∑i=1Nαiyi=α1+α2−α3=0αi≥0,i=1,2,3
\begin{aligned}
&\mathop{\min}\limits_{\alpha}\{\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N(\alpha_{i}\alpha_{j}y_{i}y_{j}(\Phi(x_{i})\Phi(x_{j}))-\sum_{i=1}^N\alpha_{i}\} \\
&=\frac{1}{2}(18\alpha_{1}^2+25\alpha_{2}^2+2\alpha_{3}^2+42{\alpha_{1}}{\alpha_{2}}-12{\alpha_{1}}{\alpha_{3}}-14{\alpha_{2}}{\alpha_{3}})-\alpha_{1}-\alpha_{2}-\alpha_{3} \\
s.t. \ &\sum_{i=1}^N\alpha_{i}y_{i}=\alpha_{1}+\alpha_{2}-\alpha_{3}=0\\
&\alpha_{i}\geq 0, i=1,2,3
\end{aligned}
s.t. αmin{21i=1∑Nj=1∑N(αiαjyiyj(Φ(xi)Φ(xj))−i=1∑Nαi}=21(18α12+25α22+2α32+42α1α2−12α1α3−14α2α3)−α1−α2−α3i=1∑Nαiyi=α1+α2−α3=0αi≥0,i=1,2,3
-
将约束α1+α2=α3\alpha_{1}+\alpha_{2}=\alpha_{3}α1+α2=α3代入目标函数,进行简化计算得到关于α1\alpha_{1}α1、α2\alpha_{2}α2的目标函数
s(α1,α2)=4α12+32α22+10α1α2−2α1−2α2 s(\alpha_{1},\alpha_{2})=4\alpha_{1}^2+\frac{3}{2}\alpha_{2}^2+10\alpha_{1}\alpha_{2}-2\alpha_{1}-2\alpha_{2} s(α1,α2)=4α12+23α22+10α1α2−2α1−2α2 -
对α1\alpha_{1}α1、α2\alpha_{2}α2求偏导令其为0,联合两式可得s(α1,α2)s(\alpha_{1},\alpha_{2})s(α1,α2)在点(1.5,−1)(1.5,-1)(1.5,−1)处取极值,而该点坐标不满足均大于0的条件,所以最小值在边界上找到。
-
当α1=0\alpha_{1}=0α1=0时,代入s(α1,α2)s(\alpha_{1},\alpha_{2})s(α1,α2)关于α2\alpha_{2}α2偏导式子中得α2=132,α3=132,\alpha_{2}=\frac{13}{2},\alpha_{3}=\frac{13}{2},α2=213,α3=213,最小值s(0,132)=−213=−0.1538s(0,\frac{13}{2})=-\frac{2}{13}=-0.1538s(0,213)=−132=−0.1538
-
当α2=0\alpha_{2}=0α2=0时,代入s(α1,α2)s(\alpha_{1},\alpha_{2})s(α1,α2)关于α1\alpha_{1}α1偏导式子中得α1=14,α3=14,\alpha_{1}=\frac{1}{4},\alpha_{3}=\frac{1}{4},α1=41,α3=41,最小值s(14,0)=−14=−0.25s(\frac{1}{4},0)=-\frac{1}{4}=-0.25s(41,0)=−41=−0.25
-
明显−0.25-0.25−0.25更小,s(α1,α2)s(\alpha_{1},\alpha_{2})s(α1,α2)在α1=14,α2=0\alpha_{1}=\frac{1}{4},\alpha_{2}=0α1=41,α2=0时达到最小,此时α3=α1+α2=14\alpha_{3}=\alpha_{1}+\alpha_{2}=\frac{1}{4}α3=α1+α2=41
-
于是,α1=14,α2=0,α3=14\alpha_{1}=\frac{1}{4},\alpha_{2}=0,\alpha_{3}=\frac{1}{4}α1=41,α2=0,α3=41对应的点x1,x2x_1,x_2x1,x2是支持向量
-
代入公式
w∗=∑i=1Nαi∗yiΦ(xi)=α1y1Φ(x1)+α2y2Φ(x2)+α3y3Φ(x3)=14×1×[3;3]+0+14×(−1)×[1;1]=[0.5;0.5]b∗=yj−∑i=1Nαi∗yi(Φ(xi)Φ(xj)),j不能取αi=0时的i选j=1:b=y1−(α1y1(Φ(x1)Φ(x1))+α2y2(Φ(x2)Φ(x1))+α3y3(Φ(x3)Φ(x1)))=1−(0.25×1×3×3+0×1×4×3+0.25×(−1)×1×1)=−2选j=3时,也可得b=−2 \begin{aligned} w^*&=\sum_{i=1}^N{\alpha_{i}}^*y_{i}\Phi(x_{i})\\ &={\alpha_{1}}y_{1}\Phi(x_{1})+ {\alpha_{2}}y_{2}\Phi(x_{2})+{\alpha_{3}}y_{3}\Phi(x_{3})\\ &= \frac{1}{4} \times 1 \times [3;3] +0 +\frac{1}{4} \times (-1) \times [1;1]\\ &=[0.5;0.5]\\ \\ b^* &=y_{j}-\sum_{i=1}^N{\alpha_{i}}^*y_{i} (\Phi(x_{i})\Phi(x_{j})),j不能取\alpha_{i}=0时的i\\ 选j&=1:b=y_{1}-{(\alpha_{1}}y_{1}(\Phi(x_{1})\Phi(x_{1}))+{\alpha_{2}}y_{2}(\Phi(x_{2})\Phi(x_{1}))+{\alpha_{3}}y_{3}(\Phi(x_{3})\Phi(x_{1})))\\ &=1-(0.25 \times 1 \times 3 \times 3+0 \times 1 \times 4 \times 3+0.25 \times (-1) \times 1 \times 1)\\ &=-2\\ 选j&=3时,也可得b=-2\\ \end{aligned}\\ w∗b∗选j选j=i=1∑Nαi∗yiΦ(xi)=α1y1Φ(x1)+α2y2Φ(x2)+α3y3Φ(x3)=41×1×[3;3]+0+41×(−1)×[1;1]=[0.5;0.5]=yj−i=1∑Nαi∗yi(Φ(xi)Φ(xj)),j不能取αi=0时的i=1:b=y1−(α1y1(Φ(x1)Φ(x1))+α2y2(Φ(x2)Φ(x1))+α3y3(Φ(x3)Φ(x1)))=1−(0.25×1×3×3+0×1×4×3+0.25×(−1)×1×1)=−2=3时,也可得b=−2
得到w1=w2=0.5,b=−2w_1=w_2=0.5,b=-2w1=w2=0.5,b=−2 -
所以,分割超平面为:12x1+12x2−2=0\frac{1}{2}x_1+\frac{1}{2}x_2-2=021x1+21x2−2=0
-
分类函数为:f(x)=sign(12x1+12x2−2)f(x)=sign(\frac{1}{2}x_1+\frac{1}{2}x_2-2)f(x)=sign(21x1+21x2−2)
2.5 硬间隔SVM小结
- 要求数据必须是线性可分的;
- 纯线性可分的SVM模型对于异常数据的预测可能会不太准;
- 对于线性可分的数据,SVM分类器的效果非常不错。
3 软间隔求解
3.1 出现原因
有时候不能满足所有训练集样本点分类正确,这样会降低泛化能力
3.2 目标函数
如果数据线性不可分,加上松弛因子ξ≥0ξ≥0ξ≥0,让函数加上松弛因子大于等于1,修改后的约束条件变为:
yi.(wT.Φ(xi)+b)⩾1−ξi
{y_{i}.(w^T.{\Phi}(x_{i})+b)}\geqslant 1-ξ_{i}
yi.(wT.Φ(xi)+b)⩾1−ξi
在硬间隔SVM中本应该是在蓝线内侧没有任何的样本点的,而在软间隔SVM中,因为不是完全的线性可分,所以蓝线内侧存在有样本点,通过向每一个在蓝线内侧的样本点添加松弛变量ξiξ_{i}ξi,将这些样本点搬移到支持向量蓝线上。而本身就是在蓝线外的样本点的松弛变量则可以设为0。 于是,给每一个松弛变量赋予一个代价ξiξ_{i}ξi,我们的目标函数就变成了:
argminw,b,ξ12∣∣w∣∣2+C∑i=1Nξis.t. yi.(wT.Φ(xi)+b)⩾1−ξi,i=1,2...,Nξi⩾0,i=1,2...,N
\mathop{\arg \min
}\limits_{w,b,ξ} \frac{1}{2} {||w||}^2+C\sum_{i=1}^N ξ_{i} \\
s.t.\ { } {y_{i}.(w^T.{\Phi}(x_{i})+b)}\geqslant 1-ξ_{i} , i=1,2...,N\\
ξ_{i}\geqslant0 , i=1,2...,N
w,b,ξargmin21∣∣w∣∣2+Ci=1∑Nξis.t. yi.(wT.Φ(xi)+b)⩾1−ξi,i=1,2...,Nξi⩾0,i=1,2...,N
其中C>0C>0C>0称为惩罚参数,CCC值大的时候对误分类的惩罚增大,CCC值小的时候对误分类的惩罚减小。目标函数的两层含义: 使得12∣∣w∣∣2\frac{1}{2}||w||^221∣∣w∣∣2尽量小,即间隔尽可能大,同时使得误分类的数量尽量小,CCC是调和两者的系数,是一个超参数。
3.3 拉格朗日函数
拉格朗日函数为:
L(w,b,ξ,α,μ)=12∣∣w∣∣2+C∑i=1Nξi−∑i=1Nαi(yi.(wT.Φ(xi)+b)−1+ξi)−∑i=1Nμiξi
L(w,b,ξ,\alpha,\mu )=\frac{1}{2} {||w||}^2+C\sum_{i=1}^N ξ_{i}-\sum_{i=1}^N\alpha_{i}(y_{i}.(w^T.{\Phi}(x_{i})+b)-1+ξ_{i})-\sum_{i=1}^N\mu_{i}ξ_{i}
L(w,b,ξ,α,μ)=21∣∣w∣∣2+Ci=1∑Nξi−i=1∑Nαi(yi.(wT.Φ(xi)+b)−1+ξi)−i=1∑Nμiξi
原问题是极小极大问题:
minw,b,ξmaxα,μL(w,b,ξ,α,μ)
\mathop{\min}\limits_{w,b,ξ} \max \limits_{\alpha,\mu} L(w,b,ξ,\alpha,\mu )
w,b,ξminα,μmaxL(w,b,ξ,α,μ)
进行对偶问题转换得到:
maxα,μminw,b,ξL(w,b,ξ,α,μ)
\max \limits_{\alpha,\mu} \min \limits_{w,b,ξ} L(w,b,ξ,\alpha,\mu )
α,μmaxw,b,ξminL(w,b,ξ,α,μ)
对参数w,b,ξw,b,ξw,b,ξ分别求偏导,令其为0得到:
∂L∂w=0⇒w=∑i=1NαiyiΦ(xi)∂L∂b=0⇒0=∑i=1Nαiyi∂L∂ξ=0⇒C−αi−μi=0
\\ \frac{\partial L}{\partial w}=0
\Rightarrow
w=\sum_{i=1}^N\alpha_{i}y_{i}\Phi(x_{i})
\\ \frac{\partial L}{\partial b}=0
\Rightarrow
0=\sum_{i=1}^N\alpha_{i}y_{i}
\\ \frac{\partial L}{\partial ξ}=0
\Rightarrow
C-\alpha_{i}-\mu_{i}=0
∂w∂L=0⇒w=i=1∑NαiyiΦ(xi)∂b∂L=0⇒0=i=1∑Nαiyi∂ξ∂L=0⇒C−αi−μi=0
将三个公式带入LLL中,求得:
minw,b,ξL(w,b,ξ,α,μ)=−12∑i=1N∑j=1N(αiαjyiyj(xi∗xj)+∑i=1Nαiα∗=argmaxα{∑i=1Nαi−12∑i,j=1N(αiαjyiyjΦT(xi)Φ(xj))}
\mathop{\min}\limits_{w,b,ξ}L(w,b,ξ,\alpha,\mu )=-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N(\alpha_{i}\alpha_{j}y_{i}y_{j}(x_{i}*x_{j})+\sum_{i=1}^N\alpha_{i} \\
\alpha^*=\mathop{\arg \max}\limits_{\alpha}\{\sum_{i=1}^N\alpha_{i}-\frac{1}{2}\sum_{i,j=1}^N(\alpha_{i}\alpha_{j}y_{i}y_{j}\Phi^T(x_{i})\Phi(x_{j}))\} \\
w,b,ξminL(w,b,ξ,α,μ)=−21i=1∑Nj=1∑N(αiαjyiyj(xi∗xj)+i=1∑Nαiα∗=αargmax{i=1∑Nαi−21i,j=1∑N(αiαjyiyjΦT(xi)Φ(xj))}
对ααα求极大结果为:
argmaxα{∑i=1Nαi−12∑i,j=1N(αiαjyiyjΦT(xi)Φ(xj))}s.t. ∑i=1Nαiyi=0C−αi−μi=0αi≥0,i=1,2,...,Nμi≥0,i=1,2,...,N0≤αi≤C
\mathop{\arg \max}\limits_{\alpha}\{\sum_{i=1}^N\alpha_{i}-\frac{1}{2}\sum_{i,j=1}^N(\alpha_{i}\alpha_{j}y_{i}y_{j}\Phi^T(x_{i})\Phi(x_{j}))\} \\ \\
s.t. \ \sum_{i=1}^N\alpha_{i}y_{i}=0\\
C-\alpha_{i}-\mu_{i}=0\\
\alpha_{i} \geq 0, i=1,2,...,N\\
\mu_{i}\geq0, i=1,2,...,N\\
0\leq \alpha_{i}\leq C
αargmax{i=1∑Nαi−21i,j=1∑N(αiαjyiyjΦT(xi)Φ(xj))}s.t. i=1∑Nαiyi=0C−αi−μi=0αi≥0,i=1,2,...,Nμi≥0,i=1,2,...,N0≤αi≤C
目标函数前加负号得:
minα{12∑i,j=1N(αiαjyiyjΦT(xi)Φ(xj))−∑i=1Nαi}s.t. ∑i=1Nαiyi=00≤αi≤C,i=1,2,...,N
\mathop{\min}\limits_{\alpha}\{\frac{1}{2}\sum_{i,j=1}^N(\alpha_{i}\alpha_{j}y_{i}y_{j}\Phi^T(x_{i})\Phi(x_{j}))-\sum_{i=1}^N\alpha_{i}\} \\
s.t. \ \sum_{i=1}^N\alpha_{i}y_{i}=0\\
0\leq \alpha_{i}\leq C , i=1,2,...,N\\
αmin{21i,j=1∑N(αiαjyiyjΦT(xi)Φ(xj))−i=1∑Nαi}s.t. i=1∑Nαiyi=00≤αi≤C,i=1,2,...,N
构造优化求解问题:
minα{12∑i,j=1N(αiαjyiyjΦT(xi)Φ(xj))−∑i=1Nαi}s.t. ∑i=1Nαiyi=00≤αi≤C,i=1,2,...,N
\mathop{\min}\limits_{\alpha}\{\frac{1}{2}\sum_{i,j=1}^N(\alpha_{i}\alpha_{j}y_{i}y_{j}\Phi^T(x_{i})\Phi(x_{j}))-\sum_{i=1}^N\alpha_{i}\} \\
s.t. \ \sum_{i=1}^N\alpha_{i}y_{i}=0\\
0\leq \alpha_{i}\leq C , i=1,2,...,N\\
αmin{21i,j=1∑N(αiαjyiyjΦT(xi)Φ(xj))−i=1∑Nαi}s.t. i=1∑Nαiyi=00≤αi≤C,i=1,2,...,N
求得最优解ααα ,不难发现软间隔SVM只是在对拉格朗日乘子 αi\alpha_{i}αi的约束上加上了一个上界CCC。