目录
前言
一、间隔与支持向量
二、对偶问题
三、核函数
四、软间隔与正则化
即使现在深度学习神经网络的影响力逐渐增强,但SVM在中小型数据集上依旧有着可以和神经网络相抗衡的模型鲁棒性,在曾经的机器学习界有着很深的影响力。
支持向量机很重要的一个应用就是用来分类,在给定一个训练样本集的情况下,如何能基于训练样本集找到一个划分超平面,将不同类别的样本划分开来,如下图所示,能够将不同类别的样本划分开来的平面可能有很多,那么哪一个平面才是划分效果最好的呢?(所谓划分效果最好就是可以尽可能的将新加入的样本划分到正确的类别当中,做到准确率相对高)
直观上看的话,应该是找位于正中间的加粗实线,因为加粗实线对两边的“容忍度”最好,两边都有相对较大的间隔,新加进去的样本都有相对较大的几率被划分到属于自己类别的那一部分,这个划分超平面的结果是最鲁棒的,对未见示例的泛化能力最强。
那超平面到底应该如何进行划分呢,不能凭空只靠想象。在样本空间中,划分超平面可通过以下线性方程来描述。
其中w=(w1;w2...;wd)为法向量,决定了超平面的方向;b为位移项,决定了超平面与原点之间的距离,划分超平面可被法向量w和位移b确定,样本空间中任意点x到超平面(w,b)的距离可写为
(这里的绝对值w是对w的平方进行开方得到的)
这一部分是进行了一个转化,只要是大于等于1的y值都换为1,小于等于-1的都换为-1,同时如下图所示,距离超平面最近的几个样本点使得上述等式成立,它们被称为“支持向量”,因为它们之间的就是最短距离,这两个异类支持向量到超平面的距离之和为
它被称为“间隔”,各自的支持向量的y的值都为1,所以超平面到各自支持向量的距离都为1/w,所以两个异类支持向量到超平面的距离之和为2/w.
图中的两条虚线就是各自区域的支持向量。
想要找到具有最大间隔的划分超平面,也就是要找到适当的参数w和b,使得上述的距离间隔最大,即满足以下约束条件
同时等价于
这就是支持向量机的基本型。
我们希望求解上式来得到最大间隔划分超平面所对应的模型
其中w和b是模型参数。
在本章前面的讨论中,我们假设训练样本是线性可分的,即存在一个划分超平面能将训练样本正确分类,在实际的分类任务中,也许原始空间并不存在能正确划分两类样本的超平面,下图中的异或问题就不是线性可分的。
对于上面碰到的问题,可将样本从原始空间映射到更高维的特征空间,使得样本在这个特征空间内线性可分,在上图中,将原始的二维空间映射到一个合适的三维空间时,就能找到一个合适的划分超平面。由此可得,假如原始空间是有限维,即属性数有限,那么一定存在一个高维特征空间使样本可分。
在前面的讨论中,我们一直假设训练样本在样本空间或特征空间中是线性可分的,即存在一个超平面能将不同类的样本完全分开,然而在现实情况中很难确定这样合适的核函数使得训练样本在特征空间线性可分,也就是不能找到可以完全将两类样本完全划分准确的核函数,假设即使找到了,也可能是由于在训练样本中过拟合所造成的,在对新加入的样本进行判定时效果可能就没有那么好。
所以为了解决这个问题,是允许支持向量机在一些样本上可以出错,引入“软间隔”概念,如下图所示。
之所以引入软间隔是为了区分之前的硬间隔概念,软间隔在最大化间隔的同时允许一些样本不满足约束条件,但是不满足约束条件的样本应尽量少。