预备
适合场景
如果训练输入线性可分,通过应间隔最大化学习得到的线性分类器称为线性可分支持向量机。
假设特征空间上的训练数据集:
T={(x1,y1),(x2,y2),...,(xN,yN)}
其中 xi 表示第i个特征向量, yi∈{+1,−1} 为 xi 的类标记。
学习目标是在特征空间找到一个分离超平面:
w⋅x+b=0
可以将正负样例分开,即正负样例分布在超平面的两侧。
函数间隔和几何间隔
定义超平面关于训练数据集T的函数间隔为超平面
(w,b)
关于T中所有样本点的函数间隔最小值
γ′=min1,2,...,Nγ′i
其中 γ′i=yi(w⋅xi+b)
定义超平面关于训练数据集T的几何间隔为超平面 (w,b) 关于T中所有样本点的几何间隔最小值
γ=min1,2,...,Nγi
其中 γi=yi(w||w||⋅xi+b||w||)
几何间隔的物理意义是指点到超平面的距离,函数间隔则会随着 w 和
构建目标函数
目标是找到能够正确划分训练数据集并且几何间隔最大的分离超平面。直观上面理解就是距离分界面最近的距离最大化。可以表示成如下形式:
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
考虑到以 λ 等比例改变 w 和
minw,b12||w||2
s.t.yi(w⋅xi+b)−1≥0,i=1,2,...,N
根据上式的最优解 w∗ 和 b∗ 可以构建出分离超平面和分类决策函数如下:
w∗⋅x+b∗=0
f(x)=sign(w∗⋅x+b∗)
训练数据集中的样本点中与分离超平面距离最近的样本点称为支持向量,对应于约束条件中的等号,即
yi(w⋅xi+b)−1=0
对应 y={−1,+1} ,支持向量分布在两条超平面上面:
(w⋅xi+b)−1=0
(w⋅xi+b)+1=0
所以SVM分类中只有支持向量对应的实例在分类中起作用,其他实例点并没有作用。
求解的对偶算法
使用拉格朗日对偶性对原始问题求解。首先引入拉格朗日乘子
αi≥0,i=1,2,...N
,构建拉格朗日函数:
L(w,b,α)=12||w||2−∑i=1Nαiyi(w⋅xi+b)+∑i=1Nαi
其中, α=(α1,α2,...,αN)T 称为拉格朗日乘子向量。
原始问题对应的对偶问题如下:
maxαminw,bL(w,b,α)
根据 L(w,b,α) 对于 w 和
minα12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)−∑i=1Nαi
∑i=1Nαiyi=0
αi≥0,i=1,2,...,N
假设 α∗=(α∗1,α∗2,...,α∗N)T 是上面问题的最优解,那么:
w∗=∑i=1Nα∗iyixi
选择一个下标j,使得 α∗j>0 ,可得:
b∗=yj−∑i=1Nα∗iyi(xi⋅xj)
根据KKT互补条件可知, α∗i>0 对应的实例为支持向量。