CS229笔记:支持向量机

考虑一个分类问题,用\(1\)表示正类标签,用\(-1\)表示负类标签,引入假设函数\(h\):
\[ \begin{align*} g(z) &= \begin{cases} 1 & \text{if}\ z \ge 0\\ -1 & \text{otherwise}\\ \end{cases}\\ h_{w,b}(x) &= g(w^Tx + b) \end{align*} \]
其中\(w \in \mathbb{R}^{n}, b \in \mathbb{R}\)是模型参数,\((w,b)\)与此前的\(\theta\)并没有本质区别,\(b\)相当于\(\theta_0\),\(w\)相当于\([\theta_{1}, \theta_{2},\dots,\theta_{n}]^T\),\(w\)和\(b\)构成\(n+1\)维的系数向量。给定\(w\)和\(b\),我们得到一个分类面:
\[ w^Tx+b=0 \]

最优间隔分类器

函数间隔与几何间隔

考虑一个样本\((x^{(i)}, y^{(i)})\),我们可以定义该样本在给定模型\((w,b)\)下的函数间距(functional margin):
\[ \hat\gamma^{(i)} = y^{(i)}(w^{T}x^{(i)}+b) \]
定义整个样本集合的函数间距:
\[ \hat\gamma = \min_{i} \hat\gamma^{(i)} \]
定义函数间距基于这样一种直觉:当\(y^{(i)} = 1\)时,\(w^{T}x^{(i)} + b\)越大,分类越准确;当\(y^{(i)} = -1\)时,\(w^{T}x^{(i)} + b\)越小,分类越准确。所以我们可以认为,\(\hat\gamma\)越大,分类结果越准确。

但是通过观察,我们发现,令\(w\)和\(b\)增大同样的倍数,分类面不会改变,但样本的函数间距会增大同样的倍数,所以引入几何间距(geometric margin),几何间距表示样本点到分类面的距离,这个距离带符号,分类正确时,距离为正,分类错误时,距离为负,通过计算可以得到样本\((x^{(i)},y^{(i)})\)到分类面的距离:
\[ \gamma^{(i)} = y^{(i)}\left(\left(\frac{w}{\|w\|}\right)^Tx + \frac{b}{\|w\|}\right) \]
同样的,可以定义整个样本集合的几何间距:
\[ \gamma = \min_{i} \gamma^{(i)} \]

最优间隔分类器

给定样本集合\((x^{(i)}, y^{(i)})_{i=1}^{m}\),如何选择\(w\)和\(b\)?

先考虑样本集合线性可分的情况,也就是存在一组\((w,b)\)使得集合的几何间距为正。

我们希望所有样本到分类面的距离的最小值最大,也就是样本集合的几何间距\(\gamma\)最大,我们称这样得到的分类器为最优间隔分类器,给出优化问题:
\[ \begin{align*} \max_{w, b, \gamma}\quad&\gamma\\ s.t.\quad& y^{(i)}\left(\left(\frac{w}{\|w\|}\right)^Tx^{(i)} + \frac{b}{\|w\|}\right) \ge \gamma,\ i=1, \dots, m \end{align*} \]
在约束条件的两端同时乘以\(\|w\|\),用\(\hat \gamma\)表示\(\|w\| \cdot \gamma\),得到另一个等价的问题:
\[ \begin{align*} \max_{w, b, \hat\gamma}\quad&\frac{\hat\gamma}{\|w\|}\\ s.t.\quad& y^{(i)}\left(w^Tx^{(i)} + b\right) \ge \hat\gamma,\ i=1, \dots, m \end{align*} \]
这个问题仍然难以解决,因为目标函数是非凸的。通过观察,我们发现\(\hat\gamma\)实际上是样本集合的函数间距,通过缩放\(w\)和\(b\)来改变\(\hat\gamma\)并不会产生什么实质影响,所以我们可以令\(\hat\gamma=1\),从而得到等价的优化问题:
\[ \begin{align*} \min_{w, b}\quad&\frac{1}{2}w^Tw\\ s.t.\quad& y^{(i)}\left(w^Tx^{(i)} + b\right) \ge 1,\ i=1, \dots, m \end{align*} \]
这个优化问题的约束条件是线性的,目标函数是凸函数,已经很容易解决了。目前我们得到的是一个线性分类器,而接下来我们引入拉格朗日对偶,可以将结果推广到非线性的情况。

