学习笔记21-SVM支持向量机

来源:互联网 发布:oracle数据库备份方法 编辑:程序博客网 时间:2024/06/05 12:35

支持向量机

首先支持向量机是一种算法,有时候机器学习的书喜欢把算法称为”machine”,所以翻译为机器。而支持向量(Support Vector),我们接下来解释。

最大间隔分离超平面

先讲一个二分类问题,一个二维平面上有若干个点,我们要用一条界线(或者是一个平面)把它们分成两部分,就是一个二分类问题。这个二维平面叫“特征空间”,上面的点称为“样本点”,每一个样本点可以用一个“特征向量”来表示。比如下图:
拉格朗日求极值
其实这里可以理解为一个约束最优化问题,我们的目标是求得一个“分界”,这个分界可以具体化为一个“分离超平面”,它由一个法向量w和截距b决定。并且正负样本点到这个超平面的“距离”最大。
所以我们转换为求极值问题。这里引入了拉格朗日函数求极值,如果忘记了请参考高数课本下册。
上面的例子中,距离超平面最近的样本点,我们称为“支持向量(Support Vector)”,就是例子中的x1(3,3)和x2(1,1)。

对偶问题

有时候,上述问题比较难求解,我们可以通过求解对偶问题来得到原始问题的最优解。这里需要用到拉格朗日对偶性:
具体可以参考这篇博客
比如上面的例子,我们要求min L(w,a,b),那么可以先求L(w,a,b)对w的极小值,也就是定义一个式子Q(a,b)=min L(w,a,b),注意这里等号右边是只关于w的函数。解得满足条件的w肯定是由a,b表示的,然后我们再求对a,b的极大值,就能得到最终的解。就是考虑Q(a,b)的极大值max Q(a,b)。
上面的问题称为原始问题min L(w,a,b)的对偶问题。

核函数

上面的讨论都假设样本是线性可分的,但是实际问题中,原始的样本空间中可能不存在一个能正确划分两类样本的超平面,比如下图就不能用一条直线很好地划分两个类别:
线性不可分
对于这种线性不可分的情况,我们可以将样本从原始空间映射到一个更高维的特征空间,使得映射后的样本空间中能找到一个合适的划分超平面。
这种非线性变换引入了核函数的定义:
我们设X是输入空间,设H是特征空间,如果存在一个从X到H的映射:Q(X)=H,使得对所有的x,z,有一个函数K(x,z)=Q(x)Q(z) (表示Q(x)和Q(z)的内积),那么我们称K(x,z)为核函数,Q(x)为映射函数。
如下图:
核函数
常用的核函数如下:
常用核函数