## 第七章 支持向量机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
\]