第七章 SVM

## 第七章 支持向量机SVM

支持向量机分为

  • 线性可分支持向量机-硬间隔
  • 线性支持向量机-软间隔
  • 非线性支持向量机-核技巧,软间隔

线性可分支持向量机,硬间隔最大化

给定线性可分数据集,通过间隔最大化,或者求解凸二次规划问题,得到分离超平面为

\[\omega ^*x+b^*=0 \]

对应的决策函数为

\[f(x) = sign(\omega ^*x+b^*) \]

函数间隔和几何间隔

确定超平面\(\omega x+b=0\) 之后,对于样本(x,y),\(|\omega x+b|\)可以相应表示点x距离超平面的远近,也就是确信度,通过比较\(\omega x+b\)与y的符号,可以表示正确性

\[\hat{\gamma}_i = y_i(\omega x_i+b)\\ \hat{\gamma} = min_{i=1\cdots,N} \hat{\gamma}_i \]

定义为函数间隔

\(\omega, b\)可以成比例放缩,并且不改变超平面,只改变函数间隔,所以规范\(||\omega||=1\) ,这样函数间隔就是几何间隔

几何间隔定义是

\[ \gamma_i=y_i(\frac{\omega}{||\omega||}\cdot x_i+\frac{b}{||\omega||}) \\ \gamma = min_{i=1,\cdots ,N}\gamma_i \]

间隔最大化

\[max_{\omega,b} \, \gamma\\ s.t. \, y_i(\frac{\omega}{||\omega ||}\cdot x_i+\frac{b}{||\omega||})\geq \gamma,i=1,\cdots,N \]

\[max_{\omega,b} \, \frac{\hat{\gamma}}{||\omega||}\\ s.t. \, y_i({\omega}\cdot x_i+{b})\geq \hat{\gamma},i=1,\cdots,N \]

函数间隔\(\hat{\gamma}\)不影响最优化问题的解,让\(\hat{\gamma}=1\)代入上面的最优化问题,最大化\(\frac{1}{||\omega||}\)和最优化\(\frac{1}{2}||\omega||^2\)等价

得到下面的线性可分支持向量机学习的最优化问题

\[min_{\omega,b} \frac{1}{2}||\omega||^2 \\ s.t. y_i(\omega\cdot x_i +b)-1\geq =0,i=1,\cdots,N \]

凸二次规划问题

\[\begin{align*} min_{w} &\ f(w)\\ s.t.&\ g_i(w)\leq 0,i=1,2,,\cdots,k\\ &\ h_i(\omega)=0,i=1,2,\cdots,l \end{align*} \]

线性可分支持向量机学习算法--最大间隔法

输入:线性可分训练数据集\(T={(x_1,y_1),\cdots, (X_N,y_N)}\)

输出:最大间隔分离超平面和分类决策函数

构造并求解最优化问题

\[min_{\omega,b} \frac{1}{2}||\omega||^2 \\ s.t. y_i(\omega\cdot x_i +b)-1\geq 0,i=1,\cdots,N \]

最大间隔分离超平面存在唯一性

学习的对偶解法

构建拉格朗日函数

\[L(w,b,\alpha) = \frac{1}{2}||w||^2 +\alpha \sum_{i=1}^N[1- y_i(w\cdot x_i +b)] \]

原问题的无约束问题

\[\underset{w,b}{min}\underset{\alpha}{max}L(w,b,\alpha) \]

原问题的对偶问题

\[\underset{\alpha}{max}\underset{w,b}{min}L(w,b,\alpha) \]

\[\nabla_wL(w,b,\alpha) = w-\sum_{i=1}^{N}\alpha_iy_ix_i = 0\\ \nabla_bL(w,b,\alpha) = -\sum_{i=1}^{N}\alpha_iy_i =0 \\解\\ w=\sum_{i=1}^{N}\alpha_iy_ix_i\\ \sum_{i=1}^{N}\alpha_iy_i =0(1)\\ 代入拉格朗日函数,使用(1) \\L(q,b,\alpha) = -\frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_i\alpha_jy_iy_j(x_i\cdot x_j) +\sum_{i=1}^{N}\alpha_i = \underset{w,b}{min}L(w,b,\alpha) \]

