先贴一下cs229课程的官网地址:http://cs229.stanford.edu/
首先是待优化问题:
$$max_\alpha W(\alpha) = \sum_{i=1}^m \alpha_i - \frac{1}{2}\sum_{i,j=1}^m y^{(i)}y^{(j)}\alpha_i\alpha_j<x^{(i)}x^{(j)}>$$
$$ st. 0 \leq \alpha_i \leq C , i = 1,2, ... ..., m$$
$$ \sum_{i=1}^m \alpha_i y^{(i)} = 0$$
然后是SMO算法的大体流程:
Repeat till convergence {
1、从\(\alpha_1,\alpha_2, ... ... , \alpha_m\)中选取出一对\(\alpha_j\)和\(\alpha_k\)进行优化;
2、将除了上一步中挑选的\(\alpha_j\)和\(\alpha_k\)以外的\(\alpha\)看做常数,对选出的两个\(\alpha\)进行更新使得\(W(\alpha)\)取得更大的值;
}
最后,算法流程中三个地方详细说明:
1、循环的结束条件,即如何算是收敛。略。
2、如何选取\(\alpha_j\)和\(\alpha_k\)。略(这个现在没搞明白)。
3、如何更新\(\alpha_j\)和\(\alpha_k\):
公式\(\sum_{i=1}^m \alpha_i y^{(i)}\)中除\(\alpha_j\)和\(\alpha_k\)以外\(\alpha\)都被看做常数,