拉格朗日对偶

考虑一个优化问题:
\[ \begin{align*} \tag{1} \min_{w}\quad &f(w)\\ s.t.\quad &g_i(w) \le 0, \ i = 1, \dots,k\\ &h_i(w) = 0, \ i = 1, \dots, l \end{align*} \]
定义拉格朗日函数
\[ L(w,\alpha,\beta) = f(w) + \sum_{i=1}^{k}\alpha_ig_i(w) + \sum_{i=1}^{l}\beta_ih_i(w) \]
考虑函数:
\[ \theta_{P}(w) = \max_{\alpha,\beta,\alpha_i \ge 0} L(w,\alpha,\beta) \]
\(\theta_{P}\)是关于\(w\)的函数,不难得到:
\[ \theta_{P}(w)= \begin{cases} f(w) &w\text{满足问题1的约束时}\\ \infty &w\text{不满足问题1的约束时} \end{cases} \]
考虑以下的优化问题:
\[ \min_{w} \theta_{P}(w) = \min_{w}\max_{\alpha,\beta,\alpha_i \ge 0} L(w,\alpha,\beta)\tag{2} \]
这一问题的答案显然就是原问题的答案

现在考虑另一个函数
\[ \theta_{D}(\alpha,\beta) = \min_{w}L(w,\alpha,\beta) \]
以及优化问题:
\[ \max_{\alpha,\beta,\alpha_i \ge 0} \theta_{D}(\alpha,\beta) = \max_{\alpha,\beta,\alpha_i \ge 0} \min_{w} L(w,\alpha,\beta) \tag{3} \]
问题2和问题3的唯一区别就是\(\min\)和\(\max\)的顺序不同,我们称问题2为原问题(primal problem),称问题3为对偶问题(dual problem),有一个结论是:
\[ p^{*} = \min_{w}\max_{\alpha,\beta,\alpha_i \ge 0} L(w,\alpha,\beta) \le \max_{\alpha,\beta,\alpha_i \ge 0} \min_{w} L(w,\alpha,\beta) = d^{*} \]
假设\(f\)和\(g_i\)是凸的,\(h_i\)是仿射函数(即\(h_i(w) = a_i^Tw + b_i\)),\(g_i\)是严格可行的(即存在\(w\),对所有的\(1 \le i \le k\),有\(g_i(w) \le 0\)),则存在\(w^{*}, \alpha^{*}, \beta^{*}\),\(w^{*}\)是原问题的解,\(\alpha^{*}, \beta^{*}\)是对偶问题的解,满足\(p^{*} = d^{*} = L(w^{*}, \alpha^{*}, \beta^{*})\),且\(w^{*}, \alpha^{*}, \beta^{*}\)满足KKT(Karush-Kuhn-Tucker conditions)条件:
\[ \begin{align*} \frac{\partial}{\partial w_i}L(w^{*}, \alpha^{*}, \beta^{*}) &= 0,\quad i=1,\dots,n\tag{4}\\ \frac{\partial}{\partial \beta_i}L(w^{*}, \alpha^{*}, \beta^{*}) &= 0,\quad i=1,\dots,l\tag{5}\\ \alpha_{i}^{*}g_{i}(w^{*}) &= 0,\quad i=1,\dots,k\tag{6}\\ g_{i}(w^{*}) &\le 0,\quad i=1,\dots,k\tag{7}\\ \alpha_i^* &\ge 0,\quad i=1,\dots,k\tag{8}\\ \end{align*} \]
式6表明,若\(g_{i}(w^*) < 0\),则\(\alpha_i^* = 0\),通常情况下,我们有\(\alpha_i^* = 0 \Leftrightarrow g_{i}(w^*) \neq 0\),这一条件也被称为KKT互补条件,在最优间隔分类器中,我们把满足$ g_{i}(w^*) = 0\(的向量\)x^{(i)}$成为支持向量

