SVM

本次学习我们学习关于SVM算法的详细解释,学习如何理解SVM算法,核技巧是SVM算法的核心,我们也会学习什么是核技巧,最后了解SVM算法的求解流程。

注:参考链接如下:
1、(https://blog.csdn.net/fuqiuai/article/details/79483057) 算法理解
2、(https://wenku.baidu.com/view/fa8e7f2eccbff121dd368336.html) svm的数学推导过程
3、(https://blog.csdn.net/bbbeoy/article/details/72468868) 算法过程图

一、算法理解

1、 SVM主要思想:建立一个最小决策超平面,使得该平面两侧距离该平面最近的两类样本(注:若训练数据中这些最近的样本没有发生变化,则训练出来的模型仍是一样的)之间的距离最大化,从而对分类问题提供良好的泛化能力。
2、 SVM(support vector machine)中的支持向量是指:训练样本集中的某些训练点,这些点最靠近分类决策面,是最难分的数据点。
3、 SVM有三种模型:

  • 1) 当训练数据训练可分时,通过硬间隔最大化(完全线性可分),可学习到硬间隔支持向量机,又叫线性可分支持向量机

    $$所有的样本点都要正确划分,并且在这个基础上找到间隔最大的$$
  • 2) 当训练数据训练近似可分时,通过软间隔最大化,可学习到软间隔支持向量机,又叫线性支持向量机

    $$牺牲了在某些点上必须正确划分的限制,来换取更大的分隔间隔。$$
  • 3) 当训练数据训练不可分时,通过软间隔最大化及核技巧(kernel trick),可学习到非线性支持向量机.

4、 核技巧:核函数可以将原始特征映射到另一个高维特征空间中,保证不增加算法复杂度的情况下将完全不可分问题转化为可分或达到近似可分的状态。使得运算仍然是在低维空间进行的,避免了在高维空间中复杂运算的时间消耗。

二、什么是核技巧

1、哲学例子:

用另外一个哲学例子来说:世界上本来没有两个完全一样的物体,对于所有的两个物体,我们可以通过增加维度来让他们最终有所区别,比如说两本书,从(颜色,内容)两个维度来说,可能是一样的,我们可以加上 作者 这个维度,是在不行我们还可以加入 页码,可以加入 拥有者,可以加入 购买地点,可以加入 笔记内容等等。当维度增加到无限维的时候,一定可以让任意的两个物体可分了。

2、几何例子:

原始的输入向量是一维的,0< x <1的类别是1,其他情况记做-1。这样的情况是不可能在1维空间中找到分离超平面的(一维空间中的分离超平面是一个点,aX+b=0)。你用一个点切一下试试?

这就要说到SVM的黑科技—核函数技巧。核函数可以将原始特征映射到另一个高维特征空间中,解决原始空间的线性不可分问题。
继续刚才那个数轴。

如果我们将原始的一维特征空间映射到二维特征空间$X^{2}$和$x$(即:x再乘x),那么就可以找到分离超平面$X^{2}-x=0$。当$X^{2}-x<0$的时候,就可以判别为类别1,当$X^{2}-x>0$的时候,就可以判别为类别0。如下图:

ps:注意横纵坐标,一个为x,另一个为$X^2$

再将$X^2-x=0$映射回原始的特征空间,就可以知道在0和1之间的实例类别是1,剩下空间上(小于0和大于1)的实例类别都是0啦。

利用特征映射,就可以将低维空间中的线性不可分问题解决了。是不是很神奇,这就是特征映射的厉害之处了。核函数除了能够完成特征映射,而且还能把特征映射之后的内积结果直接返回,大幅度降低了简化了工作,这就是为啥采用核函数的原因。

三、支持向量机算法求解流程

详细请参照参考链接2:
1、线性可分就是在约束条件下求解最大距离问题

2、线性不可分就是在线性可分下增加了松弛变量,允许数据在一定程度上对超平面有所偏离,从而求得全局最优解(最大距离)

3、核函数求解问题主要将问题求解转换到低维运算求解

鼓励我一下吧,我会有更多原创的!