为了说明极值点求解及核函数的原理,我们需要做一些看起来有些吓人的数学推导,由于篇幅有限,我将对一些关键的数学原理做简要说明,更详细的推导可参考斯坦福 CS 课程的资料 CS229 Lecture Notes. Andrew Ng. Spring Stanford University. 2020。
之前我们得到了一个优化问题:其中:容易得到,上述优化问题等价于:注意到,我们还没有考虑正则化,比如图 6.2 所示的边界是不被允许的,因为 H 点不满足 的约束条件(而 )。 因此,考虑到正则化和非线性可分的情况,我们将优化问题调整为:现在你可以验证,假设 H 点对应 ,对于合适的 ,图 6.2 所示的边界将被允许,但是 H 点将带来 (类比 )的误差值提升作为“惩罚”。事实上,上述优化问题等价于优化 SVM 的误差函数 。
以上为带约束的优化问题(constrained optimization problems)。其中一个解决思路是,找到优化问题 D,使得由 D 得到的解,可以得到原问题 P 的解。P 和 D 分别称为 primal problem 和 dual problem(以下翻译为原始问题和对偶问题)。关于 Duality 的严格定义,请参考 Duality(optimization). Wikipedia。
现在,回到 SVM 的优化问题:把上述约束条件转化为 的形式,注意到该优化问题有 2m 个 的约束,并且没有 的约束,我们可以得到拉格朗日函数:于是,得到对偶问题:对于 ,我们需要固定,令偏导数为零:由以上方程可以得到 关于 的表达式,代入 ,可以得到对偶问题的最终表达式:其中, 表示内积。求解上述问题可以采用基于梯度的迭代算法,并用 KTT 条件判断目标函数值是否收敛。SMO 是目前比较流行且高效的 SVM 优化算法,详情请参阅 SMO 的论文 Sequential Minimal Optimization: A Fast Algorithm for Training Support Vector Machines. John C. Platt. Microsoft Research. 1998。 现在,假设我们得到了对偶问题的极值点 ,在推导对偶问题表达式的过程,注意到:可以得到决策边界的另一种表达式:事实上,最终得到的 只有一小部分非零,这些非零的 对应的 就是支持向量。因此,我们的预测模型只需要计算 与少数支持向量的内积。
[1] CS229 Lecture Notes. Andrew Ng. Stanford University. Spring 2020.[2] Karush-Kuhn-Tucker conditions. Geoff Gordon. CMU. [3] Sequential Minimal Optimization: A Fast Algorithm for Training Support Vector Machines. John C. Platt. Microsoft Research. 1998.[4] The Simplified SMO Algorithm. Stanford University. 2009.[5]Duality(optimization). Wikipedia. [6] Hyperplane. Wikipedia. [7] Karush–Kuhn–Tucker conditions. Wikipedia. [8] Support Vector Machine. Wikipedia [9] Lagrange multiplier, Wikipedia. [10] Radial basis function kernel. Wikipedia. [11] Slater's condition. Wikipedia