机器学习——支持向量机

前言:本篇文章只是简单的对支持向量机(support vecotor machine)简单的介绍,后续文章还会一一进行数学原理推导(其实我也没有想到这篇文章会有这么高的展现量(其实也就几百),所以就打算进一步介绍SVM)。

硬间隔与支持向量
软间隔与正则化,核函数

文章目录

  • 一、支持向量机
  • 二,简单了解SVM
  • 三,SVM的几种简单情况
    • 1.数据线性可分情况
    • 2.数据近似线性可分情况
    • 3.数据线性不可分情况
  • 四.SVM分类器的性能和优缺点
    • 1, 性能
    • 2,优缺点
      • 1)优点
      • 2) 缺点


一、支持向量机


  • 支持向量机(Support Vector Machine, SVM)是一类按***监督学习(supervised learning)方式对数据进行 二元分类 的广义线性分类(generalized linear classifier),其 决策边界是对学习样本求解的最大边距 超平面(maximum-margin hyperplane)

ps:加粗的都是专业名词,感兴趣的话可以了解下。


二,简单了解SVM

  • 基本原理:基于统计学习理论的方法,是一个二分类的问题。

  • 要了解SVM我们要知道超平面这个东西。

  • 超平面:在几何中,超平面指的是比所处空间少一个维度的子空间。

例子:零维的点可以把一维的线分成两部分,一维的线可以把二维的面分成两部分,二维的面可以把三维的体分成两部分。

其实下图中间的那条实现就是我们超平面,但是我个人更喜欢把这种简单的二维二分类的超平面叫做决策边界

机器学习——支持向量机_第1张图片
图片可能看的不是很清楚,其中 w w w是法向量,x也是向量,我会在后续的文章中推导。

至于这两条虚线就是我们的样本中最接近超平面的平行面,我们暂且把这两条虚线的距离叫做 ∣ H 1 H 2 ∣ |H_1H_2| H1H2,这个就是我们支持向量机的分类间隔

我们从上面的第一张图片中不难看出,超平面可以有无穷多个,那么我们的SVM到底研究的是那一个平面呢?

既然我们做的是分类问题,是不是应该找到一个能够很好的将我们上面的两类数据分割开呢?于是我们SVM就是寻找一个最好的超平面,我们叫他最优超平面

  • 最优超平面:就是可以将两类数据正确的分开,并且使分类间隔最大的超平面,SVM就是定义最有超平面,并且把寻找最优超平面归结为求解一个凸二次规划问题
  • 支持向量机能够较好的解决小样本非线性和高维数据局部极小点等实际问题。

三,SVM的几种简单情况

我相信大家看上面的第一张图片的时候应该已经大致了解了SVM的初等模型了,但是在实际情况中,第一张图片只是少部分情况,我们大致可以将这些情况分为如下几种

机器学习——支持向量机_第2张图片

1.数据线性可分情况

机器学习——支持向量机_第3张图片
此图对应这种情况
机器学习——支持向量机_第4张图片

  • 求解方法:始终记住我们SVM是要求解最优超平面,大致过程就是将求 ∣ H 1 H 2 ∣ |H_1H_2| H1H2的距离,优化得到一个约束二次规划问题,再构造Lagrange(拉格朗日函数)将其转化为对偶问题,最大化求解,最后我们能够在得到新数据的时得到一个最优分类函数
  • 此时的SVM相当于一个判别模型。
  • 虚线上面的样本我们称为支持向量

2.数据近似线性可分情况

机器学习——支持向量机_第5张图片
这种情况就是个别样本的分类出现错误,处理方法就是尽量使虚线朝我们的实线靠近,但是还是要保证最大间隔

  • 求解方法:与上面的求接过程差不多,不过引入了一个非负松弛变量,和一个平衡系数,使得约束方程和产生了一些变化,线性不可分还有一个KKT(Karush-Kuhn Tucker)条件,求解过程和数据线性可分情况相似。
  • 虚线向决策边界靠近之后落在虚线上的样本叫做支持向量

3.数据线性不可分情况

机器学习——支持向量机_第6张图片
这种情况应该是最复杂的吧,我们可以看到,在上面找不到一条直线可以将两类数据很好的分隔开。所以我们就要解放我们的思维,尝试做一个高维空间的人。如下图,将简单的输入空间转化为特征空间就可以很好的得到一个分类超平面了。
机器学习——支持向量机_第7张图片
那我们在现实中是怎么完成这种转化过程的呢?

  • 我们是根据 基于Mercer核展开定理,通过内积函数定义的非线性变换,将输入空间映射到高维特征空间中寻找输入变量和输出变量的关系。
  • 核函数: 但如果我们有这样的一核函数 在这里插入图片描述
    x i x_i xi x j x_j xj在特征空间的内积等于它们在原始样本空间中通过函数 K ( x i , y i ) K(x_i,y_i) K(xi,yi) 计算的结果,我们就不需要计算高维甚至无穷维空间的内积了。

四.SVM分类器的性能和优缺点

1, 性能

我们从两个方面分析,学习能力和推广能力,

  • 学习能力:分类器从训练数据中建立正确的分类能力
  • 推广能力:模型对未知数据进行正确预测的能力,该能力更能反映分类器性能的好坏,毕竟设计分类器的目的就是对为未知数据进行分类。

2,优缺点

1)优点

  • 有严格的数学理论支持,可解释性强,不依靠统计方法,从而简化了通常的分类和回归问题;
  • 能找出对任务至关重要的关键样本(即:支持向量);
  • 采用核技巧之后,可以处理非线性分类/回归任务;
  • 最终决策函数只由少数的支持向量所确定,计算的复杂性取决于支持向量的数目,而不是样本空间的维数,这在某种意义上避免了“维数灾难”。

2) 缺点

  • 训练时间长。当采用 SMO 算法时,由于每次都需要挑选一对参数,因此时间复杂度为 O ( N 2 ) O(N^2) O(N2),其中 N 为训练样本的数量;
  • 当采用核技巧时,如果需要存储核矩阵,则空间复杂度为 O ( N 2 ) O(N^2) O(N2)
  • 模型预测时,预测时间与支持向量的个数成正比。当支持向量的数量较大时,预测计算复杂度较高。

因此支持向量机目前只适合小批量样本的任务,无法适应百万甚至上亿样本的任务。


ps:图片都是在网上找的,主要是我自己现在还不会这些画图软件,读者见谅,原来附上的链接我删了,主要是当时在mooc上面看的视频都很短,30min就把这几中情况说完了,所以我建议大家还是在b站和知乎上面搜索相关内容,还是非常顶的。

你可能感兴趣的:(机器学习,算法,java,机器学习)