支持向量机
机器学习
1. 任务
给定训练集:
T=(x1,y1),(x2,y2),...,(xn,yn)
其中xi为特征向量(实例);yi为类标记:yi=±1。
目标是寻找一个分离超平面将实例分到不同类。
2. 线性可分支持向量机
模型:分离超平面:
w⋅x+b=0
分类决策函数:
f(x)=sign(w⋅x+b)={+1,−1,if w⋅x+b≥0if w⋅x+b<0
策略:寻找能将两类数据正确划分且间隔最大的分离超平面。
算法:凸二次规划。
3. 间隔
在超平面w⋅x+b=0 确定的情况下,|w⋅x+b| 能够表示点x到超平面的距离,而通过观察w⋅x+b 的符号与类标记y的符号是否一致可判断分类是否正确。所以,可以用y(w⋅x+b)的正负性来表示分类的正确性。
超平面(w,b)关于样本点(xi,yi)的函数间隔:
γi^=yi(w⋅xi+b)
所有样本点函数间隔的最小值,为超平面(w,b)关于训练数据集T的函数间隔:
γ^=mini=1,...,Nγi^
函数间隔可以表示分类预测的正确性及确信度。需要对超平面的法向量加些约束,如规范化,||w||=1,使得间隔是确定的,这时函数间隔变为几何间隔。
超平面(w,b)关于样本点(xi,yi)的几何间隔:
γi=γi^||w||=yi(w||w||⋅xi+b||w||)
所有样本点几何间隔的最小值,为超平面(w,b)关于训练数据集T的几何间隔:
γ=mini=1,...,Nγi
如果||w||=1,那么函数间隔和几何间隔相等,如果超平面参数w和b成比例变化(超平面没有改变),函数间隔也按此比例变化,而几何间隔不变。
4. 最大间隔分离超平面
定理:线性可分训练数据集的最大间隔分离超平面是存在且唯一的。
将问题表示为约束优化:
maxw,bγs.t.yi(w||w||⋅xi+b||w||)≥γ,i=1,2,⋯,N
或
maxw,bγ^||w||s.t.yi(w⋅xi+b)≥γ^,i=1,2,⋯,N
函数间隔对求解无影响,取γ^=1,上式等价于:
minw,b12||w||2s.t.yi(w⋅xi+b)−1≥0,i=1,2,⋯,N
求得最优解w∗,b∗ 得到分离超平面 w∗⋅x+b∗=0
分类决策函数 f(x)=sign(w∗⋅x+b∗)
5. 支持向量和间隔边界
支持向量是使yi(w⋅xi+b)−1=0成立的点。

对yi=+1的正例点,支持向量在超平面H1:w⋅x+b=+1上;
对yi=−1的负例点,支持向量在超平面H2:w⋅x+b=−1上。
H1和H2称为间隔边界,H1和H2之间距离称为间隔,等于2||w||。
在决定分离超平面时只有支持向量起作用,所以支持向量机是由很少的“重要的”训练样本确定。
6. 对偶算法
为了求解线性可分支持向量机的最优化问题,应用拉格朗日对偶性,通过求解对偶问题,得到原始问题的最优解。这样做的优点在于:
1. 对偶问题往往更容易求解;
2. 自然引入核函数,进而推广到非线性分类问题。
构建拉格朗日函数:
L(w,b,α)=12||w||2−∑i=1Nαiyi(w⋅xi+b)+∑i=1Nαi
原始问题:
minw,bmaxαi≥0L(w,b,α)
maxαi≥0保证了约束条件成立。
对偶问题:
maxαi≥0minw,bL(w,b,α)
(1)求minw,bL(w,b,α)
∇wL(w,b,α)=w−∑i=1Nαiyixi=0∇bL(w,b,α)=∑i=1Nαiyi=0
得:
w=∑i=1Nαiyixi∑i=1Nαiyi=0
代入拉格朗日函数:
L(w,b,α)=12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)−∑i=1Nαiyi⎛⎝(∑j=1Nαjyjxj)⋅xi+b⎞⎠+∑i=1Nαi=−12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)+∑i=1Nαi
即:
minw,bL(w,b,α)=−12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)+∑i=1Nαi
(2)求minw,bL(w,b,α)对α的极大
maxαs.t.−12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)+∑i=1Nαi∑i=1Nαiyi=0αi≥0,i=1,2,⋯,N
等价于:
minαs.t.12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)−∑i=1Nαi∑i=1Nαiyi=0αi≥0,i=1,2,⋯,N
这便是第4节中原始问题的对偶问题。可以通过SMO算法求解α∗,再根据KKT条件求解w∗,b∗。
w∗=∑i=1Nα∗iyixib∗=yj−∑i=1Nα∗iyi(xi⋅xj)
其中j为使得α∗j>0的下标。
SMO算法是SVM学习的一种快速算法,其特点是不断将原二次规划问题分解为只有两个变量的二次规划问题,并对子问题进行解析求解,直到所有变量满足KKT条件。
7. 软间隔最大化
线性不可分意味着某些样本点(xi,yi)不能满足函数间隔大于等于1,的约束条件,可以对每个样本点(xi,yi)引进一个松弛变量ξi≥0,使函数间隔加上松弛变量大于等于1。
线性不可分的线性支持向量机的学习问题变成下凸二次规划问题(原始问题):
minw,bs.t.12||w||2+C∑i=1Nξiyi(w⋅xi+b)≥1−ξi,i=1,2,⋯,Nξi≥0,i=1,2,⋯,N
对偶问题:
minαs.t.12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)−∑i=1Nαi∑i=1Nαiyi=00≤αi≤C,i=1,2,⋯,N
解为:
w∗=∑i=1Nα∗iyixib∗=yj−∑i=1Nα∗iyi(xi⋅xj)
其中j为使得0<α∗j<C的下标。b的解不唯一,可以取所有符合条件的样本点平均值。
8. 合页损失函数
第7节中的原始问题等价于:
minw,b∑i=1N[1−yi(w⋅xi+b)]++λ||w||2
第一项为经验损失,第二项为正则化项(带松弛变量的SVM自带L2正则化)。
L(y(w⋅x+b))=[1−yi(w⋅xi+b)]+称为合页损失函数。
[z]+={z,0,z>0z≤0
即,当样本点被正确分类且函数间隔yi(w⋅xi+b)大于1时,损失为0,否则损失是1−yi(w⋅xi+b)。
9. 核技巧
核函数定义:设χ是输入空间,又设H为特征空间,如果存在一个从χ到的映射
ϕ(x):χ→H
使得对所有x,z∈χ,函数K(x,z)满足
K(x,z)=ϕ(x)⋅ϕ(z)
则称K(x,z)为核函数,ϕ(x)为映射函数,式中ϕ(x)⋅ϕ(z)为ϕ(x)和ϕ(z)的內积。
核技巧的想法是,在学习与预测中只定义核函数K(x,z)而不显式地定义映射函数ϕ。
10. 核技巧应用在支持向量机
在处理线性不可分问题时,需要将原空间非线性可分问题变成特征空间的线性可分问题。即:将x映射为ϕ(x)。
minαs.t.12∑i=1N∑j=1NαiαjyiyjK(xi,xj)−∑i=1Nαi∑i=1Nαiyi=00≤αi≤C,i=1,2,⋯,N
只需要定义核函数K(xi,xj)而不用显式地定义映射函数ϕ(x)。核函数的价值在于它虽然将特征进行从低维到高维的转换,但在低维上进行计算,而将实质上的分类效果(利用了内积)表现在了高维上,这样避免了直接在高维空间中的复杂计算,真正解决了SVM线性不可分的问题。