机器学习教程 之 支持向量机:模型篇5–向量机的软间隔拓展
支持向量机是机器学习领域里最强的几种分类器之一,被广泛的运用于各种分类回归问题,如果不考虑集成学习算法以及近几年出现的深度学习算法,支持向量机的性能可以说是在学习领域具有统治地位,在一些中小型的数据集上它的性能甚至能够超过一些深度学习网络。其基本原理相当简单,但是模型的求解和优化却十分复杂,很难描述清楚,这里我会一步一步,尽我所能分章节的将它总结完善
模型篇
· 支持向量机:模型篇1–支持向量与间隔
· 支持向量机:模型篇2–支持向量的拉格朗日对偶
· 支持向量机:模型篇3–对偶问题的求解: SMO算法
· 支持向量机:模型篇4–核函数与非线性优化
· 支持向量机:模型篇5–向量机的软间隔拓展
代码篇
· 支持向量机:代码篇1-基于CVXPT优化函数求解
· 支持向量机:代码篇2-基于SMO算法求解
在前面几篇博客的讨论中,我们将向量机从原始问题转换到了对偶问题,再使用高效的SMO算法求解,还引入了核函数将模型拓展到了非线性的情况。
在上一篇博客的结尾处,提到了一个问题,那就是核函数的具体形式我们其实是无法得知的,只能尝试一些备选的核函数,从中挑出相对较好的一个。其实,在现实任务中,就算选择了一个相对较好的核函数,也很难使得训练样本在特征空间中是完全线性可分的。缓解该问题的一个办法就是允许支持向量机在一些训练样本上出错,从而达到在测试样本上性能提升的目的。在训练集上,未引入软间隔到引入软间隔的训练集分类变化如下
第一篇博客中所说的,支持向量机的形式是要求所有训练样本均满足
上式中
显然,当C无穷大时,为了达到最小化的目标会迫使所有样本均满足约束,则此时软间隔等同于硬间隔。当C取有限值时,则允许一些样本不满足约束。
这里我们提到的
· hinge损失
· 指数损失
· 对率损失
我们可以将引入松弛变量的优化目标简写为
这就是常用的软间隔支持向量机,它的拉格朗日对偶形式为
对比原先的对偶问题我们可以看出,两者唯一的差别就在于对偶变量的约束不同:前者是
到此为止,我们就分五个章节介绍完了基本支持向量机的全部内容,当然在论文中还有很多关于向量机的拓展和改进,笔者学识有限,博文中难免会有错误和不当,欢迎大家的交流与指正