【原创】机器学习从零开始系列连载(3)——​支持向量机

支持向量机

Support Vector Machine‍

支持向量机通过寻找一个分类超平面使得(相对于其它超平面)它与训练集中任何一类样本中最接近于超平面的样本的距离最大。虽然从实用角度讲(尤其是针对大规模数据和使用核函数)并非最优选择,但它是大家理解机器学习的最好模型之一,涵盖了类似偏差和方差关系的泛化理论、最优化原理、核方法原理、正则化等方面知识。

模型原理

SVM原理可以从最简单的解析几何问题中得到:

超平面的定义如下:

从几何关系上来看,超平面与数据点的关系如下(以正样本点为例):

定义几何距离和函数距离分别如下:

由于超平面的大小对于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、将线性模型变成非线性模型从而提升其表达能力,但这种升维的方式往往会造成计算复杂度的上升。



1.机器学习原来这么有趣!【第一章】

2.【原创】机器学习从零开始系列连载(1)——基本概念

3.【原创】机器学习从零开始系列连载(2)——线性回归

(0)

相关推荐