\(\underset{w,b}{min}L(w,b,\alpha)\)关于\(\alpha\)的极大值

\[\begin{align*} &\underset{\alpha}{max}\ -\frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_i\alpha_jy_iy_j(x_i\cdot x_j)+\sum_{i=1}^{N}\alpha_i\\ &s.t. \ \sum_{i=1}^{N}\alpha_uy_i = 0\\ &\alpha\ge 0,i=1,\cdots,N \end{align*} \]

转化成求极小值

\[\begin{align*} &\underset{\alpha}{min}\ \frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_i\alpha_jy_iy_j(x_i\cdot x_j)+\sum_{i=1}^{N}\alpha_i\\ &s.t. \ \sum_{i=1}^{N}\alpha_uy_i = 0\\ &\alpha\ge 0,i=1,\cdots,N \end{align*} \]

求得极小值的解\(\alpha^*\),存在下标j使得\(\alpha_j^*\gt 0\),并且求得原始最优化问题的解\(w^*,b^*\)

\[w^* = \sum_{i=1}^{N}\alpha_i^*y_ix_i\\ 选择\alpha^*的一个正分量\alpha_j^*>0,\\ b^* = y_i-\sum_{i=1}^{N}\alpha_iy_i(x_i\cdot x_j) \]

线性支持向量机与软间隔最大化

线性不可分,意味着一些点不可能满足函数间隔大于等于1的约束条件,引入松弛变量\(\xi_i \ge 0\),约束条件变成

\[y_i(w_i\cdot x_i +b)\ge 1-\xi_i \]

我们需要对松弛变量支付代价,目标函数变成

\[\frac{1}{2}||w||^2 + C\sum_{i=1}^{N}\xi_i \]

\[min_{\omega,b,\xi} \frac{1}{2}||\omega||^2 +C\sum_{i=1}^{N}\xi_i\\ s.t. y_i(\omega\cdot x_i +b)\geq 1-\xi_i,i=1,\cdots,N\\ \xi_i \ge 0,i=1,\cdots,N \]

最优化问题的拉格朗日函数是

\[L(w,b,\xi,\alpha,\mu) =\frac{1}{2}||w||^2 + C\sum_{i=1}^{N}\xi_i -\sum_{i=1}^{N}\alpha_i(y_i(w\cdot x_i+b)-1+\xi_i)-\sum_{i=1}^{N}\mu_i\xi_i\,(2)\\ \alpha_i\ge 0,\mu_i\ge 0 \]

\[\nabla_w L = w-\sum_{i=1}^N\alpha_ix_iy_i = 0\\ \nabla_b L = -\sum_{i=1}^{N}\alpha_iy_i = 0\\ \nabla_{\xi_i}L = C-\alpha_i-\mu_i =0\\ so\\ w=\sum_{i=1}^N\alpha_ix_iy_i\\ \sum_{i=1}^{N}\alpha_iy_i = 0\\ C-\alpha_i-\mu_i =0 \]

代入2有

\[\underset{w,b,\xi}{min}L = -\frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_i\alpha_jy_iy_j(x_i\cdot x_j) +\sum_{i=1}^{N}\alpha_i \]

\[\underset{\alpha}{max} -\frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_i\alpha_jy_iy_j(x_i\cdot x_j) +\sum_{i=1}^{N}\alpha_i\\ s.t. \sum_{i=1}^{N}\alpha_iy_i = 0\\ C-\alpha_i-\mu_i = 0(a)\\ \alpha_i\ge 0(b)\\ \mu_i\ge 0(c),i=1,\cdots,N \]

\[(a)(b)(c)\to 0\le \alpha_i\le C \]

所以原问题的对偶问题是

\[\underset{\alpha}{max} -\frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_i\alpha_jy_iy_j(x_i\cdot x_j) +\sum_{i=1}^{N}\alpha_i\\ s.t. \sum_{i=1}^{N}\alpha_iy_i = 0\\ 0\le \alpha_i\le C \\ \]

\[\alpha^*= (\alpha_1^*,\cdots, \alpha_N^*)是对偶问题的一个最优解,0<\alpha_j^*<C\\ 原始问题的解\\ w^* = \sum_{i=1}^{N}\alpha_i^*y_ix_i\\ b^* = y_i-\sum_{i=1}^{N}y_i\alpha_i^*(x_i \cdot x_j) \]

