SVM & Kernel Method
- 前言
网上关于SVM的教程有很多,在此推荐一篇通俗易懂的: http://blog.csdn.net/v_july_v/article/details/7624837,SVM的主要思想是求解能够正确划分训练数据集并且几何间隔最大的分离超平面。这里的间隔最大化指的是硬间隔,并且考虑到几何间隔与函数间隔之间的关系以及最大/最小化目标函数的转换,可以将其转化为如下等价的最优化问题:
minw,b12∥∥w2∥∥s.t.yi(w⋅xi+b)≥1 m i n w , b 1 2 ‖ w 2 ‖ s . t . y i ( w ⋅ x i + b ) ≥ 1
而对于线性不可分(近似线性可分)数据则需要改成软间隔最大化,具体地,就是为每个样本引进一个松弛变量 ξi≥0 ξ i ≥ 0 ,使函数间隔间隔加上松弛变量大于等于1 ,这样约束条件变为:
s.t.yi(w⋅xi+b)≥1−ξiξi≥0 s . t . y i ( w ⋅ x i + b ) ≥ 1 − ξ i ξ i ≥ 0
同时,对每个松弛变量支付一个代价 ξi ξ i ,目标函数就变成为:
12∥∥w2∥∥+C∑i=1Nξi 1 2 ‖ w 2 ‖ + C ∑ i = 1 N ξ i
这里,C>0称为惩罚参数,C值大时对误分类的惩罚增大,过大时容易造成过拟合。直观地来看,soft-margin允许一些样本点离分类面的函数间隔可以比1小,这意味着放弃了对这些点的精确分类,对于分类器是种损失,但好处是分类器不必向这些离群点移动从而几何间隔会更大,因此从另一种角度来看,目标函数中的 12∥∥w2∥∥ 1 2 ‖ w 2 ‖ 可以看作L2正则项,而 ∑Ni=1ξi ∑ i = 1 N ξ i 可以看作最小化训练集的损失,即经验风险。再把两个约束不等式结合起来就变成了hinge loss了,即 ξi=(1−yi∗f(xi))+ ξ i = ( 1 − y i ∗ f ( x i ) ) + ,其中 f(xi)=w⋅xi+b f ( x i ) = w ⋅ x i + b ,下标’+’表示函数max(0,x)。当 yi∗f(xi)>1 y i ∗ f ( x i ) > 1 即 xi x i 的margin>1,此时损失为0,否则损失是 1−yi∗f(xi) 1 − y i ∗ f ( x i ) .
最后我们将原问题转换为对偶问题可以大大减少参数个数更加容易求解,并且自然地引入核函数,进而推广到非线性分类问题。具体的,对于软间隔最大化,原问题中的参数为 w,b和ξi w , b 和 ξ i ,其中w是一个向量,其分量个数等于训练样本数据特征维度。而利用拉格朗日函数转化成对偶问题后参数为 αi α i (最后求解出来的支撑向量对应的 α∗i>0 α i ∗ > 0 ),其个数与训练样本个数相等,实际应用中训练数据的个数往往比其特征维度要少得多。另一个好处就是对偶问题中目标函数中出现的训练样本间的内积 xi⋅xj x i ⋅ x j 可以用核函数 K(xi,xj)=ϕ(xi)⋅ϕ(xj) K ( x i , x j ) = ϕ ( x i ) ⋅ ϕ ( x j ) 来代替,其基本思想就是通过一个非线性变换将输入空间(欧氏空间或离散集合)对应于一个特征空间(希尔伯特空间),是的输入控件中的超曲面模型对应于特征空间中的超平面模型(SVM)。这样分类问题的学习任务通过在特征空间中求解线性支持向量机就可以完成。
最后我们知道SVM的学习可以形式化为求解凸二次规划问题,但是当训练样本容量很大时传统的求解二次规划算法往往变得非常低效,这时可采用一种启发式算法—序列最小最优化(SMO)算法,其基本思路是:如果所有变量的解都满足此最优化问题的KKT条件,那么这个最优化问题的解就得到了,因为KKT条件是该最优化问题的充要条件。否则,选择两个变量,固定其他变量,针对这两个变量构建一个二次规划问题,这个二次规划问题关于这两个变量的解应该更接近原始二次规划问题的解,因为这会使得原始二次规划问题的目标函数值变得更小。重要的是,这时子问题可以通过解析方法求解,这样可以大大提高真各个算法的计算速度。
下面我们要说的是核方法不仅仅可以应用到SVM,其基于这样一个假设:“在低维空间中不能线性分割的点集,通过转化为高维空间中的点集时,很有可能变为线性可分的”,即引入kernel trick:在高维度中向量的内积通过低维度的点的核函数就可以计算了。 - Kernelize Logistic Regression
- Kernelize LDA(FDA)
https://en.wikipedia.org/wiki/Kernel_Fisher_discriminant_analysis - Kernelize PCA
https://zhuanlan.zhihu.com/p/21583787