一.硬间隔支持向量机
假设给定一个特征空间上的训练数据集
\[T=\{(x_1,y_1),(x_2,y_2)\cdots,(x_n,y_n)\}
\]
其中,\(x_i \in R^n , y_i \in \{ +1,-1 \} , i=1,2, \cdots, N\)。\(x_i\)为第i个特征向量,\(y_i\)为\(x_i\)的类标记,当\(y_i=+1\)时,称\(x_i\)正例;当\(y_i=-1\)时,称\(x_i\)为负例。再假设样本时线性可分的。
学习的目标是在特征空间找到一个分离超平面,能将实例分到不同的类。分离超平面对应于方程\(w \cdot x + b= 0\),可用(w,b)来表示。分离超平面将特征空间划分为两部分,一部分是正类,一部分是负类。
一般地,当训练数据集线性可分时,存在无穷多个分离超平面可将两类数据正确分开。线性可分支持向量机利用间隔最大化求最优分离超平面,这时,解是唯一的。
1.函数间隔和几何间隔
一般来说,一个点距离分离超平面的远近可以表示分类预测的确信度。在超平面\(w \cdot x + b= 0\)确定的情况下,\(|w \cdot x + b|\)能够相对的表示点x距离超平面的远近。而\(w \cdot x + b\)的符号与类标记y的符号是否一致能够表示分类是否正确。所以可用量\(y(w \cdot x + b)\)来表示分类的正确性及确信度,这就是函数间隔的概念。
函数间隔
对于给定的训练数据集T和超平面(w,b),定义超平面(w,b)关于样本点\((x_i,y_i)\)的函数间隔为
\[\hat{\gamma_i} = y_i(w \cdot x_i + b) \tag{1}
\]
定义超平面关于样本数据集T的函数间隔为超平面(w,b)关于所有样本点\((x_i,y_i)\)的函数间隔之最小值,即
\[\hat{\gamma}= \min_{i=1,\cdots,N}\hat{\gamma_i}
\tag{2}
\]
函数间隔可以表示分类预测的正确性及确信度。但是选择分离超平面时,只有函数间隔还不够。因为只要成比例的改变w和b,超平面并没有改变,但是函数间隔却发生变化。这一事实启示我们,可以对分离超平面的法向量w加一些约束,如规范化,||w||=1,使得间隔是确定的。这时函数间隔变为几何间隔。
几何间隔
对于给定的训练数据集T和超平面(w,b),定义超平面关于样本点\((x_i,y_i)\)的几何间隔为
\[\gamma_i = y_i(\frac{w}{||w||} \cdot x_i + \frac{b}{||w||})
\tag{3}
\]
定义超平面(w,b)关于训练数据集T的几何间隔为超平面(w,b)关于T中所有样本点\((x_i,y_i)\)的几何间隔之最小值,即
\[\gamma = \min_{i=1,\cdots,N}\gamma_i
\tag{4}
\]
2.间隔最大化
支持向量机学习的基本想法是求解能够确定划分训练数据集并且几何间隔最大的分离超平面。对线性可分的训练数据集而言,线性可分分离超平面有无穷多个,但是几何间隔最大的分离超平面时唯一的。
求得一个几何间隔最大的分离超平面可以表示为 下面的约束最优化问题:
\[\max_{w,b} \gamma \tag{5}
\]
\[s.t. \quad y_i(\frac{w}{||w||} \cdot x_i + \frac{b}{||w||}) \geq \gamma ,
\quad i=1,2,\cdots,N
\tag{6}
\]
考虑几何间隔和函数间隔的关系,可将上式改写为
\[\max_{w,b} \frac {\hat { \gamma}}{||w||} \tag{7}
\]
\[s.t. \quad y_i(w \cdot x_i +b) \geq \hat{\gamma} ,
\quad i=1,2,\cdots,N
\tag{8}
\]
函数间隔的改变对上面的最优化问题的不等式约束没有影响,对目标函数的优化也没有影响,也就是说,它产生一个等价的最优化问题。这样就可以取\(\hat{\gamma}=1\)。注意到最大化\(1 \over {||w||}\) 和最小化 \(\frac{1}{2} {||w||}^2\)是等价的。于是就得到了下面的线性可分支持向量机学习的优化问题
\[\min _{a,b} \frac{1}{2} {||w||}^2 \tag{9}
\]
\[s.t. \quad y_i(w \cdot x_i +b) -1 \geq 0 \quad i=1,2,\cdots,N
\tag{10}
\]
3.对偶问题
对每个不等式(10)引入拉格朗日乘子\(a_i \geq 0 , \quad i=1,\cdots,N\),定义拉格朗日函数:
\[L(w,b,a)=\frac{1}{2} {||w||}^2 + \sum_{i=1}^{N}a_i - \sum_{i=1}^{N}a_i y_i(w\cdot x_i +b)
\tag{11}
\]
其中,\(a=(a_1,a_2,\cdots,a_N)^T\)为拉格朗日乘子向量。
根据拉格朗日对偶性,原始问题的对偶问题是极大极小问题
\[\max_a \min_{w,b} L(w,b,a)
\]
所以,为了得到对偶问题的解,需要先求L(w,b,a)对w,b的极小值,再求对a的极大值。
(1)求 $ \min_{w,b} L(w,b,a)$
将拉格朗日函数L(w,b,a)分别对w,b求偏导数并令其等于0.
\[\nabla_wL(w,b,a) =w-\sum_{i=1}^{N}a_i y_i x_i=0 \\
\nabla_bL(w,b,a) =-\sum_{i=1}^Na_i y_i=0
\]
得:
\[w=\sum_{i=1}^{N}a_i y_i x_i \tag{12}
\]
\[\sum_{i=1}^Na_i y_i=0 \tag{13}
\]
将式(12)、(13)代入式(11)得
\[\begin{eqnarray}
L(w,b,a) &=& \frac12 \sum_{i=1}^{N}\sum_{j=1}^{N} a_ia_j y_iy_j(x_i\cdot x_j) +\sum_{i=1}^N a_i -\sum_{i=1}^{N}a_iy_i(\sum_{j=1}^N a_jy_j(x_j\cdot x_i)+b) \\
&= & - \frac{1}{2} \sum_{i=1}^{N}\sum_{j=1}^{N} a_ia_j y_iy_j(x_i\cdot x_j) +\sum_{i=1}^N a_i
\end{eqnarray}
\]
即
\[\min_{w,b}L(w,b,a)=- \frac{1}{2} \sum_{i=1}^{N}\sum_{j=1}^{N} a_ia_j y_iy_j(x_i\cdot x_j) +\sum_{i=1}^N a_i
\]
(2)求 $ \min_{w,b} L(w,b,a)$对a的极大值,即是对偶问题
\[\begin{eqnarray}
&&\max_a - \frac{1}{2} \sum_{i=1}^{N}\sum_{j=1}^{N} a_ia_j y_iy_j(x_i\cdot x_j) +\sum_{i=1}^N a_i \\
&&s.t. \quad \sum_{i=1}^{N}a_iy_i=0 \\
&&a_i \geq 0 \quad i=1,2,\cdots,N
\end{eqnarray}
\]
上式等价为:
\[\begin{eqnarray}
&&\min_a \frac{1}{2} \sum_{i=1}^{N}\sum_{j=1}^{N} a_ia_j y_iy_j(x_i\cdot x_j) -\sum_{i=1}^N a_i \tag{14} \\
&&s.t. \quad \sum_{i=1}^{N}a_iy_i=0 \\
&&a_i \geq 0 \quad i=1,2,\cdots,N
\end{eqnarray}
\]
对上式求得最优解\(a\).
式(9)、(10)求解时有不等式约束,需满足KKT条件
\[a_i \geq 0 \\
y_i(w \cdot x_i +b) -1 \geq 0 \\
a_i(y_i(w \cdot x_i +b) -1)=0
\]
所以
\[w=\sum_{j=1}^{N}a_j y_j x_j \tag{15}
\]
至少有一个\(a_i >0\),此时$ y_i(w \cdot x_i +b) -1=0$,得
\[b=y_i-\sum_{j=1}^N a_j y_j (x_j \cdot x_i) \tag{16}
\]
可知,w和b只依赖与训练数据中对应与\(a_i>0\)的样本点,而其他样本点对w和b没有影响,我们将训练数据中对应与\(a_i>0\)的样本点称为支持向量。
二.软间隔支持向量机
硬间隔支持向量机对线性不可分训练数据时不适用的,因为上述不等式约束不能都成立,即意味着某些样本点\((x_i,y_i)\)不能满足函数间隔大于等于1的约束条件。为了解决这个问题,可以对每个样本点\((x_i,y_i)\)引进一个松弛变量\(\xi_i \geq 0\),使函数间隔加上松弛变量大于等于1,这样约束条件变为
\[y_i(w \cdot x_i +b) \geq 1-\xi_i
\]
目标函数由原来的\(\frac12 ||w||^2\)变成
\[\frac12 ||w||^2 + C\sum_{i=1}^N \xi_i
\]
这里,\(C>0\)称为惩罚参数,C值大时对误分类的惩罚增大,C值小时对误分类的惩罚减小。最小化目标函数包含两层含义:使\(\frac12 ||w||^2\)尽量小间隔尽量大,同时使误分类点的个数尽可能小,C是调和二者的系数。
软间隔支持向量机原始问题为:
\[\begin{eqnarray}
&&\min_{w,b,\xi} \frac{1}{2} ||w||^2 +C\sum_{i=1}^N \xi_i \tag{17} \\
&&s.t. \quad y_i(w \cdot x_i +b) \geq 1- \xi_i ,i=1,\cdots,N \\
&&\qquad \xi_i \geq 0 , i,2,\cdots,N
\end{eqnarray}
\]
1.对偶问题
原始问题的拉格朗日函数为
\[L(w,b,\xi,a,\mu)=\frac{1}{2} ||w||^2 + C\sum_{i=1}^{N}\xi_i - \sum_{i=1}^N a_i(y_i(w \cdot x_i +b)+\xi_i - 1) -\sum_{i=1}^N \mu_i \xi_i \tag{18}
\]
其中\(a_i \geq 0, \mu_i \geq 0\)。
先求L对\(w,b,\xi_i\)的极小。
\[\begin{eqnarray}
\nabla_wL &=& w-\sum_{i=1}^Na_iy_ix_i=0 \tag{19} \\
\nabla_bL &=& \sum_{i=1}^Na_iy_i=0 \tag{20} \\
\nabla_{\xi_i} L &=& C-a_i -\mu_i=0 \tag{21}
\end{eqnarray}
\]
将式(19)(20)(21),代入(18),得
\[\min_{w,b,\xi_i}L=-\frac{1}{2} \sum_{i=1}^{N}\sum_{j=1}^{N} a_ia_j y_iy_j(x_i\cdot x_j)+\sum_{i=1}^N{a_i}
\tag{22}
\]
再对\(\min_{w,b,\xi_i}L\)求a的最大值
\[\begin{eqnarray}
&&\max_a -\frac{1}{2} \sum_{i=1}^{N}\sum_{j=1}^{N} a_ia_j y_iy_j(x_i\cdot x_j)+\sum_{i=1}^N{a_i} \tag{23} \\
&&a_i \geq 0 \tag{24} \\
&&\mu_i \geq 0 \tag{25} \\
&&C-a_i-\mu_i=0 \tag{26}\\
&&\sum_{i=1}^Na_iy_i=0 \tag{27}
\end{eqnarray}
\]
将(24)、(25)、(26)消去\(u_i\) 得到不等式\(0 \leq a_i \leq C\)。再将目标函数求极大转为求极小,得到如下对偶问题
\[\begin{eqnarray}
&&\min_a \frac{1}{2} \sum_{i=1}^{N}\sum_{j=1}^{N} a_ia_j y_iy_j(x_i\cdot x_j) - \sum_{i=1}^N{a_i} \tag{28} \\
&&\sum_{i=1}^Na_iy_i=0 \tag{29}\\
&&0 \leq a_i \leq C \tag{30}
\end{eqnarray}
\]
原始问题是凸二次规划问题,满足kkt条件
\[\begin{eqnarray}
&& \nabla_wL = w-\sum_{i=1}^Na_iy_ix_i=0 \tag{31} \\
&& \nabla_bL = \sum_{i=1}^Na_iy_i=0 \tag{32} \\
&& \nabla_{\xi_i} L = C-a_i -\mu_i=0 \tag{33}\\
&& a_i(y_i(w \cdot x_i +b)+\xi_i - 1) =0\tag{34}\\
&& \mu_i \xi_i=0 \tag{35}\\
&& y_i(w \cdot x_i +b)+\xi_i - 1 \geq 0 \tag{36} \\
&& \xi_i \geq 0 \tag{37} \\
&& a_i \geq 0 \tag{38}
\end{eqnarray}
\]
若存在\(0 < a_i <C\),则\(0 < u_i <C, \xi_i=0,y_i(w \cdot x_i +b)+\xi_i - 1=0\) 。所以
\[\begin{eqnarray}
w=\sum_{i=1}^Na_iy_ix_i \tag{39} \\
b=y_i - \sum_{j=1}^Na_jy_j(x_j*x_i)
\end{eqnarray}
\]
三.非线性支持向量机
1.核技巧
非线性问题往往不好解,所以希望能用解线性分类问题的方法解决这个问题。所采取的方法是进行一个非线性变换,将非线性问题变换为线性问题,通过解变换后的线性问题的方法求解原来的非线性问题。
核函数的定义
设x是输入空间,H是特征空间,如果存在一个从x到H的映射
\[\phi(x) : X \rightarrow H \tag{40}
\]
使得对所有 \(x,z \in X\),函数K(x,z)满足条件
\[K(x,z) = \phi(x) \cdot \phi(z) \tag{41}
\]
则称K(x,z)为核函数,\(\phi(x)\)为映射函数。
核技巧的想法是,在学习核预测中只定义核函数K(x,z),而不显示的定义映射函数\(\phi\)。通常,直接计算K(x,z)比较容易,而通过\(\phi(x)\)和\(\phi(z)\)计算K(x,z)并不容易。可以看到,对于给定的和K(x,z),特征空间和映射函数的取法并不唯一。
核函数在支持向量机中的应用
在线性支持向量机的对偶问题中,目标函数和决策函数都只涉及输入实例与实例之间的内积。
此时目标函数成为
\[\min_a \frac{1}{2} \sum_{i=1}^{N}\sum_{j=1}^{N} a_ia_j y_iy_jK(x_1,x_j)- \sum_{i=1}^N{a_i} \tag{42}
\]
分类决策函数成为
\[f(x)=sign(w*x +b)=sign(\sum_{i=1}^{N}a_iy_i \phi(x_i) \cdot \phi(x) +b)=sign(\sum_{i=1}^{N}a_iy_iK(x_i,x) + b) \tag{43}
\]
常用核函数
1.多项式核函数
\[K(x,z)=(x \cdot z +1)^p \tag{44}
\]
2.高斯核函数
\[K(x,z)=exp(- \frac{||x-z||^2}{2 \sigma ^2}) \tag{45}
\]
非线性支持向量机分类器算法
输入:训练数据集\(T={(x_1,y_1),\cdots,(x_N,y_N)}\) ,其中\(x_i \in R^n, y_i\in {+1,-1} ,i=1,2,\cdots N\);
输出:分类决策函数
(1)选择适当的核函数K(x,z)和适当的参数C,构造并求解最优化问题
\[\begin{eqnarray}
&&\min_a \frac 1 2 \sum_{i=1}^N \sum_{j=1}^N a_i a_j y_i y_j K(x_i,x_j) - \sum_{i=1}^N a_i \tag{46} \\
&&\sum_{i=1}^N a_i y_i=0 \tag{47} \\
&&0 \leq a_i \leq C \tag{48}
\end{eqnarray}
\]
求得最优解 \(a^* =(a^*_1,\cdots,a^*_N)^T\).
(2)选择\(a^*\)的一个正分量\(0< a^*_j <C\),计算
\[b^* = y_j - \sum_{i=1}^N a^*_i y_i K(x_i,x_j) \tag{49}
\]
(3)构造决策函数
\[f(x)= sign(\sum_{i=1}^{N}a^*_iy_iK(x_i,x) + b*) \tag{50}
\]