线性支持向量机等价于最小化

\[\sum_{i=1}^{N}[1-y_i(w\cdot x_i+b)]_+ +\lambda ||w||^2\\ \]

核技巧

存在超曲面将非线性模型很好的进行分类的问题,

核函数的定义

\[X 是输入空间(欧式空间R^n的子集或离散集合),又设H为特征空间(希尔伯特空间),如果存在一个从X\to H 的映射\\ \phi(x):X\to H \\使得对于所有的x,z\in X,函数K(x,z)满足条件\\ K(x,z) = \phi(x)\cdot \phi(z)\\ K(x,z)是核函数\phi(x)是映射函数 \]

对偶函数的目标函数为

\[W(\alpha) = \frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_i\alpha_jy_iy_jK(x_i,x_j)-\sum_{i=1}^{N}\alpha_i \]

分类决策函数是

\[\begin{align*} f(x) =& sign(\sum_{i=1}^{N_s}a_i^*y_i\phi(x_i)\cdot \phi (x)+b^*)\\ =&sign(\sum_{i=1}^{N_s}a_i^*y_iK(x_i,x)+b^*) \end{align*} \]

正定核

\[K(x,z)是定义在X\times X 上的对称,函数,如果,对于任意x_i\in X ,i=1,\cdots,M,K(x,z)对应的Gram矩阵\\ K=[K(x_i,x_j)_{m\times m}]\\ 是半正定矩阵,则称K(x,z)是正定核 \]

常用核函数

1.多项式核函数

\(K(x,z) = (x\cdot z +1)^P\)

2.高斯核函数

\(K(x,z)=exp(-\frac{||x-z||^2}{2\sigma^2})\)

SMO

\[\underset{\alpha}{min} \, \frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_i\alpha_jy_iy_jK(x_i,x_j)-\sum_{i=1}^{N}\alpha_i\\ s.t. \, \sum_{i=1}^{N}\alpha_iy_i=0\\ 0\le \alpha_i\le C,i=1,\cdots,N \]

基本思路

如果所有变量都满足KKT 条件,那么最优化问题的解就找到了

否则,选择两个变量,固定其他变量,求解二次规划问题,因为这会让原问题的函数值变小,所以变量的解就会接近原问题的最优解

选择的两个变量,一个是违反KKT条件最严重的的一个,一个是根据约束条件确定的。

SMO算法的两个部分,选择变量的启发式算法,和两个变量的二次规划的解析方法

两个变量的二次规划求解方法

\[\underset{\alpha_1,\alpha_2}{min} \, W(\alpha_1,\alpha_2) = \frac{1}{2}K_{11}\alpha_1^2 +\frac{1}{2}K_{22}\alpha_2^2+y_1y_2K_{12}\alpha_1\alpha_2-(\alpha_1+\alpha_2) + y_1\alpha_1\sum_{i=3}^{N}y_i\alpha_iK_{i1} +y_2\alpha_2\sum_{i=3}^{N}y_i\alpha_iK_{i2} \\ s.t. \alpha_1y_1+\alpha_2y_2 = -\sum_{i=3}^{N}y_i\alpha_i = \zeta\\ 0\le \alpha_i\le C,i=12\underset{\alpha_1,\alpha_2}{min} \, W(\alpha_1,\alpha_2) = \frac{1}{2}K_{11}\alpha_1^2 +\frac{1}{2}K_{22}\alpha_2^2+y_1y_2K_{12}\alpha_1\alpha_2-(\alpha_1+\alpha_2) + y_1\alpha_1\sum_{i=3}^{N}y_i\alpha_iK_{i1} +y_2\alpha_2\sum_{i=3}^{N}y_i\alpha_iK_{i2} \\ s.t. \alpha_1y_1+\alpha_2y_2 = -\sum_{i=3}^{N}y_i\alpha_i = \zeta\\ 0\le \alpha_i\le C,i=1,2 \]

posted @ 2020-09-23 10:24  木子士心王大可  阅读(154)  评论(0)    收藏  举报