统计学习方法-7 支持向量机-3

作者: Eric_i33 | 来源:发表于2019-07-07 20:31 被阅读2次

3 非线性支持向量机、SMO算法
3.1 目标函数继续变形
理论上,KKT条件可以解出SVM,但是当训练集容量很大时,这种方法显得异常低效,甚至无法使用。SMO(sequential minimal optimization)算法,首先继续优化目标函数,关键点是通过求极值提炼出对偶函数的最小化表达式

3.2 SMO算法
SMO算法是一种启发式算法,选择两个变量(在这里变量就是对偶变量alpha),要求一个是违反KKT条件最严重的一个,另一个由约束条件生成,其余变量固定;不断优化两两组合的变量直到所有变量满足KKT条件;再计算得到原问题的解w和b。

a1和a2的求解思维如下,从目标函数中剥离出一组a1和a2,建立二者的线性关系(公式写到眼瞎):

消元去掉a1,优化得到a2的未剪辑值

再根据约束条件,得到a2的更新值,此处要考虑y1和y2同号和异号两种情况,在同号的情况下,a1y1 + a2y2 的直线斜率为,a2的上确界和下确界如下所示:


在异号的情况下,a1y1 + a2y2 的直线斜率为,a2的上确界和下确界如下所示:


综上,得到a2的更新值,a2有了,a1的更新值也就有了,此时 w 亦可求,关键还要求 b:

求解 b:

3.3 如何挑选a1和a2
步骤:
(1)、选取初始值a = 0,b = 0,计算所有的 Ei 并保存为列表

(2)、外循环:选取违反KKT条件最严重的样本点,定为a1
(2.1)、首先检查支持向量,遍历所有满足 0<a1<C 的点(即在间隔边界上的支持向量),如果出现点违反KKT条件,定为a1
(2.2)、如果(2.1)都满足,再遍历整个训练集,检查是否违反KKT,定为a1

(3)、内循环:当a1确定后,选取a2
(3.1)、取 max|E1-E2| 的点(即更新幅度最大)
(3.2)、若存在多个 max|E1-E2|,取 0<a2<C 的点(支持向量)
(3.3)、如果没有,依次取其他点
(3.4)、如果还是没有,放弃a1,重复(2)

(4)、更新a1, a2, b, Ei
(5)、迭代,直至在精度eps内满足停止条件

未完待续

相关文章

  • 支持向量机

    支持向量机 0.引言 本文主要参考了李航的《统计学习方法》。是本人学习支持向量机的学习笔记。首先对支持向量机做简单...

  • 统计学习方法-7 支持向量机-3

    3 非线性支持向量机、SMO算法3.1 目标函数继续变形理论上,KKT条件可以解出SVM,但是当训练集容量很大时,...

  • 关于希尔伯特空间

    阅读李航博士的《统计学习方法》,非线性支持向量机中关于核技巧的知识中说: 核技巧应用到支持向量机,其基本想法就是通...

  • 机器学习基础-SVM与感知机

    参考《统计学习方法》李航等 SVM定义 SVM(Support Vector Machine,支持向量机),是一种...

  • 统计学习方法-7 支持向量机-2

    2 线性支持向量机线性可分支持向量机过于理想化,当训练集不是线性可分时,无法得到最优解,因为此时原问题的不等式约束...

  • 统计学习方法-7 支持向量机-1

    支持向量机(support vector machine,SVM)属于二分类判别模型,以感知机为基础,但有别于感知...

  • 统计学习方法笔记(第二章个人笔记)

    统计学习方法笔记(第二章个人笔记) 标签: 机器学习深度学习 感知机(P25) 感知机是神经网络与支持向量机的基础...

  • 《统计学习方法》-支持向量机

    date: 2018-1-31支持向量机是找到一个间隔最大的超平面,最大的将不同类数据分开。 线性支持向量机 模型...

  • 机器学习day6-svm中训练误差为0存在问题

    支持向量机 支持向量机(Support Vector Machine,SVM)是众多监督学习方法中十分出色的一种。...

  • 支持向量机

    支持向量机(SVMs)是一组用于回归、分类和异常值检测的监督学习方法。 支持向量回归(SVR) 支持向量分类的方法...

网友评论

    本文标题:统计学习方法-7 支持向量机-3

    本文链接:https://www.haomeiwen.com/subject/ojebhctx.html