支持向量机
支持向量机的学习是在特征空间进行。学习的目标是在特征空间中找到一个分离超平面,能将实例分到不同的类。分离超平面对应于方程wx+b=0,它由法向量和截距b决定,可用(w,b)来表示。
一般来说,一个点距离分离超平面的远近可用表示分类预测的确信程度。
定义超平面(w,b)关于样本点\((x_i,y_i),其中y_i=1或-1\)的函数间隔为\(\hat{\gamma}=y_i(w.x_i+b)\)。定义超平面(w,b)关于训练数据集T和超平面(w,b),定义超平面(w,b)关于所有样本点\((x_i,y_i)\)的函数间隔之最小值,即\(\hat{\gamma}=min\hat{\gamma_i}\) .
函数间隔可表示分类预测的正确性及确信度。但是选择分离超平面时,只有函数间隔还不够,因为只要成比例地改变w和b,超平面并未改变,但函数间隔却成为原来的2倍。因此,我们需定义新的间隔,几何间隔,记为\(\gamma_i=y_i(\frac{w}{||w||}x_i+\frac{b}{||w||})\)
函数间隔与几何间隔有下面的关系:
\(\gamma=\frac{\hat{\gamma}}{||w||}\),如果\(||w||=1\),那么函数间隔与几何间隔相等。
间隔最大化
支持向量机学习的基本思想是求解能够正确划分训练数据集并且几何间隔最大的分离超平面。
最大间隔分离超平面可以表示为下面的约束最优化问题:
考虑到几何间隔与函数间隔的关系,可把上式改写为:
假设将w和b按比例缩放,改为\(\lambda w和\lambda b\),这时函数间隔成为\(\lambda \hat{\gamma}\),这并不改变上式,因此可取\(\hat{\gamma}=1\),且最大化\(\frac{1}{||w||}\)和最小化\(\frac{1}{2}||w||^2\)是等价的。于是就得到下面的线性可分支持向量机学习的最优化问题:
这是一个凸二次规划问题。
凸优化问题是指约束最优化问题
其中,目标函数f(w)和约束函数\(g_i(w)\)都是\(R^n\)上的连续可谓的凸函数,约束函数\(h_i(w)是R^n\)上的仿射函数(如果\(f(x)满足f(x)=ax+b,a\in R^n,b\in R,x\in R^n\))
当目标函数f(w)是二次函数且约束函数均为仿射函数时,上述凸最优化问题称为凸二次规划问题。
求出了上式最优化问题的解\(w^*,b^*\)就求出了最大间隔分离超平面以及分类决策函数\(f(x)=sign(w^*.x+b^*)\),即线性可分支持向量机模型
最大间隔分离超平面的存在唯一性:若训练数据集T线性可分,则可将训练数据集中的样本点完全正确分开的最大间隔分离超平面存在且唯一。
支持向量和间隔边界
在线性可分情况下,训练数据集的样本点中与分离超平面距离最近的样本点的实例称为支持向量。支持向量是使约束条件式\(y_i(w.x_i+b)-1=0\)成立的点,支持向量在超平面\(H_1:w.x+b=1和H_2:w.x+b=-1\)上,两个超平面的间隔为\(\frac{2}{||w||},分离超平面与它们平行且位于它们中央。\)
在决定分离超平面时只有支持向量(少数几个点)起作用,如果移动支持向量将改变所求的解,但如果移动间隔边界以外的点,甚至去掉这些点,解都不会改变,由于支持向量在确定分离超平面中起着决定性作用,所以讲这种分类模型称为支持向量机。
求解
首先构建拉格朗日函数,为此,对(7.14)每一个不等式约束引进拉格朗日乘子\(\alpha_i\geq 0\),定义拉格朗日函数:
\(L(w,b,\alpha)=\frac{1}{2}||w||^2-\sum \alpha_i y_i(w.x_i+b)+\sum \alpha_i\),其中,\(\alpha=(\alpha_1,\alpha_2,\cdots,\alpha_N)^T\)为拉格朗日乘子向量
根据拉格朗日对偶性,原始问题的对偶问题是极大极小问题:
\(max_{\alpha}min_{w,b}L(w,b,\alpha)\)
所以,为了得到对偶问题的解,需要先求\(L(w,b,\alpha)\)对w,b的极小,再求对\(\alpha\)的极大
(1)求\(min_{w,b}L(w,b,\alpha)\)
将拉格朗日函数\(L(w,b,\alpha)\)分别对w,b求偏导并令其等于0
得到\(w=\sum a_iy_ix_i,\sum a_iy_i = 0\),将w代入\(L(w,b,\alpha)\),化简得\(min_{w,b}L(w,b,\alpha)\)=\(-\frac{1}{2}\sum_{i=1}^N \sum_{j=1}^N a_ia_jy_iy_j(x_i.x_j)+\sum a_i\)
(2)求\(min_{w,b}L(w,b,\alpha)对\alpha\)的极大,即是对偶问题
设\(\alpha^*=(\alpha^*_1,\cdots,\alpha^*_l)^T\)是对偶最优化问题(7.22)~(7.24)的解,则存在下标j,使得\(a_j^*>0\),并可按下式求得原始最优化问题为:
我们注意到w,b只依赖于\(a_i>0\)的样本点\((x_i,y_i)\),我们把这些样本点称为支持向量
综上所述,对于给定的线性可分训练数据集,可以先求出\(\alpha\),再利用\(\alpha\)求出解w,b。从而得到分离超平面以及分类决策函数。这种算法称为线性可分支持向量机的对偶学习算法。
线性支持向量机
假设训练数据集不是线性可分的,通常情况是,训练数据中有一些特异点,将这些特异点除去后,剩下大部分的样本点组成的集合是线性可分的。线性不可分意味着某些样本点\((x_i,y_i)\)不能满足函数间隔大于等于1的约束条件,为了解决这个问题,可以对每个样本点\((x_i,y_i)\)引进一个松弛变量\(\xi_i \geq 0\).约束条件变为:\(y_i(w.x_i+b)\geq 1-\xi_i\),同时,对每个松弛变量\(\xi _i\),支付一个代价\(\xi_i\),目标函数由原来的\(\frac{1}{2}||w||^2\)变成\(\frac{1}{2}||w||^2+C\sum \xi_i\),这里C>0,称为惩罚参数
软间隔支持向量机中的实例\(x_i\)到间隔边界的距离\(\frac{\xi_i}{||w||}\),软间隔的支持向量\(x_i\)或者在间隔边界上,或者在间隔边界与超平面之间,或者在奋力超平面误分一侧。若\(a_i^* < C,则\xi_i=0,支持向量x_i恰好落在间隔边界上,若a_i^*=C,0<\xi_i<1,则分类正确,x_i在间隔边界与分离超平面之间,若a_i^*=C,\xi_i=1,则x_i在分离超平面上;若a_i^*=C,\xi_i>1,则x_i处于分离超平面误分一侧。\)
非线性支持向量机与核函数
如果能用\(R^n\)的一个超平面将正负例正确分开,则称这个问题为非线性可分问题。非线性问题往往不好求解,所以希望能用解线性分类问题的方法解决这个问题,所采取的方法是进行一个非线性变换,将非线性问题变换为线性问题,通过解变换后的线性问题的犯法求解原来的非线性问题。
核函数
设\(\chi\)是输入空间(\(R^n\)),又设\(H\)为特征空间(希尔伯特空间),如果存在一个从\(\chi\)到\(H\)的映射\(\phi(x):\chi \to H\),使得对所有\(x,z\in \chi\),函数\(K(x,z)\)满足条件\(K(x,z)=\phi(x).\phi(z)\)则称\(K(x,z)\)为核函数,\(\phi(x)\)为映射函数
核技巧的想法是,在学习与预测中只定义核函数K(x,z),而不显式地定义映射函数\(\phi\),\(\phi\)是输入空间到特征空间的映射,特征空间一般是高维的,甚至是无穷维的,而对于给定的核K(x,z),特征空间\(H\)和映射\(\phi\)的取法通常并不唯一。
核技巧在支持向量机中的应用
我们注意到在线性支持向量机的对偶问题中,无论是目标函数还是决策函数(分离超平面)都只涉及输入实例与实例之间的内积。而这可以用核函数来替代,此时对偶问题的目标函数成为
\(W(\alpha)=\frac{1}{2}\sum_{i=1}^N \sum_{j=1}^N a_ia_jy_iy_jK(x_i.x_j)-\sum a_i\)
决策函数为:
\(f(x) = sign(\sum a_i^*y_iK(x_i,x)+b^*)\)
这等价于经过映射函数\(\phi\)将原来的输入空间变换到一个新的特征空间,将输入空间中的内积\(x_i.x_j\)变换为特征空间中的内积\(\phi(x_i).\phi(x_j)\)。在新的特征空间里从训练样本中学习线性支持向量机,当映射函数是非线性函数时,学习到的含有核函数的支持向量机是非线性分类模型。
正定核:
通常所说的核函数就是正定核函数
假定K(x,z)是定义在\(\chi\)x\(\chi\)(\(\chi\)是输入空间R^n)上的对称函数,并且对于任意的\(x_1,x_2,\cdots,x_m\in \chi\),K(x,z)关于\(x_1,x_2,\cdots,x_m\)的Gram矩阵是半正定的。可以依据函数K(x,z),构造一个希尔伯特空间\(H\),其步骤是:首先定义映射\(\phi\)并构成向量空间S(对加法和数乘运算是封闭的),然后在S上定义内积构成内积空间,最后将S完备化构成希尔伯特空间。
1、定义映射,构成向量空间S
先定义映射\(\phi:x\to K(.,x)=\phi(x)\)
根据这一映射,对任意\(x_i\in \chi,\alpha_i \in R\),定义线性组合\(f(.)=\sum_{i=1}^m\alpha_iK(.,x_i)\),考虑由线性组合为元素的集合S,由于集合S对加法和数乘运算是封闭的,所以S构成一个向量空间
2.在S上定义内积,使其成为内积空间
在S上定义一个运算:对任意f,g\(\in S\),\(f(.)=\sum_{i=1}^m\alpha_iK(.,x_i)\),\(g(.)=\sum_{i=1}^l\beta_jK(.,z_j)\)
定义内积运算 :\(f*g=\sum_{i=1}^m\sum_{j=1}^l \alpha_i \beta_jK(x_i,z_j)\)
要证明运算*是空间S的内积,即证满足结合律,交换律,分配律以及自身内积大于等于0
3.将内积空间S完备化为希尔伯特空间
一个希尔伯特空间\(H\)称为再生核希尔伯特空间,这是由于核K具有再生性, 即满足\(K(.,x).f=f(x)\)及\(K(.,x).K(.,z)=K(x,z)\)
称为再生核
正定核的充要条件
设核\(K:\chi\)x\(\chi \to R\)是堆成函数,则K(x,z)为正定核函数的充要条件是对任意\(x_i \in \chi\),K(x,z)对应的Gram矩阵:\(K=[K(x_i,x_j)]_{mxm}\)是半正定矩阵
SMO算法(序列最小最优化算法)
SMO算法要解如下凸二次规划的对偶问题
在这个问题中,变量是拉格朗日乘子,一个变量\(a_i\)对应于一个样本点\((x_i,y_i)\)
SMO算法
(1)取初值\(\alpha^{(0)}=0,k=0\)
(2)选取优化变量\(a_1^{(k)},a_2^{(k)}\),解析求解两个变量的最优化问题,求得最优解\(a_1^{(k+1)},a_2^{(k+1)}\),更新\(\alpha\)为\(\alpha^{(k+1)}\)
(3)判断是否满足条件,满足则退出,不然回到(2)

浙公网安备 33010602011771号