支持向量机
原文链接:SVM支持向量机原理及核函数
转载请注明出处
支持向量机原理
大距离分类算法
1、名词解释:
SVM算法的原理就是找到一个分割超平面,它能把数据正确的分类,并且间距最大!
2、计算间距
在而为空间里,可以使用方程w1x1+w2x2+b=0来表示分割超平面。针对高纬度空间,可以写成一般化的向量形式,即wTx+b=0。这里画出与分割线超平面平行的两条直线,分别穿过两个类别的支持向量。这两条直线的方程分别为wTx+b=−1和wTx+b=1。如下图所示:
根据点到直线的距离公式,可以算出支持向量A到分割超平面的距离为:
d=∣∣wTA+b∣∣∣∣∣∣w∣∣∣∣
由于点A在直线wTx+b=−1和wTx+b=1在,代入可的支持向量A到分割超平面的距离为d=1∣∣∣∣w∣∣∣∣。为了使间距最大,只需找到合适的参数w和b,使1∣∣∣∣w∣∣∣∣最大即可。||w||使向量w的L2范数,计算公式为:
∣∣∣∣w∣∣∣∣=∑i=1nw2i‾‾‾‾‾‾⎷
求1∣∣∣∣w∣∣∣∣的最大值即使求||w||2的最小值:
∣∣∣∣w∣∣∣∣2=∑i=1nw2i
其中n为限量w的纬度。除了间距最大,分割超平面更能用来解决分类问题!回到上图,针对方形点x,必须满足wTx+b≥1的约束条件。针对圆形的点必须满足wTx+b<=−1的约束条件。
类别是离散的值,分别使用-1表示圆点类别,1表示方点类别,即y\in\left\(-1,1\right\)。针对数据集中的所有样本x(i),y(i),只要满足以下约束条件,则由以下参数w和参数b定义的分割超平面进行分类:
y(i)(wTx(i)+b)≥1
一句话概括:求解SVM算法,就是在满足约束条件y(i)(wTx(i)+b)≥1的前提下,求解||w||2的最小值。
松弛系数
针对现行不可分的数据集,上面的方法就不能用了。解决这个问题的办法就是引入一个参数ϵ,称为松弛系数。然后把优化的目标函数变为:
argmin∣∣∣∣w2∣∣∣∣+R∑i=1mϵi
其中m为数据集的个数,R为算法参数,其约束条件变为:
y(i)(wTx(i)+b)≥1−ϵi
理解松弛系数:
可以把εi理解为样本x(i)违反一大间距规则的程度。针对大多数满足约束条件的样本ε=0。而对部分违反最大间距规则的样本ε>0。参数R则表示对违反约束的样本的”惩罚”。R越大对违反约束的点“惩罚力度”越大反之越小 。这样模型就会倾向于允许部分点违反最大间距规则。
把y(i)(wTx(i)+b)作为横坐标,违反约束条件的代价Ji作为纵坐标画图:
上图可以看出,针对哪些没有违反约束条件的样本,其成本为0。违反了约束条件的样本其成本与ε成正比,斜线的斜率为R。
因此,引入松弛系数类似于逻辑回归的成本函数引入正则项,目的是为了纠正过拟合问题,让SVM对噪声数据由更强的忍耐性。如上上图所示,当出现违反大间距规则的噪声样本出现时,仍能让分割超平面是原来的样子,这就是松弛系数的作用。
核函数
核函数是特征转换函数。
回顾上面内容,我们的任务是找出合适的参数w,b,使得分割超平面间距最大,且能正确对数据进行分类。间距最大是我们的优化目标。真确地对数据分类是约束条件。即在满足约束条件y(i)(wTx(i)+b)≥1的前提下,求解||w||2的最小值。
拉格朗日乘子法是解决约束条件下求函数极值的理想方法。其方法是引入非负系数α来作为约束条件的权重:
L=12∣∣∣∣w∣∣∣∣2−∑i=1mαi(y(i)(wTx(i)+b)−1)
由于极值的偏导数为0,因此这需要让L对w求导使之为0得到w和α对关系:
w=∑i=1maiy(i)x(i)
接着继续求L对b对偏导数得出:
∑i=1my(i)αi=0
把这两个式子代入L通过数学运算得出:
L=∑i=1mai−12∑i=1m∑j=1maiajy(i)y(j)x(i)Tx(j)
这个公式中m是数据集个数,a是拉格朗日乘子法引入的一个系数,针对数据集中的每个样本x(i),都有对应的ai。x(i)是数据集中地i个样本的输入,它是一个向量,y(i)是对应的输出标签,值为y\in\left\(-1,1\right\)。
这个公式的最小值求解这里就不说明了。最后求出的a有个明显的特点。即大部分ai=0。因为只有那些支持向量所对应的样本直接决定了间隙的大小。实际上以上推导出这个公式就是为了引入支持向量机的另外一个核心概念:核函数:
K(x(i),x(j))=x(i)Tx(j)
L里的x(i)Tx(j)部分,其中x(i)是一个特征向量,所以x(i)Tx(j)是一个数值,就是两个输入特征向量的内积。预测函数为:
wTx+b=∑i=1maiy(i)x(i)Tx+b
当wTx+b>0,预测函数为类别1,当wTx+b<0,预测类别为-1。注意到预测函数里也包含式子x(i)Tx。我们把K(x(i),x(j))=x(i)Tx(j)称为核函数。 x(i)Tx(j)是两个向量内积,它的物理含义是衡量两个向量的相似性。典型地,当两个向量相互垂直是,即完全线性无关,此时x(i)Tx(j)=0。引入核函数后预测函数为:
wTx+b=∑i=1maiy(i)K(x(i),x)+b
相似性函数
假设数据集已有一个数图特征,如下图,如何进行分类。
解决这个问题的方式是:用一定规则把这些无法进行线性分割的样本映射到更高纬度的空间里,然后找出超平面。
SVM的核函数就是为了实现这种相似性映射。最简单的核函数是K(x(i),x(j))=x(i)Tx(j),它衡量的是两个输入特征向量的相似性。可以通过定义和函数K(x(i),x(j))来重新定义相似性,从而得到想要的映射。例如在基因测试领域,我们需要根据DNA分子的特征来定义相似性函数,即和函数。在文本处理领域,也可以自己定义和函数来衡量两个词之间的相似性。
怎么把低维度的空间映射到高纬度的空间呢?
举个例子:联想下利用多项式解决线性回归欠拟合问题的方法。如果输入特征是一维的[x1]变量,我们把它变成二维的一个方法是把输入特征转化为[x1,2x21],定义这种特征映射的函数就称之为相似性函数Φ(x)。这样在原来低维度计算相似性的运算x(i)Tx(j),就可以转换为高纬度空间里进行相似性运算Φ(x(i))TΦ(x(i))。
核函数K(x(i),x(j))和相似性函数Φ(x)的关系:
相似性函数是特征的映射函数,起到转换的作用。而核函数是特征向量的内积。经过相似性函数转换后,核函数变成K(x(i),x(j))=Φ(x(i))TΦ(x(i))。
常用核函数
核函数一般和应用场景相关,在不同领域所应用的核函数可能也不相同。但是实际上也有一些通用核函数“万金油”,一般有两种:多项式核函数和高斯核函数。
1、多项式核函数:
2、高斯核函数:
K(x(i),x(j))=exp⎛⎝⎜⎜⎜−(x(i)−x(j))22σ2⎞⎠⎟⎟⎟
如果输入的特征是一维的标量,那么高斯核函数对应的形状就是一个反钟形的曲线,其参数σ控制反钟形的宽度。如下图所示:
由于K(x(i),x(j))=Φ(x(i))TΦ(x(i)),经过合适的数学变换,可得高斯核函数对应的特征转换函数为:
Φ(x)=∑i=0∞exp(−x2)2ii!‾‾‾√xi
前面无限多项的累加器,其物理意义就是把特征向量转换到无限多维向量空间里,即高斯函数可以吧输入特征扩展到无限多维空间里。公式的推导公式会用到泰勒公式。
高斯预测函数=∑i=1maiy(i)K(x(i),x)+b
其中K(x(i),x(j))是高斯核函数,ai只在支持向量对应的样本出不为0.由此可知,预测函数时中心点在支持向量机处的高斯函数的线性组合,其线性组合的系数为aiy(i)。因此,高斯核函数也称为RBF核函数,即反钟形函数的线性组合。
核函数的对比
简单线性核函数K(x(i),x(j))=x(i)Tx(j)
多项式核函数:
高斯核函数K(x(i),x(j))=exp⎛⎝⎜⎜⎜−(x(i)−x(j))22σ2⎞⎠⎟⎟⎟
1、线性核函数:这是最简单的核函数,它直接计算两个输入特征向量的内积。
- 优点:简单高效,结果易解释,总能生成一个最简洁的线性分割超平面
- 缺点:只适用线性可分的数据集
2、多项式核函数:通过多项式来作为特征映射函数
- 优点:可以拟合出复杂的分割超平面。
- 缺点:参数太多。有γ,c,n三个参数要选择,选择起来比较困难;另外多项式的阶数不宜太高否则会给模型求解带来困难。
3、高斯核函数:
- 优点:可以把特征映射到无限多维,并且没有多项式计算那么困难,参数也比较好选择。
- 缺点:不容易解释,计算速度比较慢,容易过拟合。
核函数的选择
1、最一般的选择原则是针对数据量很大的时候,可以选择复杂一点的模型。虽然复杂模型容易过拟合,但由于数据量很大,可以有效弥补过拟合问题。如果数据集较小选择简单点的模型,否则很容易过拟合,此时特别要注意模型是否欠拟合,如果欠拟合可以增加多项式纠正欠拟合。
2、根据样本量m和特征量n进行选择:
- 特征相比样本较大(如m=10~1000,n=10000):选逻辑回归或者线性函数SVM
- 特征较少,样本量中(如m=10~10000,n=1~1000):选择高斯SVM
- 特征量少,样本多(如m=50000+,n=1~1000):选多项式或高斯SVM
原文链接:SVM支持向量机原理及核函数
转载请注明出处!
相关阅读
编译原理——一个编译器的各个步骤的介绍
一个编译器的结构分为分析部分(编译器的前端)和综合部分(编译器的后端)。
编译器的前端:把源程序分解成为多个组成要素,并在这些要素之
防火墙技术原理
一、防火墙的概念
防火墙(Firewall),也称防护墙,是由Check Point 创立者Gil Shwed于1993 年发明并引入国际互联网(US5606668(A)1993-12-
淘宝的搜索排名规则是什么?展现原理是什么?
商品在淘宝搜索的排名前后是决定商品的展示多少的,当买家搜索了商品的相关关键词之后,就可以根据综合、价格、信用和价格四个不同的
直通车页面推广原理及相关知识
很多淘宝网店卖家在升钻之后往往会想到用直通车进行推广,但是在开车之前你一定要弄懂其基础知识和基础技巧,避免因不懂而造成金钱和
iOS AOP开发框架Aspects原理
前言整理了下AOP相关的东西,AOP则是针对业务处理过程中的切面进行提取,它所面对的是处理过程中的某个步骤或阶段,以获得逻辑过程中各