支持向量机(support vector machine, SVM)

Posted 聪的2018迭代日记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了支持向量机(support vector machine, SVM)相关的知识,希望对你有一定的参考价值。

支持向量的思想

给定一个样本集,分类学习最基本的想法就是基于训练集D在样本空间中找一个超平面,将不同类别的样本分开,但是能将训练样本分开的划分超平面可能有很多种。

划分超平面可以用以下方程描述:

ω为法向量,决定了超平面的方向,b为位移量。

样本中任意点支持向量机(support vector machine, SVM)到超平面的距离可以写为:

支持向量机(support vector machine, SVM)

距离超平面最近的几个训练样本点使式子:

支持向量机(support vector machine, SVM)

的等号成立。它们被称为“支持向量”(support vector)。距离为:

支持向量机(support vector machine, SVM)

这个距离被称为“间隔”(margin)

支持向量机(support vector machine, SVM)

欲找到“最大间隔"的划分超平面,即为:

支持向量机(support vector machine, SVM)

可以重写成:

支持向量机(support vector machine, SVM)

这就是支持向量机的基本模型。

对偶问题

我们求解这个最小值,可以使用一些优化计算包求解,但是还可以使用拉格朗日乘子法得到其“对偶问题”。

支持向量机(support vector machine, SVM)

支持向量机(support vector machine, SVM)

支持向量的一个重要性质就是,训练完成后,大部分的训练样本都不需要保留,最终模型仅与支持向量有关。

那么如何求解呢?这是一个二次规划的问题:这个问题的规模正比于训练样本数,这会在实际任务中找出很大的开销,为了避开这个障碍,人们提出了很多高效的算法,SMO是其中的一个代表。

核函数

在现实任务中,有很多样本空间是不能线性可分的,对这样的问题,可将样本从原始空间映射到一个高维空间。

支持向量机(support vector machine, SVM)表示支持向量机(support vector machine, SVM)映射后的特征向量,在特征空间中,超平面就是:

支持向量机(support vector machine, SVM)

于是有:

支持向量机(support vector machine, SVM)

其对偶问题为:

支持向量机(support vector machine, SVM)

支持向量机(support vector machine, SVM)

求解这个问题通常是非常困难的,因为涉及到一个问题,那就是:支持向量机(support vector machine, SVM)的求解非常困难,于是可以设想这样一个函数:

支持向量机(support vector machine, SVM)

这个函数就是核函数。

于是对偶问题可以重写成:

支持向量机(support vector machine, SVM)

求解得到:

支持向量机(support vector machine, SVM)

模型的最优解可以通过训练样本的核函数展开,这一展开式亦称为“支持向量展式”。

核函数的定义

支持向量机(support vector machine, SVM)

只要一个对称函数所对应的核矩阵半正定,它就能作为核函数使用。

支持向量机(support vector machine, SVM)

软间隔与正则化

所有的样本都必须被超平面正确划分被称为“硬间隔”,而软间隔是允许某些样本不满足,如下图中的红色:

支持向量回归(SVR)

当且仅当预测函数与y之间有一个间隔带,落入其中的样本不计算损失,这样的回归模型就是支持向量回归。

核方法

通过引入核函数,将线性学习器扩展为非线性学习器。

以上是关于支持向量机(support vector machine, SVM)的主要内容,如果未能解决你的问题,请参考以下文章

Spark MLlib模型 支持向量机Support Vector Machine

支持向量机(SVM:support vector machine)

支持向量机(support vector machines, SVM)

机器学习之支持向量机(Support Vector Machine)(更新中...)

浅谈支持向量机(Support Vector Machine)

分类问题第二弹来袭:支持向量机(Support Vector Machine)