【机器学习】支持向量机原理与序列最小最优化算法SMO

其他机器学习系列文章见于专题:机器学习进阶之路——学习笔记整理,欢迎大家关注。

1. 支持向量机

  支持向量机主要内容包含:线性可分支持向量机与硬间隔最大化、线性支持向量机与软间隔最大化、非线性支持向量机与核函数、序列最小最优化算法、支持向量回归。刘建平老师的SVM系列写的很清晰易懂,大家可以参考。这里只把在SVM学习过程中的一些要注意的点记录下来。

  (1) ∣ w T x + b ∣ \left| w ^ { T } x + b \right| wTx+b表示点 x x x距离超平面的相对距离,而 w T x + b w ^ { T } x + b wTx+b的符号与类标记 y y y的符号是否一致能够表示分类是否正确。所以可用 y ( w T x + b ) y \left( w ^ { T } x + b \right) y(wTx+b)表示分类的正确性和确信度,这就是函数间隔的意义。

  (2)由于成倍增加 w w w b b b,就会使函数间隔也成倍增加,因此对分离超平面的法向量 w w w规范化( ∣ ∣ w ∣ ∣ = 1 | | w | | = 1 w=1),就得到了几何间隔。

  (3)根据拉格朗日对偶性,原始问题可以表示为广义极小极大问题:
min ⁡ w , b max ⁡ α i ≥ 0 L ( w , b , α ) \min _ { w , b } \max _ { \alpha _ { i } \geq 0 } L ( w , b , \alpha ) w,bminαi0maxL(w,b,α)
对应的对偶问题可以表示为极大极小问题:
max ⁡ α i ≥ 0 min ⁡ w , b L ( w , b , α ) \max _ { \alpha _ { i } \geq 0 }\min _ { w , b }L ( w , b , \alpha ) αi0maxw,bminL(w,b,α)
  可以先求优化函数对 w w w b b b的极小值 min ⁡ w , b L ( w , b , α ) \min _ { w , b }L ( w , b , \alpha ) minw,bL(w,b,α),再求 min ⁡ w , b L ( w , b , α ) \min _ { w , b }L ( w , b , \alpha ) minw,bL(w,b,α) α \alpha α的极大,即对偶问题。

  这个过程与《机器学习——周志华》第六章中,将约束函数与原目标函数联立,从而求出使原函数取得极值的各个变量的解,代入新函数,并将极小问题转化为极大问题,得到的对偶问题是一致的。

  (4) w w w是通过求偏导得到的,而 b b b是通过KKT条件中,任意支持向量都满足 y j ( w T x j + b ) = 1 y _ { j } \left( w ^ { T } x _ { j } + b \right) = 1 yj(wTxj+b)=1得到的。

2. 序列最小最大算法SMO

  由于《统计学习方法》中对序列最小最大算法(Sequential Minimal Optimization,SMO)描述太复杂,这一节根据《机器学习》对SMO进行简要描述。

  SMO的基本思路是先固定 α i \alpha _ { i } αi之外的所有参数,然后求 α i \alpha _ { i } αi上的极值。由于存在约束 ∑ i = 1 m α i y i = 0 \sum _ { i = 1 } ^ { m } \alpha _ { i } y _ { i } = 0 i=1mαiyi=0,若固定 α i \alpha _ { i } αi之外的所有变量,则 α i \alpha _ { i } αi可以有其他变量导出。

  SMO每次选择两个变量 α i \alpha _ { i } αi α j \alpha _ { j } αj,并固定其他参数,这样,在参数初始化后,SMO不断执行如下两个步骤直至收敛:

  (1)选取一对需要更新的变量 α i \alpha _ { i } αi α j \alpha _ { j } αj
  (2)固定 α i \alpha _ { i } αi α j \alpha _ { j } αj以外的参数,获得更新后的 α i \alpha _ { i } αi α j \alpha _ { j } αj

  SMO先选取违背KKT条件程度最大的变量,然后选取一个使目标函数值增长最快的变量。但由于比较各变量所对应的目标函数值增幅的复杂度过高,因此SMO采用了一个启发式:使选取的两边两变量所对应样本之间的间隔最大。

  SMO算法之所以高效,是因为固定其他参数后,仅优化两个参数的过程能做到十分高效。

参考文献:

  1. 《统计学习方法》第七章支持向量机——李航
  2. 《机器学习》第六章支持向量机——周志华
  3. 支持向量机原理(一) 线性支持向量机
  4. 支持向量机原理(二) 线性支持向量机的软间隔最大化模型
  5. 支持向量机原理(三)线性不可分支持向量机与核函数
  6. 支持向量机原理(五)线性支持回归

你可能感兴趣的:(机器学习)