【原创】机器学习从零开始系列连载(3)——支持向量机
支持向量机
Support Vector Machine
模型原理
超平面的定义如下:
从几何关系上来看,超平面与数据点的关系如下(以正样本点为例):
定义几何距离和函数距离分别如下:
由于超平面的大小对于SVM求解并不重要,重要的是其方向,所以根据SVM的定义,得到约束最优化问题:
现实当中我们无法保证数据是线性可分的,强制要求所有样本能正确分类是不太可能的,即使做了核变换也只是增加了这种可能性,因此我们又需要做折中,允许误分的情况出现,对误分的样本根据其严重性做惩罚,所以引入松弛变量,将上述问题变成软间隔优化问题。
新的优化问题:
如果选择:
那么优化问题变成:
损失函数
损失函数2 —— Hinge Loss
使用hinge loss将SVM套入机器学习框架,让它更容易理解。此时原始约束最优化问题变成损失函数是hinge loss且正则项是L2正则的无约束最优化问题:
下面我证明以上问题(1)和问题(2)是等价的(反之亦然):
到此为止,SVM和普通的判别模型没什么两样,也没有support vector的概念,它之所以叫SVM就得说它的对偶形式了,通过拉格朗日乘数法对原始问题做对偶变换:
从互补松弛条件可以得到以下信息:
C越大表明你越不想放弃离群点
分类超平面越向离群点移动
当以上问题求得最优解后,几何间隔变成如下形式:
它只与有限个样本有关系,这些样本被称作支持向量,从这儿也能看出此时模型参数个数与样本个数有关系,这是典型的非参学习过程。
核方法
上面对将内积用一个核函数做了代替,实际上这种替换不限于SVM,所有出现样本间内积的地方都可以考虑这种核变换,本质上它就是通过某种隐式的空间变换在新空间(有限维或无限维兼可)做样本相似度衡量,采用核方法后的模型都可以看做是无固定参数的基于样本的学习器,属于非参学习,核方法与SVM这类模型的发展是互相独立的。
一些可以应用核方法的模型:
1.SVM
2.Perceptron
3.PCA
4.Gaussian processes
5.Canonical correlation analysis
6.Ridge regression
7.Spectral clustering
在我看来核方法的意义在于:
1、对样本进行空间映射,以较低成本隐式的表达样本之间的相似度,改善样本线性可分的状况,但不能保证线性可分;
2、将线性模型变成非线性模型从而提升其表达能力,但这种升维的方式往往会造成计算复杂度的上升。
往
期
推
荐