SVM解释:一、SVM的整体框架

支持向量机(Support Vector Machine)是一种非常重要的分类方法,大的范畴上讲,属于监督学习。它最早由Vapnik等人在1992年提出,已经发展了近30年。尽管它的训练速度偏慢,但是由于其对复杂非线性数据的强大的建模能力,依然在很多领域,包括手写数字识别,对象识别,基准时间序列预测检验等有着非常广泛的应用。可以说,任何一种二分类的问题都在理论上都可以用SVM解决。

当然,SVM如此强大的原因也要归功于它背后巧妙而又复杂的数学原理,如果没有相关的基础,学习SVM是一件费时费力的事情。和机器学习中那些相对简单的分类算法不同,学习SVM的过程是非常浩繁的。这一点从我写的这个SVM的学习笔记就能看出来:我前后一共用了5篇博文。因此也实在难免出错,如果有心的读者发现了我的错误,或者觉得内容有需要改进的地方,还望不吝赐教。

本文类似于一篇引言,我将简单介绍一下什么是SVM,它用来做什么,大致的框架是什么样的,以及我这5篇博文都大概说了些什么。以求在最大程度上给大家,也给未来健忘的我自己一个清晰的概念。

1. SVM是什么

支持向量机(简称SVM)是一种分类算法。它主要应用于二分类问题,通过定位两类数据在几何空间中的边缘,来确定分类器。一个简单的例子如Fig.1所示,黑点和白点分别代表两类数据,SVM的目的就是要找到一个超平面,比如Fig.1中的红色虚线(后面我们会知道,对于线性不可分数据来说,实际要找的是一个曲面),恰好能“最好地”将两类数据分开,这样的超平面(或曲面)就是SVM分类器,找到分类器后,我们自然可以依据测试数据与分类器的位置关系,预测它的分类。比如Fig.1中,如果测试数据在虚线以上,就属于黑点这个类;若在虚线以下,就属于白点这个类。


所以,核心的问题是,什么样的超平面(或曲面)是“最好的”呢?直观感受告诉我们,这样的超平面在两类数据之间,同时应该具备如下两个条件:

  • 最近距离最远:两类数据中,每类数据都有一个点距离该超平面的距离是最近的,而“最好的”超平面要这个两个最近距离的和尽可能的远;
  • 等距:超平面距离两类数据最近的点的距离是相等的;

上面这两个条件也是SVM最基本的原理,就是找到所谓的“最大间隔”。

你看,分类问题现在转换成了一个求“最大”的问题,这显然是一个优化问题,而怎么解这个优化问题(即怎么找到这样“最好的”平面或者曲面)就是SVM的全部内容了。

2. SVM的整体框架

可以看到,SVM虽然牵涉的内容极广,但是基本原理却非常简单,就是解有约束条件下的凸优化问题(约束条件在后面具体学习中会知道)。但是具体实施的时候面临的问题有很多。比如,到底如何解此类优化问题,有没有好用的方法?对于数据线性不可分的情况如何处理等等。所以SVM的学习就是这一个个的问题组成的,我按照顺序推理的思路,针对每类问题分别写有一篇文章,具体地说,目录如下:

一、SVM整体框架 就是本篇博文,我将大致介绍SVM要解决的问题,以及整体框架。讲述框架时,我会简要写出每篇博文主要讲解的问题,以方便读者整体把握SVM。

二、SVM数学基础 我将一些重要的,SVM用到的数学理论在这篇文章中补充,包括凸优化,拉格朗日乘子法和KKT条件,拉格朗日对偶问题等等。这些基础数学知识是理解SVM的必要条件,所以我放到最前面说。

三、线性可分的情况 介绍在数据线性可分的情况下,SVM算法是如何确定最佳分离超平面的。这篇文章中将展现利用拉格朗日对偶转换优化问题的详细过程,以及计算的结果。当然,具体求解拉格朗日对偶问题要用到SMO算法,这又是一大块内容,为了清晰把握SVM的主要脉络,我将SMO算法放到最后最后一篇博文去讲

四、线性不可分的情况 线性可分情况的拓展,通过线性模型和非线性模型两种方法解决了针对线性不可分数据的分类。具体地,这两种方法分别为:(1)加入松弛变量和惩罚因子;(2)核函数。

五、SMO算法 详细解释了SMO算法是如何求解SVM中最重要的拉格朗日对偶问题,这算是对之前博文的补充。

下面我用一张简图,大致表示出SVM的主体思路:


好了,从下一篇博客开始,我将正式开始介绍SVM的具体内容。

猜你喜欢

转载自blog.csdn.net/guoziqing506/article/details/81126423
svm