机器学习(1)--线性回归和多项式拟合
机器学习(2)逻辑回归 (数学推导及代码实现)
机器学习(3)softmax实现Fashion-MNIST分类
机器学习(4)多层感知机(MLP)
机器学习(5)支持向量机(SVM)模型推导
机器学习(6) 序列最小优化算法(SMO)求解向量机(SVM)模型
3. 序列最小优化算法(SMO)[1][2]
3.1 模型推导
对于二次规划问题可以使用二次规划算法来求解,但是当样本数量很高时会造成很大的开销,所以通常使用SMO算法进行求解,SMO算法的基本思路是每次随机选择两个变量
并固定其他参数不断更新。具体推导如下:
假设选区的优化参数是
,将上式优化问题展开得:
由于
取值不是+1就是-1,所以
,将上一步进一步化简为:
其中
为常数。我们设
,修改上式得:
优化函数变为:
上述优化函数只包含两个未知量,由约束条件
,可将
用
表示出来:
设
,
。
将上述三个条件带入
得:
化简得:
将
对
求导得:
令其为0,得到:
又
,带入上式得:
最开始时我们对原始的最优化函数求偏导得到
,又
则:
前面我们已经设
,
,所以:
又因为:
,
,带入上式得:
则:
化简得:
其中:
,
3.2 对原始解进行修剪
上面求出的最优
和
是未考虑约束条件下的解,但是事实上,
的解还受约束条件的约束:
即:
约束使得
的取值约束在一定范围内如下列两种情况讨论。
(1) 当
分为
,
及
,
处理,这两种情况都可写成:
,当
小于0时(在
上的截距,此处纵坐标为
)
的最小值取零(如图中黑色曲线),最大值处
,此时
当
大于零时,此时
的最小值取
上的截距,即
=0,得到
, 最大值取
。所以:
,
(2)当
时函数可写为:
,如右图所示,当
小于0时(如黑色曲线),
的最小值取零,最大值处
,此时
,当
大于0时(如红色曲线),此时
的最小值处,
, 此时
,
的最大值取
。所以:
,
经过修剪后
的解为:
根据上述的方式求得
后,就可以阈值
。
3.2 更新阈值
拉格朗日函数需要满足KTT条件
当
,为保证
,则需要保证
其中
,带入得:
,于是得到:
又因为:
所以:
同理可得:
当
和
都有效时(
)他们是相等的, 即
。当
或者
是
或
时,则:
下一章将介绍具体的代码实现。
参考
- ^https://zhuanlan.zhihu.com/p/29212107
- ^统计学习方法-李航