从梯度下降法、最大间隔法两种角度理解SVM

大憨熊 提交于 2020-04-30 01:44:35

 

一、机器学习算法的常见流程

一般的机器学习分类算法,我们可以通常从三个步骤得到,以SVM算法为例,这里规定正例的y为1,负例的y为-1

Step 1: Function Set(Model)

 

Step 2: Loss function

理想情况下的loss function(ideal loss)是当g(x)和y不相等的情况下的样本相加,但是这种情况下的损失函数是不可微分的,所以无法用梯度下降法训练。

 

Step 3:Gradient descent

第三步就是用梯度下降法训练模型了,我们现在的目标是寻找一种适合SVM的loss function。

二、Hinge Loss

接下来我们来分析SVM采用哪种损失函数比较合适,此坐标系横坐标表示y*f(x),纵坐标表示loss。

首先分析Square loss的情况,从图像上可以看出y*f(x)的值越接近于1越好,但y*f(x)很大的时候,loss越大,显然不合理

sigmod+square loss的情况:函数曲线变化太平缓,梯度下降的performance比较差

Sigmod + cross entropy(逻辑回归采用的损失函数)

hinge loss(SVM采用的损失函数)

假设此时的样本是正例,即yn为1。其实f(x)大于0就已经能正确分类了,但hinge loss里还是强调f(x)>1,图中penalty的部分就是margin,此时的margin为1,为什么是1呢,因为此时的hinge loss与Ideal loss最接近,都经过(0,1)点。

三、梯度下降法训练SVM

  按照我们在一中的定义,我们可以得到SVM的定义

 

由于hinge loss是凸函数,L2范数是凸函数,所以他俩之和仍然是凸函数,仍然可以用梯度下降法训练

从下面的公式推导可以看出,hinge loss从几何意义上看就是传统的SVM,保证yn,f(x)同号的同时,需要大于间隔减去松弛变量,此时的1是间隔(margin)。

 

四、传统的最大间隔法训练SVM

  支持向量机是一种二类分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器(有别于LR,只是寻找一个能将样本点分开的决策边界,SVM强调间隔最大化),所以它的基本学习策略就是间隔最大化。该问题可形式化求解一个凸二次规划问题,进一步利用拉格朗日对偶性,可将原始问题转换为对偶问题,通过求解对偶问题(dual problem)得到原始问题(primal problem)的最优解。引入对偶问题一是能使问题容易求解,二是自然引入核函数,进而推广到非线性分类问题。

  支持向量机的基本想法就是求解能够正确划分训练数据集并且几何间隔最大的分离超平面。

  接下来是线性可分支持向量机算法的详细推导过程:

 

 

  对于线性不可分的分类问题,一个基本思路——向高维空间转化,使其变得线性可分。可以使用一个变换,将元空间的数据映射到新空间;然后再新空间里用线性分类学习方法训练数据中学习分类模型,核技巧就是属于这样的方法。核技巧应用到SVM,其基本想法就是通过一个非线性变换将输入空间对应于一个特征空间,使得在输入空间中的超曲面模型对应于特征空间的超平面模型,这样,分类问题的学习任务通过在特种空间中求解线性支持向量机就可以完成。

  我们注意到线性支持向量机的对偶问题中,无论是目标函数还是决策函数(分离超平面)都只涉及到输入实例与实例之间的内积。在对偶问题中的目标函数中的内积可以用核函数来代替,此时对偶问题的目标函数就变为:

 

五、SVM多分类

SVM应用于多分类问题有常见的三种方法:一对一法、一对其余法、DAG法。

  • 一对其余法:

一类对余类法(One versusrest,OVR)是最早出现也是目前应用最为广泛的方法之一,其步骤是构造k个两类分类机(设共有志个类别),其中第i个分类机把第i类同余下的各类划分开,训练时第i个分类机取训练集中第i类为正类,其余类别点为负类进行训练。判别时,输入信号分别经过k个分类机共得到k个输出值fi(x)=sgn(gi(x)),若只有一个+1出现,则其对应类别为输入信号类别;实际情况下构造的决策函数总是有误差的,若输出不只一个+1(不只一类声称它属于自己),或者没有一个输出为+1(即没有一个类声称它属于自己),则比较g(x)输出值,最大者对应类别为输入的类别。

这种方法的优点是,对k类问题,只需要训练k个两类分类支持向量机,故其所得到的分类函数的个数(k个)较少,其分类速度相对较快。

  • 一对一法:

该方法在每两类问训练一个分类器,因此对于一个k类问题,将有k(k-1)/2个分类函数。当对一个未知样本进行分类时,每个分类器都对其类别进行判断.并为相应的类别“投上一票”,最后得票最多的类别即作为该未知样本的类别。决策阶段采用投票法,可能存在多个类的票数相同的情况,从而使未知样本同时属于多个类别,影响分类精度。

  • DAG法(有向无环图)

DAG-SvMS是由PIatt提出的决策导向的循环图DAG导出的,是针对“一对一"SvMS存在误分,拒分现象提出的。这种方法的训练过程类似于“一对一”方法,k类别问题需要求解k(k-1)/2个支持向量机分类器,这些分类器构成一个有向无环图。该有向无环图中含有k(k-1)/2个内部节点和k个叶结点,每个节点对应一个二类分类器。

DAG-SVMS简单易行,只需要使用k一1个决策函数即可得出结果,较“一对一"方法提高了测试速度,而且不存在误分、拒分区域;另外,由于其特殊的结构,故有一定的容错性,分类精度较一般的二叉树方法高。然而,由于存在自上而下的“误差积累”现象是层次结构固有弊端,故DAG-SVMS也逃脱不掉。即如果在某个结点上发生了分类错误,则会把分类错误延续到该结点的后续结点上.

 

 

参考书籍及链接:

李宏毅机器学习

《统计学习方法》——李航

http://blog.sina.com.cn/s/blog_5eef0840010147pa.html

 

 

  

 

 

 

 

 

  

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!