支持向量机综述
关键词:间隔最大化、无约束优化问题、有约束优化问题、凸函数、仿射函数、凸二次规划问题、希尔伯特空间、拉格朗日乘子法、拉格朗日对偶函数、KKT 条件
研究思路
支持向量机(support vector machines,SVM)是一种二分类模型。
1、硬间隔最大的线性可分的支持向量机
前提:数据线性可分。与感知机不同的是,感知机只要找到一个超平面将训练数据集线性可分就可以了,但是 SVM 得到的分离超平面具有更好的泛化能力。
原始问题是一个有约束最优化问题,我们引入了拉格朗日函数和非负的拉格朗日乘子,将原问题表达成一个有约束的
问题。
这个问题要先对 \(\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、序列最小最优化算法