支持向量机SVM原理篇

作者:a819825294

1.关键概念及学习目标

  • 线性&非线性分类问题&核技巧

    • 非线性分类问题是指通过利用非线性模型才能很好地进行分类的问题。如上图左侧,我们无法用直线(线性模型)将正负例正确分开,但可以用一条椭圆曲线(非线性模型)将他们正确分开。此时,我们可以进行一个非线性变换。
    • 核技巧应用到支持向量机,其基本想法就是通过一个非线性变换将输入空间(欧氏空间或离散集合)对应于一个特征空间(希尔伯特空间),使得原有的超曲面模型对应于特征空间的超平面模型
  • 支持向量和间隔边界

    • 在线性可分的情况下,训练数据集的样本点中与分离超平面距离最近的样本点的实例称为支持向量。在决定分离超平面时只有支持向量起作用,而其他实例点并不起作用。(:这里我们讨论的是线性可分的SVM,对于软间隔,非线性可分情况,则可以通过加正则、核技巧解决,其他类似)

      如上图所示,上的点就是支持向量。同时支持向量需要满足下面这个约束条件。

    • 举例来说

      如上图所示,其中X1,X2为正例,X3为反例,则SVM希望有如下约束
  • 支持向量机模型中,我们的学习目标
    • 接续看上图,直觉上看,如果我们的分类器足够好,那我们的正负支持向量之间的间隔应该越大,用数学公式描述如下:
    • 综上,我们得到了一个有约束的优化问题,也就是学习目标(这里写的是一个标准的形式,方便后面进行推导和理解)

2.拉格朗日&对偶算法推导

  • 对于上面的约束问题(目标函数为凸函数),我们会想到拉格朗日对偶性(对凸优化不太了解的读者,可以看下这本书 《Convex Optimization》 地址)。这样做的优点,一是对偶问题往往更容易求解;二是自然引入核函数(跟推导出来的结果有关),进而推广到非线性分类问题。
  • 推导过程
    (1)定义拉格朗日函数

    根据拉格朗日对偶性,原始问题的对偶问题是极大极小问题:

    所以,为了得到对偶问题的解,需要先对L(w,b,a)对w,b的极小,再求对a的极大。

    (2)

    将拉格朗日函数L(w,b,a)分别对w,b求偏导数并令其为0.

    得到

    将上式代入到拉格朗日函数中,得到

    (3)对a的极大,即对偶问题

    (4)是上面对偶问题的解,则存在下标j,使得.

    根据KKT条件成立,我们可以得到

    由于

    所以

    进而

    分离超平面可以写成

    分类决策函数可以写成

至此,我们已经推导完毕,得到最优的w,b。从上式上我们可以看出,分类决策函数只依赖于输入x和训练样本输入的内积(这一内积又与后面的核函数有着千丝万缕的联系,到这里读者是否感受到SVM理论上的优美呢,哈哈哈)

3.知其所以然

如果你看明白上面的推导了,那么问题来了,对偶形式的解与原始解相等需要什么前提条件呢?

凸函数 && KKT

4.损失函数

  • 支持向量机整个学习过程我们都介绍完了,但是整个过程都没有涉及到损失函数。其实,线性支持向量机的学习还有另外一种解释,就是如下的损失函数(简称合页(hinge)损失函数

目标函数的第一项是经验损失或经验风险,第二项是正则项(再一次惊叹magic)
在李航老师的书中有证明,感兴趣的读者可以去看一看。

  • 下面来观察一下这个合页损失函数

    (1)0-1损失函数,可以认为它是二分类问题的真正的损失函数,且不是连续可导的
    (2)合页损失函数式0-1损失函数的上界
    (3)当样本点被正确分类时,损失为0,否则损失是1
    (4)合页损失函数不仅要分类正确,而且确信度足够高损失才是0。也就是说,合页损失函数对学习有更高的要求。

5.常见核函数

(1)多项式核函数


(2)高斯核函数

6.实战Tip

支持向量机SVM,在处理线性问题时,速度和精度都还可以。但是在处理非线性问题时,在大量高纬度数据中会显得异常的慢(及时使用序列最小最优化算法SMO这种启发式算法)。
参考文献
1.李航.统计学习方法

发表评论

2个评论

  • JERRYFY007

    博主,4.损失函数(3)那里是不是错了? 应该是1-yi(w*xi+b)吧? yi(w*xi+b)描述的是下方的那条虚线。

    2017-10-09 11:37:59回复

  • a819825294

    回复JERRYFY007: 多谢指出哈,已经修改

    2017-10-12 05:30:02回复

我要留言×

技术领域:

我要留言×

留言成功,我们将在审核后加至投票列表中!

提示x

人工智能机器学习知识库已成功保存至我的图谱现在你可以用它来管理自己的知识内容了

删除图谱提示×

你保存在该图谱下的知识内容也会被删除,建议你先将内容移到其他图谱中。你确定要删除知识图谱及其内容吗?

删除节点提示×

无法删除该知识节点,因该节点下仍保存有相关知识内容!

删除节点提示×

你确定要删除该知识节点吗?