3

这两篇内容为西瓜书第 6 章支持向量机 6.16.26.46.3 的内容:

  • 6.1 间隔与支持向量
  • 6.2 对偶问题
  • 6.4 软间隔与正则化
  • 6.3 核函数

由于本章内容较多,分为两篇来叙述。本篇所包含内容为间隔与支持向量和对偶问题。

如移动端无法正常显示文中的公式,右上角跳至网页即可正常阅读。


支持向量机 (support vector machines, SVM) 是一种二类分类模型。它的基本模型是定义在特征空间上的间隔最大的线性分类器,支持向量机还包括核技巧,这使它成为实质上的非线性分类器。

支持向量机的学习策略是间隔最大化,可形式化为一个求解凸二次规划 (convex quadratic programming) 的问题,也等价于正则化的合叶损失函数 (hinge loss function) 的最小化问题。支持向量机的学习算法是求解凸二次规划的最优化算法。

支持向量机的学习方法包含构建由简单到复杂的模型:线性可分支持向量机线性支持向量机非线性支持向量机

  • 当训练数据线性可分时,通过硬间隔最大化,学习一个线性的分类器,即线性可分支持向量机,又称为硬间隔支持向量机;
  • 当训练数据近似线性可分时,通过软间隔最大化,也学习一个线性的分类器,即线性支持向量机,又称为软间隔支持向量机;
  • 当训练数据线性不可分时,通过使用核技巧及软间隔最大化,学习非线性支持向量机。

下面,我们将从这三部分来叙述开头列出的章节:

  1. 线性可分支持向量机
  2. 线性支持向量机
  3. 非线性支持向量机

间隔与支持向量 & 对偶问题

线性可分支持向量机

给定线性可分训练数据集,通过间隔最大化得到的分离超平面为:

$$ w^T·\phi(x)+b=0 $$

相应的分类决策函数

$$ f(x)=sign(w^T·\phi(x)+b) $$

该决策函数称为线性可分支持向量机。

其中,$\phi(x)$ 是某个确定的特征空间转换函数,它的作用是将 $x$ 映射到(更高的)维度。最简单最直接的就是 $\phi(x)=x$。

而求解分离超平面问题可以等价为求解相应的凸二次规划问题。

那么,这里的分离超平面是指什么呢?我们来看下图:

clipboard.png

当给定训练样本集 $D={(x_1, y_1), (x_2, y_2),···,(x_m, y_m)}$,$y_i\in{-1, +1}$时,分类学习最基本的想法就是基于训练集 $D$ 在样本空间中找到一个分离超平面,将不同类别的样本分开。但能将训练样本分开的分离超平面可能有很多,我们该去找哪一个呢?此时,就需要我们去寻找最大间隔分离超平面。

下面,我们通过推导目标函数的过程,来进一步解释这里的“间隔”。


推导目标函数

根据题设

$$ w^T·\phi(x)+b=0 $$

$$ y(x_i)>0\Leftrightarrow y_i=+1 \\ y(x_i)<0\Leftrightarrow y_i=-1 $$

可推出

$$ y_i·y(x_i)>0 $$

从而,由点到直线的距离公式可知,样本空间中任意点 $x$ 到超平面 $(w, b)$ 的距离可写为:

$$ d[s(w, b)]=\left( \frac{y^{(i)}(w_jx^{(i)}+b_j)}{||w_j||} \right) $$

这里 $i$ 表示第 $i$ 个样本, $j$ 表示第 $j$ 号直线。

则目标函数为

$$ \mathop{\arg\max}_{w,b} \{\frac{1}{||w||}\min \limits_{i}[y_i(w^T·\phi(x_i)+b)] \} $$

函数间隔和几何间隔

现在我们来解释上式中的 $y_i(w^T·\phi(x_i)+b)$。

一般来说,一个点距离分离超平面的远近可以表示分类预测的确信程度。下面我们给出函数间隔几何间隔的定义(参考自李航的《统计学习方法》)。

定义 7.2 (函数间隔)
对于给定的训练训练数据集 $D$ 和超平面 $(w,b)$,定义超平面 $(w,b)$ 关于样本点 $(x_i, y_i)$ 的函数间隔为

$$ \hat{r_i}=y_i(w·x_i+b) $$

定义超平面 $(w,b)$ 关于训练数据集 $D$ 的函数间隔为超平面 $(w,b)$ 关于 $D$ 中所有样本点 $(x_i, y_i)$ 的函数间隔最小值,即

$$ \hat{r}=\min \limits_{i=1,···,m}\hat{r_i} $$

