搜文章
推荐 原创 视频 Java开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发
Lambda在线 > 锐翌基因 > 支持向量机第2讲:SVM的数学原理

支持向量机第2讲:SVM的数学原理

锐翌基因 2017-11-29

叮~~上课啦!在上期的生信课堂中,小锐带大家学习了支持向量机(SVM)的总体思想,初步了解到它可以有效地处理高通量测序数据的分类与预测问题,并介绍了它在处理线性可分问题、线性不可分问题、非线性问题时的思路()。已get知识的童鞋请为自己鼓掌~


今天,小锐请来了特级讲师↓↓↓

支持向量机第2讲:SVM的数学原理

是的,你没有看错,就是大数学家拉格朗日!因为今天我们要学习的是SVM的数学原理,以此帮助大家深入了解SVM算法的来源,从而可以得心应手地对模型进行参数优化,提高模型分类的正确性和回归效果。


本篇也将以线性可分样本、线性不可分样本、非线性样本的顺序来介绍。再小小地剧透下,等会儿会出现和老师同名的乘子~


注:本文中wx都表示向量!


1

线性可分问题


支持向量机第2讲:SVM的数学原理


解决思路

如上图是两类线性可分的样本点。假如有两类样本点——蓝色点和红色点,蓝色点表示-1类,红色点表示+1类,寻找一个最优超平面将两类样本点最大间隔地分开。通过大量实验发现中间黑色的超平面分割效果最好。该线性超平面为wx+b=0。蓝色样本边界超平面为wx+b=-1,红色样本的边界超平面为wx+b=+1。在蓝色超平面wx+b=-1以上的点为-1类,在红色超平面wx+b=+1以下的点为+1类。即通过

支持向量机第2讲:SVM的数学原理

寻找超平面,尽量使模型简单。事实上,复杂的模型去拟合有限样本会导致学习机器在泛化能力(推广能力)上缺失。也就是说,线性模型的模型复杂度与边缘成反比,边缘越大,模型越简单,推广能力越强。


样本的分类模型

即将蓝色边界超平面与红色边界超平面合写,如下表示:

支持向量机第2讲:SVM的数学原理


最大边缘间隔推导

假设蓝色超平面与红色超平面上分别有样本点x1x2,则带入超平面:

支持向量机第2讲:SVM的数学原理

支持向量机第2讲:SVM的数学原理

这两个超平面相减得:

支持向量机第2讲:SVM的数学原理

根据向量知识,两类样本点的最大边缘间隔为:

支持向量机第2讲:SVM的数学原理

所以定义Margin为最大边缘,即

支持向量机第2讲:SVM的数学原理


(1)


公式(1)保证模型尽量简单、推广能力强。


此时重新定义Margin’,即

支持向量机第2讲:SVM的数学原理

其等价于公式(1)。


定义

支持向量机第2讲:SVM的数学原理


(2)

原问题是求(1)式中使间隔最大化的w,变成了求(2)式中使L(w)最小化的w



将公式


支持向量机第2讲:SVM的数学原理


转化成

支持向量机第2讲:SVM的数学原理


(3)

yi为因变量,即原样本标签。

式(3)保证模型对样本正确划分。


优化问题求解

支持向量机第2讲:SVM的数学原理

这样的问题在数学上称为二次规划问题,采用“拉格朗日乘子法”来得到全局最优解。进一步地,由于约束条件为不等式,因此需要引用扩展的拉格朗日乘子理论来解决其条件极值问题。为此,定义的拉格朗日函数:

支持向量机第2讲:SVM的数学原理

(4)

分别对公式(4)中的和求偏导,并令他们等于0:

支持向量机第2讲:SVM的数学原理
支持向量机第2讲:SVM的数学原理

(5)

支持向量机第2讲:SVM的数学原理

(6)

 假设wp维,bl维,则公式(5)有p+l+1个未知数(a是1维)。但是解(5)(6)的方程只有p+l个。又由于拉格朗日乘子是未知的,无法解出wb。处理上面不等式约束的二次规划问题的方法是把它变成等式约束,只要限制拉格朗日乘子ai非负即可。这种变化导致的拉格朗日乘子约束就是著名的KKT条件。


