支持向量机

1. SVM描述 

$f(x)$满足间隔最大化要求。与$f(x)$相对应的直线$\omega^Tx+b=-1$和$\omega^Tx+b=1$之间的间隔为$\frac{2}{||\omega||}$。显然,只有直线$\omega^Tx+b=-1$和$\omega^Tx+b=1$上分布的样本点对选取决策面(此时为一直线)有帮助,因此这些点对应的向量称之为支持向量(support vector)。对应最大化间隔模型称为支持向量机(SVM:Support Vector Machine)

 

SVM问题描述如下:

\begin{cases} \min_{\omega,b}\frac{1}{2}\omega^T\omega&\text{最大化间隔}\\ s.t. y^{(n)}(\omega^Tx^{(n)}+b) \geq 1&n=1,2...N  & \text{对所有点有效} \end{cases}

其中$y_i=\pm1$,代表两类不同的点。

 2. 拉格朗日乘子法

 

2.1 等式约束的优化问题

以两个变量为例:

求函数$z=f(x,y)$在满足$\varphi(x,y)=0$条件下的极值,可以转化为函数$F(x,y,\lambda)=f(x,y)+\lambda\varphi(x,y)$的无条件极值问题,其中λ为参数。

令$F(x,y,\lambda)$对$x$和$y$和$\lambda$的一阶偏导数等于零,即
$$F'_x=ƒ'_x(x,y)+\lambda\varphi'_x(x,y)=0$$
$$F'_y=ƒ'_y(x,y)+\lambda\varphi'_y(x,y)=0$$
$$F'_{\lambda}=\varphi(x,y)=0$$
由上述方程组解出$x$,$y$及$\lambda$,如此求得的$(x,y)$,就是函数$z=ƒ(x,y)$在条件$\varphi(x,y)=0$下的可能极值点。

d个变量同理

2.2 不等式约束的优化问题

\begin{aligned} &min&&f(X)\\ &s.t.&&\begin{cases}h_j(X)=0&j=1,2,...p\\g_k(X)\leq0&k=1,2,...q\end{cases}\end{aligned}

定义不等式约束下的拉格朗日函数

$$L(X,\lambda,\mu)=f(X)+\sum_{j=1}^p\lambda_jh_j(X)+\sum_{k=1}^q\mu_kg_k(X)$$

满足 KKT 条件后极小化 Lagrangian 即可得到在不等式约束条件下的可行解:

\begin{cases}\nabla_XL=0\\h_j(X)=0\\g_k(X)\leq0\\\mu_k\geq 0\\ \mu_kg_k(X)=0\end{cases}

 

2.3 SVM的拉格朗日函数

回顾SVM公式:
\begin{cases} \min_{\omega,b}\frac{1}{2}\omega^T\omega&\text{最大化间隔}\\ s.t. y^{(n)}(\omega^Tx^{(n)}+b) \geq 1&n=1,2...N  & \text{对所有点有效} \end{cases}

代入不等式约束的优化问题:

\begin{aligned}\\&f(\omega,b)=\frac{1}{2}||\omega||^2\\&h(\omega,b)=0\\&g(\omega,b)=1-y^{(n)}(\omega^Tx^{(n)}+b)&n=1,2...N\end{aligned}

则:

$$L(\omega,b,\alpha)=\frac{1}{2}||\omega||^2+\sum_{i=1}^N\alpha_i(1-y_i(\omega^Tx_i+b))$$ 

其中$\alpha_i$为拉格朗日乘子,且$\alpha_i\geq0$

 

3. 拉格朗日对偶问题

3.1 拉格朗日

广义拉格朗日函数:

$$L(X,\lambda,\mu)=f(X)+\sum_{j=1}^p\lambda_jh_j(X)+\sum_{k=1}^q\mu_kg_k(X)$$

考虑如下式子:

$$\theta_P(X)= \max_{\mu,\lambda; \mu_k\geq0}L(X,\lambda,\mu) $$

其中“P”是“primal(最初问题)”的意思

$$\theta_P(X)=\begin{cases}f(X)&如果X满足最初限定条件\\\infty&否则\end{cases}$$

 

 $\theta_P(X)$的值等于满足最初限定条件$(g(X)\leq0  h(x)=0)$时f(X)的值,问题转化为求使$\theta_P(X)$最小的各变量,此问题定义为$p^*$:

 $$p^*=\min_{X}\max_{\mu,\lambda; \mu_k\geq0}L(X,\lambda,\mu)$$

 

3.2 对偶优化问题 

$$\theta_D(\lambda,\mu)=\min_{X}L(X,\lambda,\mu)$$

其中D是“dual(对偶)”的意思,$\theta_D(X)$是基于$X$求极小值,而$\theta_P(X)$是基于$\lambda$和$\mu$求极大值,则对偶优化问题定义为$d^*$如下:

$$d^*=\max_{\mu,\lambda; \mu_k \geq0}\min_{X}L(X,\lambda,\mu)$$