定义 7.3 (几何间隔)
对于给定的训练训练数据集 $D$ 和超平面 $(w,b)$,定义超平面 $(w,b)$ 关于样本点 $(x_i, y_i)$ 的几何间隔为

$$ r_i=y_i\left(\frac{w}{||w||}·x_i+\frac{b}{||w||} \right) $$

定义超平面 $(w,b)$ 关于训练数据集 $D$ 的函数间隔为超平面 $(w,b)$ 关于 $D$ 中所有样本点 $(x_i, y_i)$ 的几何间隔最小值,即

$$ r=\min \limits_{i=1,···,m}r_i $$

其中,$||w||$ 为 $w$ 的 $L_2$ 范数。函数间隔可以表示分类预测的正确性及准确度,但选择分离超平面时,只有函数间隔还不够,只要成比例的改变 $w$ 和 $b$,超平面并没有改变,但函数间隔就会改变。因此对分离超平面的法向量 $w$ 加某些约束,如规范化,$||w||=1$,使得间隔是确定的,这时函数间隔成为几何间隔。

又有分割平面 $y=w^T·\phi(x)+b$。因此,我们总可以通过等比缩放 $w$ 的方法,使得两类点的函数值都满足 $|y|\ge1$。就可以对目标函数做等价变化,下面我们来建立目标函数。

简单来说,这里的对目标函数做等价变化指调整直线系数(即 $w$ 的值),使得最近样本点到直线距离在分子上的值等于 1。即 $min[y_i(w^T·\phi(x)+b)]=1$。

建立目标函数

约束条件:

$$ y_i(w^T·\phi(x_i)+b)\ge1 $$

原目标函数:

$$ \mathop{\arg\max}_{w,b} \{\frac{1}{||w||}\min \limits_{i}[y_i(w^T·\phi(x_i)+b)] \} $$

新目标函数:

$$ \mathop{\arg\max}_{w,b} \frac{1}{||w||} $$

$$ \max\limits_{w,b} \frac{1}{||w||} \\ s.t. \ y_i(w^T·\phi(x_i)+b)\ge1 \quad i=1,2,···,m $$

显然,为了最大化间隔,仅需最大化 $||w||^{-1}$,这等价于最小化 $||w||^2$。于是,上式可重写为

$$ \min \limits_{w,b} \frac{1}{2}||w||^2 \\ s.t. \ y_i(w^T·\phi(x_i)+b)\ge1 \quad i=1,2,···,m $$

这就是支持向量机的基本型。

支持向量

如下图所示,距离超平面最近的几个训练样本点使式 $y_i(w^T·\phi(x_i)+b)\ge1$ 的等号成立,它们被称为支持向量 (support vector),两个异类支持向量到超平的距离之和为图中的 $\gamma$,它被称为间隔

clipboard.png

对偶问题

在介绍如何利用对偶问题求出参数 $w$ 和 $b$ 来得到最大间隔分离超平面所对应的模型之前,我们先来看一般优化问题的拉格朗日乘子法。

优化问题

一般优化问题的拉格朗日乘子法:

$$ minimize\quad f_0(x),\quad x\in R^n \\ subject to\quad f_i(x)\leq0, \quad i=1, ···, m \\ h_j(x)=0, \quad j=1, ···, p $$

拉格朗日函数:

$$ L(x, \lambda, v)=f_0(x)+\sum_{i=1}^{m}\lambda_if_i(x)+\sum_{j=1}^pv_jh_j(x) $$

拉格朗日对偶函数:

$$ g(\lambda,v)=infL(x, \lambda, v)=\inf \limits_{x\in D}(f_0(x)+\sum_{i=1}^{m}\lambda_if_i(x)+\sum_{i=1}^pv_ih_i(x) ) $$

若没有下确界,定义:

$$ g(\lambda,v)=-\infty $$

根据定义,显然有:对 $\forall \lambda >0$, $ \forall v$,若原优化问题有最优值 $p^*$,则有

$$ g(\lambda,v)<p^* $$

进一步,拉格朗日对偶函数为凹函数。


拉格朗日乘子法

下面我们对最终的目标函数使用拉格朗日乘子法来得到其对偶问题 (dual problem)。具体来说,对该式的每条约束添加拉格朗日乘子 $\alpha_i\ge0$,则该问题的拉格朗日函数可写为

$$ L(w,b,\alpha)=\frac{1}{2}||w||^2 - \sum_{i=1}^{m} \alpha_i{y_i(w^T·\phi(x_i)+b)-1} $$

