Support Vector Machine (支持向量机)

导读:
●理解SVM的原理和应用场景
●掌握硬间隔最大化SVM的计算过程和算法步骤
线性可分SVM
●理解软间隔最大化SVM的含义
线性支持向量机
●了解核函数的思想

一.理解SVM的原理和应用场景

Support Vector Machine (支持向量机)

上面的两个线性分类器都可以将两类样本分开,显然我们可以画更多的线把样本分开
既然有不止一个可行的线性分类器,那么哪个分类器是最好的?
这里就需要SVM出马了,SVM的目标是寻找一个分类超平面,它不仅能正确的分类每一个样本,并且要使得每一类样本中距离超平面最近的样本到超平面的距离尽可能远,即最大间隔

让最大间隔作为衡量一条决策边界的好还的原因是,如果一条决策边界有最大间隔,那么这条决策边界就具有很好的鲁棒性鲁棒性,相当于增加了一个缓冲地带,再来一个数据集我可以很从容的包容你进行分类不至于分错类别。

二.硬间隔最大化SVM的计算过程和算法步骤

SVM 用数学言语表达为:
给定一批训练样本,假设样本的特征矩阵为X,类别标签为y,取值为+1或者-1,分别代表正样本和负样本.SVM为这些样本寻找一个最优分类超平面,其方程为:
WTX+b=0W^{T}X+b = 0
对于正样本有:
WTX+b0W^{T}X+b ≥ 0
对于负样本有:
WTX+b0W^{T}X+b ≤ 0
统一方程为:
yi(WTX+b)0yi(W^{T}X+b ) ≥ 0
其中 γ=yi(WTX+b)\gamma =yi(W^{T}X+b ) 称为函数距离

第二个要求是超平面离两类样本的距离要尽可能大。根据解析几何中点到平面的距离公式,每个样本点到超平面的距离为:

γ=WTX+bw\gamma =\frac {|W^{T}X+b |} {||w||} ----几何距离
γ=yi(WTX+b)\gamma =yi(W^{T}X+b )----函数距离
γ=yi(WTX+b)w\gamma =\frac {yi(W^{T}X+b )} {||w||} ----几何距离

此处有两个margin可以选,但是因为函数距离可以等比例地缩放w的长度和b的值,这样使得函数距离γ\gamma 的值任意大,
然而几何距离则没有这个问题,因为除上了||wWI|这个分母,所以缩放w和b的时候y的值是不会改变的,它只随着超平面的变动而变动,因此我们选用几何距离作为衡量标准

我们先将这里的间隔设为1,当然,可以设置为5,10或者50,100等,但通过左右消除都可以变成1,所以这里就是用1来作为间隔距离。

那么,几何间隔最大化问题就转化为:
max2wmax \frac {2}{∥w∥}
s.t.yi(WT+b)1,i=1,2,3,...,ms.t. yi(W^{T} + b) ≥ 1 , i = 1,2,3,...,m
等价于
max12w2max \frac {1}{2}∥w∥^{2}
s.t.yi(WT+b)1,i=1,2,3,...,ms.t. yi(W^{T} + b) ≥ 1 , i = 1,2,3,...,m

也就是约束最优化问题的原始问题.

三.软间隔最大化SVM的含义

接着我们需要构造拉格朗日函数:
L(α,w,b)=12w2i=1nαi[yi(WTxi+b)1]L(\alpha ,w,b)=\frac{1}{2}||w||^{2}-\sum_{i=1}^{n}\alpha _{i}\cdot [yi(W^{T}xi + b)-1]

其中,αi\alpha _{i}为拉格朗日的乘子,令P=max(α)L(α,x)P = max( \alpha ) L(\alpha,x)

那么,原始问题等价于:
P=min(x)max(α)L(α,x)P^{*} = min(x)max(\alpha )L(\alpha ,x)
其对偶为:
d=max(α)min(x)L(α,x)d^{*} = max(\alpha )min(x) L(\alpha ,x)
求x=0处时的偏导数,并带入上面公式,可得:
Lw=0w=i=1nαiyixi\frac{\partial L}{\partial w}=0 ---w=\sum_{i=1}^{n}\alpha iyixi
Lb=0i=1nαiyi=0\frac{\partial L}{\partial b}=0 ---\sum_{i=1}^{n}\alpha iyi=0

代入拉格朗日函数中,可求得:

L(α,w,b)=12i,j=1nαiαjyiyjxTxj+i=0nαiL(\alpha ,w,b)=-\frac{1}{2}\sum_{i,j=1}^{n}\alpha _{i}\alpha _{j}yiyjx^{T}xj + \sum_{i=0}^{n}\alpha_{i}


max(i=0nαi12i,j=1nαiαjyiyjxTxj)max (\sum_{i=0}^{n}\alpha_{i}-\frac{1}{2}\sum_{i,j=1}^{n}\alpha _{i}\alpha _{j}yiyjx^{T}xj )
s.t.αi0,i=1,2,3,...,ns.t. \alpha_{i}≥ 0 , i = 1,2,3,...,n
i=1nαiαj=0\sum_{i=1}^{n}\alpha _{i}\alpha _{j}=0

四.核函数

核函数只是用来计算映射到高维空间之后的丙积的一种简便方法,能简化映射空间中的内积运算.
运用的是前面所介绍的向量空间内的内积,但求的不再是面积,而是空间.