原文链接: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)