原问题是极小极大问题

$$ \min\limits _{w,b} \max\limits _\alpha L(w,b,\alpha) $$

原问题的对偶问题是极大极小问题

$$ \max\limits _\alpha \min\limits _{w,b} L(w,b,\alpha) $$

即先对 $w, b$ 求偏导,计算出 $w, b$ 回代后得到只剩 $\alpha$ 的式子。

将拉格朗日函数 $L(w,b,\alpha)$ 分别对 $w$,$b$ 求偏导,并令其为 0,则:

$$ \frac{\partial L}{\partial w} =0 \quad \Rightarrow \quad w=\sum_{i=1}^{m}\alpha_iy_i\phi(x_i) \\ \frac{\partial L}{\partial b} =0 \quad \Rightarrow \quad 0=\sum_{i=1}^{m}\alpha_iy_i $$

计算拉格朗日函数的对偶函数

$$ L(w,b,\alpha)=\frac{1}{2}||w||^2-\sum_{i=1}^{m} \alpha_i{y_i(w^T·\phi(x_i)+b)-1} \\ =\frac{1}{2}w^Tw-w^T\sum_{i=1}^{m} \alpha_iy_i\phi(x_i)-b\sum_{i=1}^{m}{\alpha_i}{y_i}+\sum_{i=1}^{m}\alpha_i \\ =\frac{1}{2}w^T\sum_{i=1}^{m}\alpha_iy_i\phi(x_i)-w^T\sum_{i=1}^{m}-b·0+\sum_{i=1}^{m}\alpha_i \\ =\sum_{i=1}^{m}\alpha_i-\frac{1}{2}(\sum_{i=1}^{m}\alpha_iy_i\phi(x_i))^T\sum_{i=1}^{m}\alpha_iy_i\phi(x_i) \\ =\sum_{i=1}^{m}\alpha_i-\frac{1}{2}\sum_{i,j=1}^{m}\alpha_i\alpha_jy_iy_j\phi^T(x_i)\phi(x_j) $$

$$ \alpha^*=\mathop{\arg\max}_{\alpha}\sum_{i=1}^{m}\alpha_i-\frac{1}{2}\sum_{i,j=1}^{m}\alpha_i\alpha_jy_iy_j\phi^T(x_i)\phi(x_j) $$

再求 $\min \limits_{w,b}L(w,b,\alpha)$ 对 $\alpha$ 的极大。

$$ \max\limits_{\alpha}\sum_{i=1}^{m}\alpha_i-\frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha_i\alpha_jy_iy_j(\phi(x_i)\phi(x_j)) \\ s.t. \ \sum_{i=1}^{m}\alpha_iy_i=0 \quad \alpha_i\ge0, i=1,2,···,m $$

目标函数

整理上式添加负号,得到目标函数:

$$ \min\limits_{\alpha} \frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha_i\alpha_jy_iy_j(\phi(x_i)\phi(x_j))-\sum_{i=1}^{m}\alpha_i \\ s.t. \ \sum_{i=1}^{m}\alpha_iy_i=0 \quad \alpha_i\ge0, i=1,2,···,m $$

上述过程需满足 KKT (Karush-Kuhn-Tucker) 条件,即为了满足对偶函数的最大值等于原始问题的最小值。具体的 KKT 条件,这里不再详细叙述。

线性可分支持向量机学习算法

构造并求解约束最优化问题

$$ \min\limits_{\alpha} \frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha_i\alpha_jy_iy_j(\phi(x_i)\phi(x_j))-\sum_{i=1}^{m}\alpha_i \\ s.t. \ \sum_{i=1}^{m}\alpha_iy_i=0 \quad \alpha_i\ge0, i=1,2,···,m $$

求得最优解 $\alpha^*$。

计算

$$ w^*=\sum_{i=1}^{m}\alpha_i^*y_i\phi(x_i) \\ b^*=y_i-\sum_{i=1}^{m}\alpha_i^*y_i\phi(x_i)\phi(x_j) $$

求得分离超平面

$$ w^*\phi(x)+b^*=0 $$

分类决策函数

$$ f(x)=sign(w^*\phi(x)+b^*) $$


最后,我们来看两个例子,来更好的理解线性可分支持向量机学习算法。

clipboard.png
clipboard.png
clipboard.png


参考链接:
为什么拉格朗日对偶函数一定是凹函数(逐点下确界)

不足之处,欢迎指正。

$$$$


秋刀鱼
266 声望66 粉丝

做一件事最重要的是开心🏊