支持向量机综述

关键词:间隔最大化、无约束优化问题、有约束优化问题、凸函数、仿射函数、凸二次规划问题、希尔伯特空间、拉格朗日乘子法、拉格朗日对偶函数、KKT 条件

研究思路

支持向量机(support vector machines,SVM)是一种二分类模型。
1、硬间隔最大的线性可分的支持向量机
前提:数据线性可分。与感知机不同的是,感知机只要找到一个超平面将训练数据集线性可分就可以了,但是 SVM 得到的分离超平面具有更好的泛化能力。

原始问题是一个有约束最优化问题,我们引入了拉格朗日函数和非负的拉格朗日乘子,将原问题表达成一个有约束的
$$\min_{w,b} \max_{\alpha} \quad L(w,b,\alpha)$$
问题。

这个问题要先对 $\alpha$ 求导不方便,但是我们有拉格朗日对偶性的保证,可以转换为对偶问题:
$$ \max_{\alpha}\min_{w,b} \quad L(w,b,\alpha)$$
先对 $w$ 和 $b$ 求导,可以得到比较好的表达式。将对 $w$ 和 $b$ 求导代回 $L(w,b,\alpha)$ 可以得到一个只关于 $\alpha$ 的表达式,求解这个最优化问题有专门的算法(SMO),于是就得到原问题的最优解。

SVM 解决二分类问题大致就是上面的流程,绕来绕去的。

2、软间隔最大化的线性支持向量机
允许一些点在两个间隔边界之间,获得更好的泛化能力
3、非线性支持向量机

之间我们研究的问题都假设数据集线性可分,线性可分即利用线性模型就可以进行分类。

对于不能使用线性模型分类的训练数据,我们基于“低维空间线性不可分,高维空间线性可分”的思路,把训练数据集中的元素使用非线性变换从低维映射到高维,将非线性问题转换为线性问题(线性问题比非线性问题好求解),就可以利用“软间隔最大化的线性支持向量机”的思路来求解。

利用到的数学思想是“等价转换”,再叙述一遍就是:
非线性可分问题不好求解,通过非线性映射转换成好求解的线性可分问题。

但是这又带了一个问题,“高维空间中线性可分”,但高维空间中的计算往往是困难的,因此才有了核技巧,即我们通过在低维空间中计算,就可以得到在高维空间中计算得到的结果,核函数帮我们减轻了计算量。

通过核技巧,我们不用找到“非线性变换”,确得到了训练数据集通过“非线性变换”在高维中线性可分问题同样的效果。

4、核函数

经过损失函数的定义,拉格朗日乘子法的推导,我们发现,SVM 的决策函数可以理解为只依赖于输入和样本内积的一种映射,这种内积计算使得 SVM 可以利用核技巧解决线性不可分的情况。核技巧的想法是,在学习和预测中只定义核函数,而不显式的定义映射函数。映射函数将输入空间映射到特征空间,而特征空间一般是高维的,甚至是无穷维的。

我们绕过了从低维度到高维度的映射函数具体的求解,因为我们只需要高维度空间的内积,所以核函数就一步到位地做了这件事情。
线性支持向量机引入了松弛变量和对应的惩罚参数 $C$。$C$ 越大,对误分类惩罚越大,支持向量个数越多,模型越复杂。

什么是核函数?

核函数和映射没有关系。核函数是计算高维空间中的内积的一种简便的方法。所以,一些介绍核函数的章节会被命名为核技巧。

(1)SVM 的本质是一个有条件的最优化问题,它在推导的过程中,最终可以转化成下面的表达式。
(2)在低维空间中计算,得到高维空间中我们需要的结果;
(3)核函数是一种技巧,并非 SVM 专用。

5、序列最小最优化算法

序列最小最优化算法

$$
\begin{aligned}
\min_\alpha \quad& \frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_i\alpha_jy_iy_jK(x_i,x_j) - \sum_{i=1}^{N}\alpha_i\
{\rm s.t.} \quad& \sum_{i=1}^{m}\alpha_i y_i = 0\
&0 \le \alpha_i \le C,i=1,2,\cdots,N
\end{aligned}
$$

猜你喜欢

转载自www.cnblogs.com/liweiwei1419/p/9753671.html