一. 引语
作为感知机(perceptron)的重要发展,在早期的机器学习领域,SVM绝对算的上是一个巨大的飞跃,相比于支持perceptron的无脑迭代(即不知道是否一定收敛)以及结果的随机性(即收敛结果的随机性),SVM以其精巧的设计和优良的模型特性使得它在问世之后便立即成为及其学习界的宠儿。
不管是从模型的设计出发,还是从模型的求解以及模型的改进,SVM都算的上是机器学习模型的一个楷模,接下来我将从几个方面谈一下我的体会,浅析一下SVM的数学之美。
二. 简约有效的建模思想
继承于perceptron,SVM的根本出发点在于找到一个合适的分类面,将正反两类样本划分开来,而且分类面也是简单的线性分类面。
可以说,相比于perceptron,SVM在最初的设计出发点仅仅是为了克服我们上面指出的perceptron的其中一点缺陷,也就是结果的随机性,它试图不仅仅要得到一个可行的结果,更重要的事,这个结果还必须具备有优良的特性,这个优良的特性,用SVM的观点来看,也是十分简洁的约束,那就是找到一个分类面,让这个分类面距离正负样本点都足够远,也就是最大间隔,这是十分直观的。
三. 简单的模型构建
得到了优化目标,那么就要找到对于优化目标的数学描述,这个其实也不是很难。
函数间距和几何间距用的基本上都是初中的知识,我个人觉得即使是初中生也会比较容易地得到优化目标的数学模型。
然后就是老套路,如果直接进行优化,那就是偏导一步到位法或者是梯度下降迭代法,牛人就用牛顿法或者拟牛顿法。
但是这个问题是带约束的问题,那么我们就要请出拉格朗日大仙,将之转化为无约束的问题,也就是拉格朗日函数:
$$L(w,b,alpha ) = {1 over 2}{left| w ight|^2} - sumlimits_{i = 1}^N {{alpha _i}({y_i}(wx + b) - 1} )$$
四. 巧妙的模型的求解——拉格朗日对偶性
我们大可以直接去求上面的模型,但是可能会大费周章,考虑将求解过程进行拆解。
首先,我们考虑原问题的一个等价问题,也就是:
$$mathop {min }limits_{w,b} mathop {max }limits_alpha L(alpha ,w,b)$$
进一步,得到对偶问题,也就是它的下界:
$$mathop {max }limits_alpha mathop {min }limits_{w,b} L(alpha ,w,b)$$
五. 为什么说对偶化会简化运算
我们试着直接去求原问题的解析解,那么可能是及其复杂的(反正我是没啥好办法)
但是按照最优化的一般套路,我们在无法求得一个问题的最优解的时候,往往试图寻找它的一个下界,如果这个下界恰好还是一个下确界,那么问题就转化为子问题的最值问题,我们显然有:
$$mathop {min }limits_{w,b} L(alpha ,w,b) le L(alpha ,w,b) le mathop {max }limits_alpha L(alpha ,w,b)$$
从而我们可以通过求解对偶问题的最值问题来求解原问题。
六. 对偶问题与原问题的关系
刚才我们讲,对偶问题是原问题的一个下界,但是我们也许更关心的是:对偶问题到底是一个平凡下界还是一个确下界?
这个问题要涉及到原问题的凸性。
由于对偶函数是一族关于参数的的仿射函数的逐点下确界,对偶目标一定是凸性的。
但是问题就出在原问题不一定是凸的,我们可以说针对这个特定问题(二次规划型问题)是成立的,但是却不一定时时如此。
但是我们可以有一个结论,那就是如果原问题是凸的,那么我们可以求得最优解,但是如果原问题本身就不是凸的,那么我们也不能保证转化之后的凸优化可以帮助我们求得最优解。
七. SVM的改进——我们的优化目标竟然是最小化方差?
我们注意到,在前面的SVM讨论中,我们一直有一个前提,那就是所有的模式都被正确的分类,否则不论原问题的对偶转化便无法完成。
我们试着让模型进行一点扩展,针对近似线性可分的情况也有较好的适应性,因此我们引入了一个松弛变量$xi $。
但是,我其实不太care这个松弛变量$xi $的引入对原问题到底有多大的影响,我注意到一个神奇的现象,那就是如果我们审视此时优化目标:
$${1 over 2}{left| w ight|^2} + Csumlimits_{i = 1}^N {xi i} $$
如果从一般机器学习模型角度来看的话,那么前一项相当于是正则项,对模型复杂度进行惩罚;而后一项则是经验损失项,而C就是调和参数。
如果我们回头看,我们就会发现,我们在没有考虑错误分类时的优化目标竟然是最小化方差
该怎么理解这一点呢?个人认为可以这样解释:
如果我们不考虑模型会错分模式,那么经验损失为0,在这个前提下我们的最优面就是得到一个尽可能平滑的分类面,这也与直观相符合。