《机器学习》Chapter 6 支持向量机

《机器学习》Chapter 6 支持向量机

  1. 间隔与支持向量

img

距离超平面最近的这几个训练样本点被称为**“支持向量” (support vector),两个异类支持向量到超平面的距离之和为“间隔”(margin)**

img

最大化间隔:

img

这就是**支持向量机(Support Vector Machine,简称SVM)**的基本型。

  1. 对偶问题

    使用拉格朗日乘子法可得到其**“对偶问题” (dual problem)**。具体来说,对式(6.6)的每条约束添加拉格朗日乘子αi≥0,则该问题的拉格朗日函数可写为

    img

    经过一系列推导得式(6.1)的对偶问题

    img

    可得出支持向量机的一个重要性质:训练完成后,大部分的训练样本都不需保留,最终模型仅与支持向量有关。

    那么,如何求解式(6.2)呢?不难发现,这是一个二次规划问题,可使用通用的二次规划算法来求解;然而,该问题的规模正比于训练样本数,这会在实际任务中造成很大的开销。

    为了避开这个障碍,人们通过利用问题本身的特性,提出了很多高效算法,**SMO (Sequential Minimal Optimization)**是其中一个著名的代表[Platt, 1998].

    SMO的基本思路是先固定αi之外的所有参数,然后求αi上的极值.由于存在约束若固定αi之外的其他变量,则αi可由其他变量导出。于是,SMO每次选择两个变量αi和αj并固定其他参数。这样,在参数初始化后,SMO不断执行如下两个步骤直至收敛:

    • 选取一对需更新的变量αi和αj;
    • 固定αi和αj以外的参数,求解式(6.2)获得更新后的αi和αj

    SMO算法之所以高效,恰由于在固定其他参数后,仅优化两个参数的过程能做到非常高效。

  2. 核函数

    在上述的讨论都是基于线性可分的情况,那么对于线性不可分的情况该如何处理?

    对于这样的问题,可将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分。

    若∅代表一个映射,则在特征空间中的划分函数变为:

    20.png

    按照同样的方法,先写出新目标函数的拉格朗日函数,接着写出其对偶问题,求L关于w和b的极大,最后运用SOM求解α。可以得出:

    (1)原对偶问题变为:

    21.png

    (2)原分类函数变为:

    22.png

    求解的过程中,只涉及到了高维特征空间中的内积运算,由于特征空间的维数可能会非常大,例如:若原始空间为二维,映射后的特征空间为5维,若原始空间为三维,映射后的特征空间将是19维,之后甚至可能出现无穷维,根本无法进行内积运算了,此时便引出了核函数(Kernel)的概念。

    23.png

    因此,核函数可以直接计算隐式映射到高维特征空间后的向量内积,而不需要显式地写出映射后的结果,它虽然完成了将特征从低维到高维的转换,但最终却是在低维空间中完成向量内积计算,与高维特征空间中的计算等效(低维计算,高维表现),从而避免了直接在高维空间无法计算的问题。引入核函数后,原来的对偶问题与分类函数则变为:

    (1)对偶问题:

    24.png

    (2)分类函数:

    25.png

    因此,在线性不可分问题中,核函数的选择成了支持向量机的最大变数,若选择了不合适的核函数,则意味着将样本映射到了一个不合适的特征空间,则极可能导致性能不佳。同时,核函数需要满足以下这个必要条件:

    26.png

    由于核函数的构造十分困难,通常我们都是从一些常用的核函数中选择,下面列出了几种常用的核函数:

    27.png

  3. 软间隔与正则化

    前面的讨论中,我们主要解决了两个问题:当数据线性可分时,直接使用最大间隔的超平面划分;当数据线性不可分时,则通过核函数将数据映射到高维特征空间,使之线性可分。然而在现实问题中,对于某些情形还是很难处理,例如数据中有噪声的情形,噪声数据(outlier)本身就偏离了正常位置,但是在前面的SVM模型中,我们要求所有的样本数据都必须满足约束,如果不要这些噪声数据还好,当加入这些outlier后导致划分超平面被挤歪了,如下图所示,对支持向量机的泛化性能造成很大的影响。

    为了解决这一问题,我们需要允许某一些数据点不满足约束,即可以在一定程度上偏移超平面,同时使得不满足约束的数据点尽可能少,这便引出了**“软间隔”支持向量机**的概念

    • 允许某些数据点不满足约束y(w’x+b)≥1;
    • 同时又使得不满足约束的样本尽可能少。

    这样优化目标变为:

    29.png

    如同阶跃函数,0/1损失函数虽然表示效果最好,但是数学性质不佳。因此常用其它函数作为**“替代损失函数”**。

    30.png

    支持向量机中的损失函数为hinge损失,引入**“松弛变量”**,目标函数与约束条件可以写为:

    31.png

    其中C为一个参数,控制着目标函数与新引入正则项之间的权重,这样显然每个样本数据都有一个对应的松弛变量,用以表示该样本不满足约束的程度,将新的目标函数转化为拉格朗日函数得到:

    32.png

    按照与之前相同的方法,先让L求关于w,b以及松弛变量的极小,再使用SMO求出α,有:

    33.png

    将w代入L化简,便得到其对偶问题:

    34.png

    将“软间隔”下产生的对偶问题与原对偶问题对比可以发现:新的对偶问题只是约束条件中的α多出了一个上限C,其它的完全相同,因此在引入核函数处理线性不可分问题时,便能使用与“硬间隔”支持向量机完全相同的方法。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Yozu_Roo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值