引入拉格朗日乘子的公式:

支持向量机第2讲:SVM的数学原理

要使该等式成立,则:

支持向量机第2讲:SVM的数学原理

因为yi只能取+1或者-1,所以,当yi=1,则wixi+b=1,表示样本为+1类;当yi=-1,则wixi+b=-1,表示样本为-1类。

由此可知,在所有的样本点中,大部分的样本点对应的拉格朗日乘子为0,只有极少数样本点(位于蓝色与红色边界超平面上的样本点)的拉格朗日乘子不等于0。


分别对式(4)中的wb求偏导并令他们等于0,得出(5)、(6),将(5)、(6)带入(4),上面问题就转化成对偶优化问题:

支持向量机第2讲:SVM的数学原理
支持向量机第2讲:SVM的数学原理
支持向量机第2讲:SVM的数学原理

(7)


现在我们再来对比一下原始问题和对偶问题的优化思路。


原始问题:

支持向量机第2讲:SVM的数学原理


对偶问题:

支持向量机第2讲:SVM的数学原理


原始问题与对偶问题解的关系:

支持向量机第2讲:SVM的数学原理


对偶优化问题可写成,求下列函数的最大值:

支持向量机第2讲:SVM的数学原理

(8)

约束条件为:

支持向量机第2讲:SVM的数学原理
支持向量机第2讲:SVM的数学原理

(9)

该对偶问题是关于拉格朗日乘子的,它与原问题的优化是等价的,根据这个优化问题解出最优ai(由KKT条件可知,多数为0,只有极个别非0)。


ai*为最优解,则最优的w*

支持向量机第2讲:SVM的数学原理

(10)

即最优分类面的系数向量是训练样本向量的线性组合。

那些非0的对应的样本才是最优分类面的参数的关键点,他们称作支持向量。

求出w后,b的求解可带入支持向量所落在的两个超平面wx+b=±1上。


求解上述问题后,得到的最优分类函数:

支持向量机第2讲:SVM的数学原理

(11)


SVM的解的表达式可以重写为:

支持向量机第2讲:SVM的数学原理

支持向量机第2讲:SVM的数学原理

最优超平面对应的w是支持向量的线性组合。


支持向量机的判别函数为:

支持向量机第2讲:SVM的数学原理

(12)


2

线性不可分问题

支持向量机最初的出发点是从线性数据开始的,但是实际中有很多数据是线性不可分的,如下图所示。这种情况下要想找超平面,就需要有一定的约束条件。  


支持向量机第2讲:SVM的数学原理


对于实际中有些线性不可分的情况,我们允许他们产生一定的错分,之前所有观测点必须位于超平面两侧,现在对于有些点给它一个宽松的条件,允许它不大于1,那么yi[(w·xi)+b]大于1的减去一个正数,这个正数即为松弛变量。

于是约束条件(2)变为:

支持向量机第2讲:SVM的数学原理

(13)


有了松弛变量的定义后,我们可以通过要求松弛变量或松弛变量的总和为最小的方式,实现对错分类数量的控制。

支持向量机第2讲:SVM的数学原理

C是模型参数即惩罚因子,它的取值不能过大,也不能过小。它表示对松弛变量的惩罚程度,是后期SVM模型优化的参数之一。最优分类面问题就可以写成:

支持向量机第2讲:SVM的数学原理

(14)

其中u=1, 2。此时仍然为二次规划问题。约束条件为:

支持向量机第2讲:SVM的数学原理

(15)


不允许有错分样本存在的情况叫做最优分类超平面的硬间隔,允许有错分样本存在的情况叫做最优分类超平面的软间隔。类似地,通过拉格朗日函数,转化为对偶问题:

支持向量机第2讲:SVM的数学原理
支持向量机第2讲:SVM的数学原理


此时,我们的样本点有三类样本。

