支持向量机(Support Vector Machine,SVM)是Corinna Cortes和Vapnik等于1995年首先提出的,它在解决小样本、非线性及高维模式式识别中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器其学习问题中。
我们生活中经常看到一些影评、物评等等,可以分成三类:
又如我们直到飞机、火车长什么样子,能够在不同的图片将它们分类出来:
再或者我们听一个音乐的音律、节奏,可以辨别出它是何种音乐,如:
对于以上三个例子,我们不难发现,都有一个“中性”的结果,其两侧分别是问题的两种不同的结果,这便是我们今天介绍的 线性向量机 解决问题的思路。
决策树
贝叶斯学习
K-近邻
支持向量机 (Support Vector Machine)
给定一个训练样本的集合
找到一个函数f(x,a) 分类样本,a为参数,使得:
则对于一个测试样本x,我们可以预测它的标签为[f(x,a)]
f(x,a) = 0 被称为分类超平面
解释:简单来说就是对于任意+1 正例 的部分,它全部都是大于0的;对于任意-1 负例 的部分,它全部都是小于0的。 电影评价,中评为 分类超平面 ,比中评好的,我们分类为好评,比它差的,我们分类为差评。
对于一个线性超平面:
(注:为向量的内积即样本特征值和参数的内积,b为截距。)
在线性可分的情况下,有无穷多个满足条件的超平面,把结果分成n部分(n=2那分类超平面就是一条线,n=3就是一个面...)
那么哪条线最好呢?
比如黑线是超平面,两条黄线的边界刚刚触碰到各自的第一个点,上面宽为2,下面宽为3,那间隔就是5.
即具有最大间隔的线形分类器
我们看到这次的黑线(超平面)两端的黄线明显更粗了,所以这条线更好。
那些阻挡间隔继续扩大的数据点,我们叫做支持向量(SV)。
(除了间隔边界上的数据点以外,那些在间隔区域内的、 以及在错误一侧的数据点,也都是SV。后面会讲)
首先,我们需要数据点完美分布在超平面两侧,
引入平行于分类超平面的两个额外超平面:
间隔即两个新的超平面 之间的距离
如何计算 ?
最优化问题(使间隔最大化):
虽然看起来似乎间隔只与w有关, 但b仍然通过约束w的取值,间接对间隔产生影响。
(因为y为1或-1, 说明都分对了)
即经过一系列的转化,我们最终要求的就是在上图红色部分中,在二三行条件下,第一行的最小值。
根据KKT条件: (>=0)
我们前面提到:首先我们需要数据点完美分布在超平面两侧,这是为了保证训练分类错误率为0.
但是在线性不可分情况下,一定会有错误。
此时找不出一条直线来将他们分隔开来。
我们需要最小化 和 训练分类错误!
其中C>0 是一个用于平衡这二者的常数(前面重要C小一点 后面重要C大一点)
正值常数 C 平衡着 大间隔和小分类错误
Structure risk (结构风险) vs. empirical risk (经验风险)
- 大 C: 更偏向于错误小
- 小 C: 更偏向于间隔大
回顾正确的预测:
定义
对每个样本:
非凹凸连续,不容易求解
z<0时:<0时>0 或 >0时 说明做错了/正例跑到了负例那,负例跑到了正例那。此时loss=1
z>=0时:loss=0
z<1时,说明点在间隔里面,loss=1-z
z>=1时,loss=0,说明对了
更多损失函数:
形式化损失函数
仍然希望找到最大间隔超平面,但此时:
- 时,数据点在间隔区域的边界上 或 在间隔区域外部正确分类的那一侧
- 时,数据点在间隔区域内但在正确分类的一侧
- 时,数据点在分类超平面错误分类的一侧
正值常数 C 平衡着 大间隔和小分类错误
Structure risk (结构风险) vs. empirical risk (经验风险)
数据集: Caltech101 :9144 张图片、102 类别
预处理:转化为灰度图、放缩图片 e.g. 较长边有120 像素
用LLC (底层特征,Low Level Content) 来提取图像特征
用SVM训练和测试
测试结果
从输入空间到特征空间
样本xi 在输入空间线性不可分,但可能在特征空间中线性可分。
为了在特征空间中求解对偶问题且找到分类超平面,我们只需知道 ,(而不是分别的。)
如果我们已知一个函数 它等于 那么我们就没有必要显示地表示这些特征。
称作 核函数(kernel function)
即只需要知道核函数是什么就好了。
常用核函数
例如:
即他们地映射结果刚好是相等的所以可以用核函数代表。
注:是三种方法;
举例: 构造高斯核函数
Libsvm :http://www.csie.ntu.edu.tw/~cjlin/libsvm/
Liblinear :http://www.csie.ntu.edu.tw/~cjlin/liblinear/
SVMlight :http://svmlight.joachims.org/
线性支持向量机
核函数支持向量机
优点
缺点
—— 尚未找到理论上可证 明的最优选择