最优间隔分类器中的对偶问题

我们的优化问题是:
\[ \begin{align*} \min_{w, b}\quad&\frac{1}{2}w^Tw\\ s.t.\quad& y^{(i)}\left(w^Tx^{(i)} + b\right) \ge 1,\ i=1, \dots, m \end{align*} \]
问题中只有不等式约束,即:
\[ g_i(w,b) = 1 - y^{(i)}\left(w^Tx^{(i)} + b\right) \le 0,\ i = 1,\dots,m \]
拉格朗日函数为:
\[ L(w,b,\alpha) = \frac{1}{2}w^Tw - \sum_{i=1}^{m}\alpha_i\left(y^{(i)}\left(w^Tx^{(i)} + b\right) - 1\right) \]
由于:
\[ \theta_{D}(\alpha) = \min_{w,b}L(w,b,\alpha) \]
我们要令\(L(w,b,\alpha)\)相对于\(w\)和\(b\)取最小值,就需要令:
\[ \begin{align*} \nabla_{w}L(w,b,\alpha) &= w - \sum_{i=1}^{m}\alpha_iy^{(i)}x^{(i)}\overset{\text{set}}{=}0 \Rightarrow w = \sum_{i=1}^{m}\alpha_iy^{(i)}x^{(i)}\\ \nabla_{b}L(w,b,\alpha) &= -\sum_{i=1}^{m}\alpha_iy^{(i)}\overset{\text{set}}{=}0 \end{align*} \]
所以拉格朗日函数可以重写为:
\[ L(w,b,\alpha) = -\frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha_i\alpha_jy^{(i)}y^{(j)}\left<x^{(i)},x^{(j)}\right> + \sum_{i=1}^{m}\alpha_i = W(\alpha) \]
式中的\(\left<x^{(i)},x^{(j)}\right>\)表示\(x^{(i)}\)和\(x^{(j)}\)的内积

对偶问题就是:
\[ \begin{align*} \max_{\alpha}\quad&W(\alpha) = -\frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha_i\alpha_jy^{(i)}y^{(j)}\left<x^{(i)},x^{(j)}\right> + \sum_{i=1}^{m}\alpha_i\\ s.t.\quad& \alpha_i \ge 0,\ i = 1,\dots,m\\ & \sum_{i}^{m} \alpha_i y^{(i)} = 0\\ \end{align*} \]
我们现在可以通过求解对偶问题来解决原问题,这个对偶问题是凸问题,更重要的是,算法中仅包含\(\left<x^{(i)},x^{(j)}\right>\),这对我们接下来引入核函数很重要。

假设我们得到了对偶问题的最优解\(\alpha^*\),就能得到\(w^*\)和\(b^*\):
\[ \begin{align*} w^* &= \sum_{i=1}^{m}\alpha_iy^{(i)}x^{(i)}\\ b^* &= \frac{\min_{i:y^{(i)}=1}w^{*T}x^{(i)} + \max_{i:y^{(i)}=-1}w^{*T}x^{(i)}}{2} \end{align*} \]

对于一个新的测试数据\(x\),预测结果是:
\[ \begin{align*} h_{w,b}(x) &= g(w^{T}x + b) \\ &= g(\sum_{i=1}^{m}\alpha_iy^{(i)}\left<x^{(i)},x\right>+b) \end{align*} \]
预测的过程同样只用到了向量内积,此外,由KKT互补条件可知,只有支持向量对应的\(\alpha_i\)非零,所以实际上只需要求\(x\)与支持向量的内积即可。

之前我们假设样本是线性可分的,但是有时候并非如此,我们可能需要将原始的特征映射到另一个特征空间才能使数据变得线性可分,通常用\(\phi\)表示特征映射,我们处理的特征就从\(x\)变成了\(\phi(x)\),对于前文的分类器,我们需要将\(\left<x^{(i)}, x^{(j)}\right>\)替换为\(\left<\phi(x^{(i)}), \phi(x^{(j)})\right>\)

