一、SVM
SVM:支持向量机,即用不多的几个向量(二维是点)撑起分类界面,如图:
固定间隔为1,目标是让几何间隔越大越好(类分得越开越好),即找出最小的||w||。这里间隔定义为:|g|=y*(w'x+b),几何间隔定义为:|g|/||w||(即点到直线的距离)。为方便运算,把w的二范式平方(即权重平方和),最后就把SVM转变为二次规划问题:
解规划问题,自然想到拉格朗日乘子法,定义拉格朗日函数:
此式对w求偏导,便得最小w(a是一个稀疏向量,非零项对应的x为支持向量):
因此判别函数便出来了:
将测试的点x带入上式,与训练的点xi算内积,得出的结果大于1便是+类,小于1便是-类。
以上为理想情况,如果出现利群点在俩间隔内,还用上式将出现不可分类问题。解决过拟合要加正则,解决不可分类要加松弛变量,松弛变量前乘上惩罚因子c,如下式:
如式所示:间隔由[-1,1](硬间隔)变成了[-(1-ξ),(1-ξ)](软间隔)。由此总结出:SVM即软间隔分类器,测试时只要将点x代入f(x)公式,与训练点xi算内积,结果大于1-ξ则为+类,小于-1+ξ则为-类。
注:为求系数向量a,将w0和w代入拉格朗日函数L(a,w0,w)得对偶表达式:
满足限制条件:
解对偶问题仍是二次规划,变量N,约束N+1,当N较大时对偶问题复杂度高于原问题;当维数D较大时可用核方法复杂度低于原问题。
二、解决线性不可分——核函数(向更高维映射计算高维内积)
SVM在两群点线性可分时能找到分界超平面,如果两类点本来就线性不可分,就要将x映射到更高维得到x',以在更高维线性可分。于是内积运算变成:
这里xi'和x'都不知道,而且向高维映射容易出现维度灾难。如何在已知xi和x的基础上得到xi'和x'的内积呢?核函数实现了此功能,低维输入高维输出。
等价于内积运算,因此只要出现内积的地方用核函数代替就好了。
总结:SVM即加入核方法的软间隔线性分类器。
三、泛化的线性模型(GLM):
多项式基:
径向基(RBF,平移不变基):
图例如下:
四、典型的核函数(使用方法:将内积运算替换为核函)
1.多项式核
2.RBF核(平移不变核/高斯核)
为带宽,带宽太小会过拟合,太大则会欠拟合。
3.Sigmoid核
4.余弦相似度核
5.字符串核
6.金字塔匹配核(词袋模型,加权直方图交)
7.概率乘积核
8.Fisher核