SVM中的支持向量是指什么
在开始推导之前我们先了解一下支持向量机中的支持向量是指什么。
观察上面一张图,哪些点对于分割线起了决定性作用?
在特别远的区域,不管有多少样本点,对于分割线的位置,也是没有作用的,分割线是图中三个正好落在margin边界上的点决定的。这几个关键点支撑起了一个分割超平面,他们就是SVM中的支持向量。
下面我们开始一步步推导SVM。
SVM的优化目标
现在我们开始讲解SVM算法的优化目标
假设有一堆样本点
,在SVM中,二分类问题我们不再用0和1来表示,而是用+1 和 -1 来区分类别(这样会更严格),假设超平面
可以将训练样本正确分类,即对于任意样本,如果
, 则称
为正例;如果
,则称
为负例。 学习的目标是在特征空间中找到一个分离超平面,能够将样本点分到不同的空间。
所以SVM模型的目标函数,就是这样一个超平面,他的公式可以表达为:
这里的
是核函数,相当于对x进行了一个维度变换。在这里我们先不去细究这一块,先把
直接看作是
本身。
如果能够正确分类所有样本点的超平面存在,我们可以去预测样本点的,而对应的决策函数,也就是用于预测的函数。就是
sign函数是符号函数,它的形式是:
这里提到的SVM目标函数和决策函数,组合起来就是我们说的SVM算法啦。
根据svm的设定,当样本点分类正确的时候,有:
根据上面两个公式可以推出:
在超平面确认存在的情况下,一般来说,一个点距离分离超平面的远近可以表示分类预测的确信程度。
能够相对地表示点x距离超平面的远近,而
的符号与类标记y的符号是否一致代表着分类是否正确(即上面推出来的结论,分类正确时,
)。所以可以使用
来表示分类的正确以及确信度(即样本离分类超平面的距离)。因为这个距离的存在,我们有了函数间隔(margin)的概念。现在我们严肃地把这个定义(其实是李航老师写出来的)写出来,
对于给定的数据集和超平面(用w,b表示),定义超平面(w,b)到样本点
的函数间隔(margin)为:
再次重申下这里的
是对x做的变换,这里先把它当做x本身就好。
函数间隔可以表示分类预测的正确性和确信度,但是在选择超平面的时候,如果我只是将
变为2
,其实超平面本身没有改变,而margin却变成了原来的两倍,为了防止这种情况,我们需要对