支持向量机第2讲:SVM的数学原理

1类样本:位于分类间隔之外

支持向量机第2讲:SVM的数学原理

2类样本:支持向量

支持向量机第2讲:SVM的数学原理

3类样本:位于分类间隔之内(允许错分的样本)

支持向量机第2讲:SVM的数学原理


3

非线性问题

实际中有些问题即使允许错分也不能将其区分开来,即怎么样错分都不能用线性划分,需要映射到高维空间中实现划分。如下图:


支持向量机第2讲:SVM的数学原理


对于非线性问题,可以通过非线性变换,转化为某个高维特征空间中的线性问题,在变换空间求最优分类面,但这种变换可能比较复杂,一般情况不能实现。


值得注意的是,在前面的对偶问题,不论是寻优目标函数(8)还是分类函数(12)都只涉及到训练样本之间的内积(x·x)运算。由此设想我们如果将原特征向量用映射的方式转换成xiΦ(xi),则相应的式子中的x·x项只需要改成Φ(xΦ(x),于是非线性问题可以转化成线性问题去解决。


设有非线性映射Φ: R→H,将输入空间R的样本映射到高维(也可能是无穷维)的特征空间H中。在特征空间H构造最优超平面时,训练算法仅用特征空间中内积,即Φ(x1Φ(x2),而没有单独的Φ(x)出现。因此,如果能够找到一个函数K使得K(xixj)=Φ(xiΦ(xj)。这样,在高维特征空间实际上只需要进行内积运算,而这种内积运算可以输入空间中函数实现,我们甚至没有必要知道Φ的形式,根据泛函的有关理论,只要一种核函数满足Mercer条件,它就对应某一变换空间的内积。


Mercer条件:对于任意的对称函数K(xi, xj)能以正的系数ak>0展开成:

支持向量机第2讲:SVM的数学原理

即用K(xi, xj)描述一个特征空间中的一个内积的充分必要条件是使得

支持向量机第2讲:SVM的数学原理

成立。这一条件并不难满足。


因此,在最优分类面中采用适当的内积K(xi, xj)就可以实现某一非线性变换后的线性分类,而计算复杂度却没有增加,此时对偶问题可以写成:

支持向量机第2讲:SVM的数学原理

约束条件为:

支持向量机第2讲:SVM的数学原理

而相应的分类函数也变为:

支持向量机第2讲:SVM的数学原理


四个核函数如下:

(1)

支持向量机第2讲:SVM的数学原理


(2) 多项式核函数:

支持向量机第2讲:SVM的数学原理

q是参数。


(3) 径向基核函数(RBF):

支持向量机第2讲:SVM的数学原理

σ是参数。


(4) 双曲正切核函数:

支持向量机第2讲:SVM的数学原理

βγ是参数。



支持向量机第2讲:SVM的数学原理

最后,小锐必须要再和大家叨叨一下数学原理在生信分析中的重要性。在SVM模型中,参数(惩罚因子C与核函数中的一些参数)的优化、选取对模型分类的正确性以及回归有着至关重要的作用。要想成为一名所向披靡的生信达人,必须要掌握好具体的SVM算法数学原理来对参数进行优化。大家若在学习过程中遇到困难,记得留言告诉小锐,我们的生信高手会定将帮你顺利解决!


预告:在下期的生信课堂中,我们将具体介绍SVM算法在二分类问题上的应用。当然,其在基因数据的分类应用将是重点内容,敬请期待!


供稿:范芳芳

编辑:王丽燕

版权声明:本站内容全部来自于腾讯微信公众号,属第三方自助推荐收录。《支持向量机第2讲:SVM的数学原理》的版权归原作者「锐翌基因」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458

文章来源: 阅读原文

相关阅读

关注锐翌基因微信公众号

锐翌基因微信公众号:realbio_gene

锐翌基因

手机扫描上方二维码即可关注锐翌基因微信公众号

锐翌基因最新文章

精品公众号随机推荐

下一篇 >>

支持向量机