序列最小最优化算法(SMO算法)
前面三篇我已经谈了谈我对支持向量机的理解,推到了各类支持向量机的对偶算法,我们有很多最优化算法来求解这个问题,但是样本容量很大时,这些算法会变得非常低效。人们就提出了很多快速实现算法,SMO算法就是其中之一,主要是用来解这个对偶问题:
s.t.
这个问题中变量是拉格朗日乘子,一个变量对应一个样本点,变量的总数即为样本容量N,也就是说我们现在要求的这个函数是N元函数。
在介绍SMO之前,大家可以先了解下坐标上升算法,这两个算法类似。
坐标上升算法
坐标上升算法每次更新多元函数中的一维,经过多次迭代直到收敛达到优化函数的目的。
下图中从A点到F*红色线所示就是这个过程。
SMO算法
上面已经提到了我们需要优化N个变量,SMO算法就是将N个参数的二次规划问题分成了多个二次规划问题,每个子问题只需要求解两个参数。
为什么要两个两个求?
我们要选择一对变量,因为在SVM中变量是相互关联的:,若只固定一个,当我们对修正后,等号将不再成立。我们至少需要两个来保证等式成立。
我们先选取两个需要优化的参数为,(参数的选取不是随意的,在最后会介绍),其他变量是固定的,
将,带入上述对偶问题式子:
是帆帆不是凡凡呀: 李航的统计学习方法
是帆帆不是凡凡呀: 李航的统计学习方法
是帆帆不是凡凡呀: 李航的统计学习方法
繁星曳水: 同求教材名
zomzel: 同求教材名