||
尝试找到一条直线,能够把二元数据隔离开。放到三维空间或者更高维的空间,尝试找到一个超平面,能够把所有的二元类别隔离开。这么多的可以分类的超平面,哪个是最好的呢?或者说哪个是泛化能力最强的呢?
感知机原理:让所有误分类的到超平面的距离最小。
SVM几个概念:
在分离超平面固定为wTx+b=0的时候,|wTx+b|表示点x到超平面的距离。通过观察wTx+b和y是否同号,我们判断分类是否正确。
(1)函数间隔γ′:y(wTx+b),即感知机模型里面的误分类点到超平面距离的分子。对于训练集中m个样本点对应的m个函数间隔的最小值,就是整个训练集的函数间隔。表示分类的正确性及确信度。
(2)几何间隔γ:函数间隔并不能正常反应点到超平面的距离,因为当w和b成比例改变时,函数间隔也会成比例的改变,为了统一度量,需要对法向量w加上约束条件,如规范化||w||=1使得间隔确定。这样就导出几何间隔的概念γ=γ′/||w||2
如果||w||=1,则函数间隔和几何间隔相等,如果超平面参数w和b成比例地改变(超平面没有改变),函数间隔也比例改变,而几何间隔不变。
支持向量机学习的基本想法是求解能够正确划分训练数据集并且几何间隔最大的分离超平面。而函数间隔的取值并不影响最优化问题的求解,因此常见的做法是将函数间隔设置为1.
(3)支持向量:在感知机模型中,我们可以找到多个可以分类的超平面将数据分开,并且优化时希望所有的点都离超平面远。但是实际上离超平面很远的点已经被正确分类,我们让它离超平面更远并没有意义。反而我们最关心是那些离超平面很近的点,这些点很容易被误分类。如果我们可以让离超平面比较近的点尽可能的远离超平面,那么我们的分类效果会好有一些。SVM的思想起源正起于此。如果所有的样本不光可以被超平面分开,还和超平面保持一定的函数距离,那么这样的分类超平面是比感知机的分类超平面优的。可以证明,这样的超平面只有一个。和超平面平行的保持一定的函数距离的这两个超平面对应的向量,我们定义为支持向量。
(4)目标函数:SVM的模型是让所有点到超平面的距离大于一定的距离,也就是所有的分类点要在各自类别的支持向量两边。一般我们都取函数间隔γ′为1。可以看出,这个感知机的优化方式不同,感知机是固定分母优化分子,而SVM是固定分子优化分母,同时加上了支持向量的限制。
(5)优化求解:目标函数为凸函数,使用拉格朗日变换将优化目标转化为无约束优化问题,再使用KKT条件将问题转化为其对偶问题,最后使用SMO算法进行优化求解。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2025-1-10 19:05
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社