来源:原始 Jupyter Notebook。内容已转换为网页阅读格式;下载原文件。
前面我们使用拉格朗日乘子法将支持向量机的基本形式转化为对偶形式,得到了硬间隔支持向量机和软间隔支持向量机的优化目标。
硬间隔的优化目标为:
\begin{align} &\mathop \min_{\alpha} \frac{1}{2} \sum_{i=1}^n \sum_{j=1}^n \alpha_i \alpha_j y_i y_j x_i x_j - \sum_{i=1}^n \alpha_i \\ &s.t. \sum_{i=1}^n \alpha_i y_i = 0, \alpha_i \geq 0, i = 1,2,\dots,n \end{align}软间隔的优化目标为:
\begin{align} &\mathop \min_{\alpha} \frac{1}{2} \sum_{i=1}^n \sum_{j=1}^n \alpha_i \alpha_j y_i y_j x_i x_j - \sum_{i=1}^n \alpha_i\\ &s.t. \sum_{i=1}^n \alpha_i y_i = 0, 0 \leq \alpha_i \leq C, i = 1,2,\dots,n \end{align}对于这个带约束条件的优化问题,可以使用 二次规划 的方法进行求解,在 SVM 的发展过程中,很多算法被提出来,其中 Platt 于 1998 年提出的 序列最小最优化算法(Sequential Minimal Optimization, 简称 SMO)被广泛使用。
// TODO:SMO 算法原理
// TODO:KKT 条件