最大间隔分类器
对线性可分的数据集而言,分类面的选择是无穷多的。希望找到一个离数据点最远的决策面,即SVM。SVM是基于向量空间的机器学习方法,从决策面到最近数据点的距离决定了分类器的间隔
SVM求解
对于一个超平面的决策边界而言
一个点到决策边界的欧氏距离是(y取±1)
r=y∣∣w∣∣wTx+b
由于数据点可以放大,不妨要求所有点的函数间隔至少为1
,并且至少有一个点的函数间隔为1
min∣wTxi+b∣=1
由于对称性,应当存在两个点xa,xb使得
wTxa+b=1wTxb+b=−1
也就是说
wT(xa−xb)=2
这意味着
∣∣xa−xb∣∣=∣∣w∣∣2
问题就转化为了使得∣∣w∣∣最小,也即希望∣∣w∣∣2最小(去除根号),即求解一个二次函数优化问题
Note
希望找到向量w和实数b使得对于所有的样例点(xi,yi)都有
yi(wTxi+b)≥1 并且使得下式取到最大值
求解这个问题可以使用拉格朗日对偶。对于每个不等式约束
yi(wTxi+b)≥1
都引入一个拉格朗日因子αi,构造拉格朗日函数
L(w,b,α)=21∣∣w∣∣2−i∑αi[yi(wTxi+b)−1]
那么原问题的求解等价于求解
αmaxw,bminL(w,b,α)
为了求解它,将拉格朗日函数对w,b求偏导并令其为零
∂w∂L=w−i∑αiyixi=0
∂b∂L=i∑αiyi=0
代入原问题,等价于求解
αmaxi∑αi−21i,j∑αiαjyiyj(xiTxj)
求解得到α后,欲得到参数只需要
w=i∑αiyixib=yk−wTxk
其中(xk,yk)是某一组使得yk(wTxk+b)≥1取等号的样例。分类函数就是
f(x)=sign(wTx+b)
或是直接用α写为
Note
f(x)=sign(i∑αiyixiTx+b)
分类函数的符号决定了数据点的归属
软间隔SVM
如果由于误差的原因,训练数据并不是线性可分的,可以允许决策间隔犯一些错误。可以引入松弛变量ξi,一个非零的ξi表示对xi未满足间隔需求下的惩罚量。优化的问题变为
Note
希望找到向量w,实数b和非负向量ξ,使得
yi(wTxi+b)≥1−ξi 并且使得下式最小
wTw+Ci∑ξi
其中的参数C是用于调节过拟合的正则项
非线性SVM
如果训练数据本身就不是线性可分的,可以考虑将数据映射到更高维的空间,并尝试使用线性分类。注意到原始的分类函数含有内积项
f(x)=sign(i∑αiyixiTx+b)
只需要将低维的内积xTx换为高维的内积即可
K(xi,xj)
K称为核函数,它形式上应该是映射到的高位向量的内积
K(xi,xj)=φ(xiT)φ(xj)
不过实际上不需要真的做这个映射。有Mercer Theorem
只需要找到一个核函数使得数据线性可分就行了