lecture 7 : More about SVM

在上一节我们得到了转换后的优化问题:

\[\min_{w,b} \frac{1}{2}||w||^2\\ s.t. \hat\gamma^{(i)}\ge \hat\gamma = 1 \]

To be more general, 它具有这样的形式:

\[min_{w} \quad f(w)\\ s.t. g_{i}(w) \le 0\\ h_{j}(w) = 0 \]

这是一类带约束,且约束里面有不等式的最优化问题。(等式约束的问题可以通过拉格朗日乘子法来解决)

为了解决这个问题,定义广义拉格朗日函数

\[\mathfrak{L}(w, \alpha, \beta) = f(w) + \sum^{k}_{i=1}\alpha_i g_{i}(w) + \sum_{j=1}^l \beta_jh_{j}(w)\\ \alpha_i \ge 0 \]

定义:

\[\theta_P(w) = max_{\alpha, \beta}\quad \mathfrak{L}(w,\alpha,\beta) \]

可以发现,在那些满足约束条件的 \(w\) 处,\(\theta_P(w) = f(w)\), 在那些不满足的地方,\(\theta_P(w) = +inf\)

这是因为在那些不满足的点处,可以取一些 \(\alpha_i\) 或者 \(\beta_j\) 使得后两项中的某一项趋向无穷。

因此,原问题与如下问题同解:

\[min_{w}\quad \theta_P(w) \]

\(min\quad \theta_P(w) = p^*\), 为原问题的解的值。

考虑对偶的形式:

\[\theta_D(\alpha, \beta) = \min_{w}\quad \mathfrak{L}(w, \alpha, \beta) \]

以及对偶问题:

\[max_{\alpha, \beta}\quad \theta_D(\alpha, \beta) \]

\(max_\quad \theta_D(\alpha, \beta) = d^*\), 为对偶问题的值。

而如下不等式显然成立:

\[d^* \le p^* \]

推导:

\[\theta_D(\alpha, \beta) \le \mathfrak{L} \le \theta_P(w)\\ \max \quad\theta_D(\alpha, \beta) \le min\quad \theta_P(w) \]

因此,若 \(w^*, \alpha^*, \beta^*\) 同时是对偶问题和原问题的解,且 \(d^* = p^*\), 那么它们分别是原问题和对偶问题的最优解。

这告诉我们,在有些条件下,原问题的解与对偶问题的解相同,这使得我们可以将求解原问题转化为求解对偶问题,因为对偶问题有时候比较容易求解。

下面给出这样的条件:

  • 假设 \(f(w), g_i(w)\) 是凸函数,\(h_j(w)\) 是仿射函数,不等式约束 \(g_i(w)\) 是严格可行的,则存在 \(w^*, \alpha^*, \beta^*\) ,使得 \(w^*\) 是原问题的解,\(\alpha^*,\beta^*\) 是对偶问题的解,并且

\[p^* = d^* = \mathfrak{L}(w^*, \alpha^*,\beta^*) \]

  • 假设 \(f(w), g_i(w)\) 是凸函数,\(h_j(w)\) 是仿射函数,不等式约束 \(g_i(w)\) 是严格可行的,则 \(w^*,\alpha^*,\beta^*\) 分别是原问题和对偶问题的解的充要条件是满足 KKT 条件。

\[\nabla_{w}\mathfrak{L} = 0\\ \alpha^*_ig_i(w) = 0\\ g_i(w) \le 0\\ \alpha^*_i \ge 0\\ h_j(w) = 0 \]

其中第二条称为 KKT 的对偶互补条件,由此条件可知,若 \(\alpha^*_i \gt 0\), 则 \(g_i(w) = 0\)

有了上面的基础,下面来看 SVM 的对偶学习算法,把上面的定理用于 SVM 的最优化目标,写出广义拉格朗日函数:

\[\mathfrak{L} = \frac{1}{2}||w||^2 + \sum_{i=1}^m\alpha_i(-y^{(i)}(w^Tx^{(i)} + b) + 1) \]

根据拉格朗日对偶性,原问题等价于求解如下问题:

\[\max_{\alpha} \min_{w,b} \mathfrak{L}(w,b,\alpha) \]

先求解极小问题:

\[\nabla_{w}\mathfrak{L} = w - \sum_{i=1}^m \alpha_i y^{(i)}x^{(i)} = 0\\ \nabla_{b}\mathfrak{L} = -\sum_{i=1}^m \alpha_iy^{(i)} = 0 \]

带入拉格朗日函数得

\[\mathfrak{L} = -\frac{1}{2}\sum_{i=1}^m \sum_{j=1}^m \alpha_i \alpha_j y^{(i)}y^{(j)}(x^{(i)},x^{(j)}) + \sum_{i=1}^m\alpha_i \]

接下来求它对 \(\alpha\) 的极大,即

\[max_{\alpha}\quad -\frac{1}{2}\sum_{i=1}^m \sum_{j=1}^m \alpha_i \alpha_j y^{(i)}y^{(j)}(x^{(i)},x^{(j)}) + \sum_{i=1}^m\alpha_i\\ s.t.\sum_{i=1}^m \alpha_iy^{(i)} = 0\\ \alpha_i \ge 0 \]

假设最后解得 \(\alpha = [\alpha_1,...,\alpha_m] ^T\),

\[w^* = \sum_{i=1}^m \alpha^*_i y^{(i)}x^{(i)}\\ b^* = y_j - \sum_{i=1}^m \alpha_i^*y^{(i)}(x^{(i)}, x^{(j)})\\ \alpha_j > 0 \]

分类决策函数即:

\[f(x) = sign(\sum_{i=1}^m \alpha^*_i y^{(i)}(x^{(i)}, x) + b^*) \]

注意到在上面我们最后都写成内积的表达方式,这为我们使用核方法提供了便利。

在之前的讨论我们都假设了数据集是线性可分的,有时候可能在当前维度下决策边界是一个比较复杂的 "曲线", 这时我们如果将输入 x 通过线性映射 \(\phi\), 映射到高维空间,就可能化为在高维空间线性可分的情况。然而在高维空间计算向量的内积是 computationally expensive 的,如果我们能有一个函数 \(K(x,z) = \phi(x)^T\phi(z)\), 能够比较快的算出向量在高维空间的内积,那么将会十分方便。应用核方法只需要先将算法表示为内积的形式,再用 \(K(x,z)\) 替换即可。常用的核包括多项式核和高斯核。

到现在为止,我们可以用一句话概括一下 SVM : 最大间隔分类器 + kernel

posted @ 2022-03-22 23:36  今天AC了吗  阅读(33)  评论(0)    收藏  举报