如果我们能够想办法证明(3.14)和(3.13)存在相同的解$X^*,\lambda^*,\mu^*$,那我们就可以在对偶问题中选择比较简单的一个来求解。

 

3.3对偶问题同解的证明

 定理一:对于任意$X,\lambda,\mu$,有$d^*\leq p^*$

$$\theta_D(\lambda,\mu)=\min_{X}L(X,\lambda,\mu)\leq L(X,\lambda,\mu)\leq\max_{\mu,\lambda; \mu_k\geq 0}L(X,\lambda,\mu)=\theta_P(X)$$

故$d^*\leq p^*$

推论:如果能够找到一组$X^*,\lambda^*,\mu^*$使得$\theta_D(\lambda^*,\mu^*)=\theta_P(X^*)$,则有:

$\theta_D(\lambda^*,\mu^*)=d^*$、$\theta_P(X^*)=p^*$、$d^*=p^*$

这个推论实际上已经涉及了原始问题与对偶问题的“强对偶性”。

当$d^*\leq p^*$时,我们称原始问题与对偶问题之间“弱对偶性”成立;若$d^*=p^*$,则称“强对偶性”成立。

 

定理二:对于原始问题和对偶问题,假设函数$f(x)$和不等式约束条件$g(x)$为凸函数,等式约束条件中的$h(x)$为仿射函数(即由一阶多项式构成的函数);并且至少存在一个$X$使所有不等式约束条件严格成立,则存在$X^*,\lambda^*,\mu^*$使得$X^*$是原始问题的最优解,$\lambda^*,\mu^*$是对偶问题的最优解且有:$d^*=p^*=L(X,\lambda,\mu)$

 

在强对偶性成立时,将拉格朗日函数分别对元变量和对偶变量求导,再同时令导数等于0,即可得到原变量与对偶变量的数值关系。
于是对偶问题解决了,主问题也就解决了。

 

3.4 SVM的对偶问题求解

回顾SVM的拉格朗日函数 

$$L(\omega,b,\alpha)=\frac{1}{2}||\omega||^2+\sum_{i=1}^N\alpha_i(1-y_i(\omega^Tx_i+b))$$ 

发现满足强对偶性

分别对$\omega$和$b$求偏导,有偏导为0,可得:

\begin{aligned}\omega&=\sum_{i=1}^N\alpha_iy_ix_i\\0&=\sum_{i=1}^N\alpha_iy_i\end{aligned}

 

将以上两式带回$L(\omega,b,\alpha)$,化简得:

$$\max[L(\omega,b,\alpha)=\sum_{i=1}^N\alpha_i-\frac{1}{2}\sum_{i,j=1}^N\alpha_i\alpha_jx_i^Tx_jy_iy_j]$$

$s.t.\sum_{i=1}^N\alpha_iy_i=0且\alpha_i\geq0$

此时为一个完全的凸二次规划问题,可以用各种软件包求解(但是很慢),一般用SMO算法求解。

 

4. SMO优化方法

算法流程:

  1. 选取一对参数$(\alpha_i,\alpha_j)$
  2. 固定$\alpha$向量的其他参数,将$\alpha_i,\alpha_j$代入KKT和约束表达式进行求最优解获得更新后的$\alpha_i,\alpha_j$

不断执行这两个步骤直至收敛

因为有约束$\sum_{i=1}^N\alpha_iy_i$存在,有$\alpha_iy_i+\alpha_jy_j=C$(C为常数)

 

那么我们如何选取α呢?我们怎么知道哪一个α需要优化呢?

我们只要选择违反KKT条件的点,使其符合KKT条件,那么就自然而然可以得到更优解。优化的α违背KKT条件越大,此次优化效果越明显。

所以第一个要选择的α是违反KKT条件的点,而第二个α是与第一个点距离最大的点,因为我们发现一次更新两个不同向量比相似向量的效果好。

收敛后,我们就可以得到所有的α的值。把所有α代进去,就可以得到w的解,接着可以得到b的解。

 

5. 松弛变量与软间隔

 硬间隔支持向量机要求所有的样本均被最佳超平面正确划分,而软间隔支持向量机允许某些样本点不满足间隔大于等于1的条件。当然在最大化间隔的时候也要限制不满足间隔大于等于1的样本的个数使之尽可能的少。于是我们引入一个惩罚系数C,并对每个样本点引入一个松弛变量$\xi_i$

 

通过计算,我们的优化目标依然保持不变,但是新的约束条件变为

 

 

 

 

参考文献:

https://zhuanlan.zhihu.com/p/35755150

https://zhuanlan.zhihu.com/p/24638007

https://zhuanlan.zhihu.com/p/57648645

https://blog.csdn.net/qq_39482438/article/details/106908049

 

posted @ 2020-09-26 19:26  SiriusRen  阅读(191)  评论(0编辑  收藏  举报