\(\phi(x)\)的维度可能非常高,计算\(\phi(x)\)的开销也就会非常大,因此我们希望能构造一种函数\(K\),使得:
\[ K(x^{(i)}, x^{(j)}) = \left<\phi(x^{(i)}), \phi(x^{(j)})\right> \]

两种常见的核

多项式核:\(K(x,z) = (x^Tz + c)^d\),假设\(x, y \in \mathbb{R}^n\),则\(K(x,z)\)对应的是两个\(\sum_{i=0}^{d}C_{n+i-1}^{i}=C_ {n+d}^{d}\)维向量的内积,而计算\(K(x,z)\)只需要\(O(n)\)的时间

高斯核:\(K(x,z) = \exp(-\frac{\|x-z\|^2}{2\sigma^2})\),对于高斯核的构建,有一种比较直观的想法是,\(x\)和\(z\)很相近,\(K(x,z)\)的值就大,否则\(K(x,z)\)的值就小。

Mercer定理

给定\(K(x,z)\),\(K\)是一个合法的核(即存在\(\phi\)使得\(K(x,z) = \left<\phi(x), \phi(z)\right>\))当且仅当对于任意的\(\{x^{(1)}, \dots, x^{(m)}\}\)(\(m \lt \infty\)),核矩阵\(K \in \R^{m\times m}\)是半正定的,其中核矩阵\(K\)定义为\(K_{i,j} = K(x^{(i)}, x^{(j)})\)。

核技巧

核并不是只能用于SVM,只要能将一个算法描述成特征向量内积的形式,就可以使用核函数代替映射后的特征的内积

不可分、正则

通过特征映射,原本线性不可分的数据在映射特征空间中可能变得线性可分,但这并不是绝对的,数据不可分的情况还是会出现,此外,有时会训练数据中可能会有一些异常值,这些都会是训练出的分类器性能不佳。

所以我们考虑加正则:
\[ \begin{align*} \min_{w,b,\xi}\quad&\frac{1}{2}\|w\|^2 + C \sum_{i=1}^m\xi_i\\ s.t.\quad&y^{(i)}(w^{T}x^{(i)}+b) \ge 1 - \xi_i\\ &\xi_i \ge 0 \end{align*} \]
拉格朗日函数为:
\[ L(w,b,\xi,\alpha,r) = \frac{1}{2}w^Tw + C\sum_{i=1}^{m}\xi_i - \sum_{i=1}^{m}\alpha_i\left[y^{(i)}\left(w^Tx^{(i)} + b\right) - 1 + \xi_i\right] - \sum_{i=1}^{m}r_i\xi_i \]
求出对偶问题:
\[ \begin{align*} \max_{\alpha}\quad&W(\alpha) = -\frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha_i\alpha_jy^{(i)}y^{(j)}\left<x^{(i)},x^{(j)}\right> + \sum_{i=1}^{m}\alpha_i\\ s.t.\quad& 0 \le \alpha_i \le C,\ i = 1,\dots,m\\ & \sum_{i}^{m} \alpha_i y^{(i)} = 0\\ \end{align*} \]
与不加正则的情况相比,唯一的区别约束条件从\(\alpha_i \ge 0\)改为了\(0 \le \alpha \le C\),在推导过程中,我们能够得到\(\alpha_i + \xi_i = C\),所以我们有:
\[ \begin{align*} \alpha_i = 0 &\Rightarrow y^{(i)}(w^{T}x^{(i)}+b) \ge 1\\ \alpha_i = C &\Rightarrow y^{(i)}(w^{T}x^{(i)}+b) \le 1\\ 0 \lt \alpha_i \lt C &\Rightarrow y^{(i)}(w^{T}x^{(i)}+b) = 1 \end{align*} \]

SMO算法

SMO算法用来解决对偶问题,这里不展开了。

上一篇:信息论基础


下一篇:allegro 设置显示走线长度90