机器学习——支持向量机——硬间隔与支持向量

上篇文章我们简单介绍了SVM的几种情况,这篇文章我们来对SVM的基本型进行研究。

支持向量机简述
软间隔与正则化,核函数

文章目录

  • 前言
  • 一、超平面公式引出
  • 二、最大间隔
  • 三,优化约束,拉格朗日函数,对偶问题
  • 四,最优超平面
  • 五,求解最优超平面


前言

硬间隔就是我们的数据线性可分的情况,是一种比较理想的模型,但是对于新手理解SVM很友好。本篇主要是由图片和数学公式(手写)展示,若字太丑请谅解。


一、超平面公式引出

机器学习——支持向量机——硬间隔与支持向量_第1张图片
我们都知道超平面的公式是 W X + b = 0 WX+b=0 W,可是为什么会是这个公式呢,而且 w w w x x x都是向量(上图中加粗了),那这是为什么呢?

我们从左到右的顺序来,

  • 我们首先画一个坐标轴 x 1 x_1 x1为横轴, x 2 x_2 x2为纵轴,因为平面中任何一条直线都可以用斜截式表示,所以我们就有了超平面表示公式的原型.
  • 然后我们移项,就可以得到两个向量相乘的形式,然后再把他们简写为W与X就得到了超平面的数学表达式了(后面为了方便, w w w x x x就没有以向量的形式写出来了,但大家一定要知道).
  • 我们推导虚线超平面的过程就是加一个常数 C C C然后除过去就得到我们的+1,-1分类的虚线超平面了.
  • 看右边在超平面上任取两点然后相减就得到了一个两个向量的点积为0,说明 w w w向量是超平面的法向量.

右边第一行是定义域,一定不能忘记啊,后面的图片上是没有的.

二、最大间隔

上面我们知道了超平面是怎么得来的,那现在我们就要真正解决支持向量机的问题了,就是最大化间隔(maximum distance).

  • 首先我们可以直观的通过点到超平面的距离公式直接得到distance,这种方法也告诉了我们间隔距离是由W和b(隐式的)影响着的.其实也可以通过这种方式得到我们的二次约束规划问题,但后面我们还是把他化简了,那我们介绍第二种从几何方向求距离(更好理解).
  • 如图所示,在虚线超平面上面取两个点,两式相减得到我们的向量点积形式.再通过余弦定理转化,distance就等于我们的W向量的模长分之二.
  • 距离得到了,要最大化我们还要满足一个约束,在硬间隔问题当中我们是不允许样本被错误分类的,所有样本只能出现在虚线超平面上或其一侧,我们的约束也是这样.
  • 然后为了便于计算,我们把最大化问题转化为了最小化问题,加平方的原因是利于后面的求导计算.

在W那里有两个绝对值符号,我们将其称为范数,其实只需要把其整体看作是模长就好了,不影响后面的计算.


三,优化约束,拉格朗日函数,对偶问题

上面我们最后得到了一个约束二次规划问题吗,其实他就是我们SVM的基本型了,但是我们要怎么求解呢?

有约束的问题我们一般将其转化为无约束问题求解,这里我们通过Lagrange函数转化,然后先求最小,在求最大问题我们一般用Dual问题再转化.

  • 通过Lagrange函数转化过后我们发现原来的约束条件变成了只需要保证拉式函数的乘子>=0就好了.(使用拉式函数一定要保证约束是小于等于0的啊)
  • 得到无约束的问题后我们就写出他的Dual问题进行求解,首先我们要对拉式函数的 w w w, x x x求偏导,再令偏导等于0(因为我们是求minimize,所以在他的极小值处,一阶导数是为0的),得到结果后在反代回拉式函数.
  • 由于引入了Dual问题,所以我们还要把KKT(karush-kuhn tucker)条件写出来,我们最终寻找最优解也是通过KKT条件来求解的.

因为KKT条件是原对偶问题的具有强对偶性的充要条件,所以我们可以用来求解.从上面的约束二次规划到下面的Dual问题都是可以用数学反推回去的,但是我们只是简单了解SVM,而且需要强大数学专业知识,所以就没必要了.

四,最优超平面

不要忘记我们SVM硬间隔问题是找到一个最优超平面能够将我们的两类数据完美的分隔开,所以我们同过样本测试最终就可以得到一个sign函数,当有新样本的时候我们就可以直接代入知道它属于哪一类了.

  • 寻找最优超平面就是找到 w w w x x x的最优解,而 w w w的最优接我们已经在拉式函数求偏导那里得到了,所以我们只需求 b b b的最优解. w w w b b b的最优解都是数据的线性组合.

五,求解最优超平面

我们上面已经知道了w的最优解,而现在吧的最优解我们可以通过那个松弛互补得到.

  • 我们优松弛互补条件可得,ai是大于等于0的,那么他的物理意义是什么呢?
  • a i = 0 a_i=0 ai=0时,样本可以落在平面任何地方,对于我们研究意义不大.
  • 而当 a i > 0 a_i>0 ai>0时,此时样本必须落在我们的虚线超平面上面,此时,我们也称落在虚线超平面上面的样本为支持向量.那就是说必然存在一个样本 ( x k , y k ) (x_k,y_k) (xk,yk)使得等式成立.所以我们可以求出b的最优解.
  • 由于考虑到结果的鲁棒性,我们对b的最优解进行一个求平均值的操作,得到b最终的最优解.
  • 再将我们 b b b带回到上面最优超平面的sign函数中,就得到了最优超平面

至此,我们SVM的基本型数学原理推导结束,之后还会更新SVM的相关文章,包括软间隔与正则化,核函数etc,如果需要了解上面的相关数学知识,B站,知乎上面都有不错的资源.

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