所以燃

Machine Learning --- SVM & Kernel Trick & GLM

一、SVM

SVM:支持向量机,即用不多的几个向量(二维是点)撑起分类界面,如图:

QQ20131112210213_thumb

固定间隔为1,目标是让几何间隔越大越好(类分得越开越好),即找出最小的||w||。这里间隔定义为:|g|=y*(w'x+b),几何间隔定义为:|g|/||w||(即点到直线的距离)。为方便运算,把w的二范式平方(即权重平方和),最后就把SVM转变为二次规划问题:

image_thumb

解规划问题,自然想到拉格朗日乘子法,定义拉格朗日函数:

image3_thumb

此式对w求偏导,便得最小w(a是一个稀疏向量,非零项对应的x为支持向量):

因此判别函数便出来了:

image14_thumb

将测试的点x带入上式,与训练的点xi算内积,得出的结果大于1便是+类,小于1便是-类。

以上为理想情况,如果出现利群点在俩间隔内,还用上式将出现不可分类问题。解决过拟合要加正则,解决不可分类要加松弛变量,松弛变量前乘上惩罚因子c,如下式:

image20_thumb

如式所示:间隔由[-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',以在更高维线性可分。于是内积运算变成:

image34_thumb

这里xi'和x'都不知道,而且向高维映射容易出现维度灾难。如何在已知xi和x的基础上得到xi'和x'的内积呢?核函数实现了此功能,低维输入高维输出。

image28_thumb

等价于内积运算,因此只要出现内积的地方用核函数代替就好了。

总结:SVM即加入核方法的软间隔线性分类器

 

三、泛化的线性模型(GLM):

image49_thumb

多项式基:

image56_thumb

径向基(RBF,平移不变基):

图例如下:

image66_thumbimage70_thumb

 

四、典型的核函数(使用方法:将内积运算替换为核函)

1.多项式核

image39_thumb如:

image75_thumb

image87_thumb

2.RBF核(平移不变核/高斯核)

image90_thumb

image99_thumb

为带宽,带宽太小会过拟合,太大则会欠拟合。

3.Sigmoid核

image104_thumb

4.余弦相似度核

image114_thumb,在处理文本分类时常用。

5.字符串核

image119_thumb

6.金字塔匹配核(词袋模型,加权直方图交)

image126_thumb

7.概率乘积核

image130_thumb

8.Fisher核

image134_thumb

 

posted on 2013-11-12 23:43  Jizhiyuan  阅读(1666)  评论(1)    收藏  举报

导航