支持向量机

间隔与支持向量

给定训练样本集 D={(xi,yi)}i=1mD = \left\lbrace (\bm{x}_i, y_i) \right\rbrace_{i=1}^m ,其中 xiRd\bm{x}_i \in \mathbb{R}^dyi{1,1}y_i \in \left\lbrace -1, 1 \right\rbrace ,分类学习最基本的想法就是基于训练集 DD 在样本空间中找到一个划分超平面,将不同类别的样本分开。

如图所示,能将训练样本分开的划分超平面可能有很多:

直观来说,应当选择对训练样本局部扰动的「容忍」性最好的。换言之,划分超平面所产生的分类结果是最鲁棒的,对未见示例的泛化能力最强。

样本空间中划分超平面可以描述为

wx+b=0\bm{w}^\intercal \bm{x} + b = 0

其中 w=(w1;w2;;wd)\bm{w} = (w_1; w_2; \dots; w_d) 为法向量,决定了超平面的方向;bb 为位移项,决定了超平面与原点之间的距离。因此划分超平面可以由这两个参数确定,记为 (w,b)(\bm{w}, b)

样本空间中任一点 x\bm{x} 到超平面 (w,b)(\bm{w}, b) 的距离可写为

r=wx+bwr = \frac{\left| \bm{w}^\intercal \bm{x} + b \right|}{\left\| \bm{w} \right\|}

若超平面 (w,b)(\bm{w}, b) 可以将训练样本正确分类,即对于 (xi,yi)D(\bm{x}_i, y_i) \in D,若 yi=+1y_i = +1,则有 wxi+b>0\bm{w}^\intercal \bm{x}_i + b > 0;若 yi=1y_i = -1,则有 wxi+b<0\bm{w}^\intercal \bm{x}_i + b < 0。令

{wxi+b+1,yi=+1wxi+b1,yi=1\begin{cases} \bm{w}^\intercal \bm{x}_i + b \ge +1, & y_i = +1 \\ \bm{w}^\intercal \bm{x}_i + b \le -1, & y_i = -1 \end{cases}

换种写法就是

yi(wxi+b)1,i=1,2,,m\begin{equation} y_i(\bm{w}^\intercal \bm{x}_i + b) \ge 1, \quad i = 1, 2, \dots, m \label{1} \end{equation}

如下图所示,距离超平面最近的这几个训练样本点可使上式等号成立,它们被称为支持向量(support vector):

两个异类支持向量到超平面的距离之和为

γ=2w\gamma = \frac{2}{\left\| \bm{w} \right\|}

这被称为间隔(margin)。

也就是说,目标是找到具有「最大间隔」(maximum margin)的划分超平面,即找到满足 (1)\eqref{1} 约束的参数 w,b\bm{w}, b 使得 γ\gamma 最大:

maxw,b2ws.t.yi(wxi+b)1,i=1,2,,m\max_{\bm{w}, b} \frac{2}{\left\| \bm{w} \right\|} \quad \text{s.t.} \quad y_i(\bm{w}^\intercal \bm{x}_i + b) \ge 1, \quad i = 1, 2, \dots, m

显然最大化间隔,只需要最小化 w2\left\| \bm{w} \right\|^2 即可,因此上述优化问题等价于

minw,b12w2s.t.yi(wxi+b)1,i=1,2,,m\begin{equation} \min_{\bm{w}, b} \frac{1}{2} \left\| \bm{w} \right\|^2 \quad \text{s.t.} \quad y_i(\bm{w}^\intercal \bm{x}_i + b) \ge 1, \quad i = 1, 2, \dots, m \label{2} \end{equation}

这就是支持向量机(Support Vector Machine, SVM)的基本型。

对偶问题

数学知识待额外补充

拉格朗日乘子法

拉格朗日乘子法

最小化 f(x)f(\bm{x}),其中 f(x)f(\bm{x}) 为凸函数,约束条件为

{hi(x)0,i=1,2,,mgj(x)=0,j=1,2,,n\begin{cases} h_i(\bm{x}) \le 0, & i = 1, 2, \dots, m\\ g_{j}(\bm{x}) = 0, & j = 1, 2, \dots, n \end{cases}

拉格朗日函数为

L(x,λ,μ)=f(x)+i=1mλihi(x)+j=1nμjgj(x)\mathcal{L}(\bm{x}, \bm{\lambda}, \bm{\mu}) = f(\bm{x}) + \sum_{i=1}^m \lambda_i h_i(\bm{x}) + \sum_{j=1}^n \mu_j g_j(\bm{x})

对偶问题为

maxλ,μinfxL(x,λ,μ)s.t.λi0,i=1,2,,m\max_{\bm{\lambda}, \bm{\mu}} \inf_{\bm{x}} \mathcal{L}(\bm{x}, \bm{\lambda}, \bm{\mu})\quad \text{s.t.} \quad \lambda_i \ge 0, \quad i = 1, 2, \dots, m

Karush-Kuhn-Tucker(KKT) 条件为

  1. 稳定性:L(x,λ,μ)\mathcal{L}(\bm{x}, \bm{\lambda}, \bm{\mu}) 极值点梯度为零
  2. 原问题约束:hi(x)0,gj(x)=0h_i(\bm{x}) \le 0,\, g_j(\bm{x}) = 0
  3. 对偶问题约束:λi0\lambda_i \ge 0
  4. 互补松弛:λihi(x)=0\lambda_i h_i(\bm{x}) = 0

若满足 KKT 条件,则原问题与对偶问题的解相等。

首先引入拉格朗日乘子得到拉格朗日函数

L(w,b,α)=12w2+i=1mαi(1yi(wxi+b))\mathcal{L}(\bm{w}, b, \bm{\alpha}) = \frac{1}{2} \left\| \bm{w} \right\|^2 + \sum_{i=1}^m \alpha_i \left(1 - y_i(\bm{w}^\intercal \bm{x}_i + b) \right)

w,b\bm{w}, b 偏导为零得

{w=i=1mαiyixi0=i=1mαiyi\left\lbrace\begin{aligned} \bm{w} &= \sum_{i=1}^m \alpha_i y_i \bm{x}_i \\ 0 &= \sum_{i=1}^m \alpha_i y_i \end{aligned}\right.

代回拉格朗日函数得到对偶问题

maxαi=1mαi12i=1mj=1mαiαjyiyjxixjs.t.i=1mαiyi=0,αi0,i=1,2,,m\begin{equation} \begin{aligned} &\max_{\bm{\alpha}} \sum_{i=1}^m \alpha_i - \frac{1}{2} \sum_{i=1}^m \sum_{j=1}^m \alpha_i \alpha_j y_i y_j \bm{x}_i^\intercal \bm{x}_j \\ &\text{s.t.} \quad \sum_{i=1}^{m}\alpha_i y_i = 0,\, \alpha_i \ge 0, \quad i = 1, 2, \dots, m \end{aligned} \label{3} \end{equation}

过程

L(w,b,α)=12wwi=1mαiyiwxi+i=1mαibi=1mαiyi=12wwwi=1mαiyixi+i=1mαi0=12wwww+i=1mαi=i=1mαi12ww=i=1mαi12(i=1mαiyixi)(i=1mαiyixi)=i=1mαi12i=1mj=1mαiαjyiyjxixj\begin{aligned} \mathcal{L}(\bm{w}, b, \bm{\alpha}) &= \dfrac{1}{2}\bm{w}^\intercal \bm{w} - \sum_{i=1}^{m}\alpha_i y_i\bm{w}^\intercal \bm{x}_i + \sum_{i=1}^{m}\alpha_i - b\sum_{i=1}^{m}\alpha_i y_i \\ &= \dfrac{1}{2}\bm{w}^\intercal \bm{w} - \bm{w}^\intercal \sum_{i=1}^{m}\alpha_i y_i \bm{x}_i + \sum_{i=1}^{m}\alpha_i - 0\\ &= \dfrac{1}{2}\bm{w}^\intercal \bm{w} - \bm{w}^\intercal \bm{w} + \sum_{i=1}^{m}\alpha_i\\ &= \sum_{i=1}^{m}\alpha_i - \dfrac{1}{2}\bm{w}^\intercal \bm{w}\\ &= \sum_{i=1}^{m}\alpha_i - \dfrac{1}{2}\left(\sum_{i=1}^{m}\alpha_i y_i \bm{x}_i\right)^\intercal \left(\sum_{i=1}^{m}\alpha_i y_i \bm{x}_i\right)\\ &= \sum_{i=1}^{m}\alpha_i - \dfrac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha_i\alpha_j y_i y_j \bm{x}_i^\intercal \bm{x}_j \end{aligned}

最终模型为

f(x)=wx+b=i=1mαiyixix+b\begin{equation} \begin{aligned} f(\bm{x}) &= \bm{w}^\intercal \bm{x} + b \\ &= \sum_{i=1}^m \alpha_i y_i \bm{x}_i^\intercal \bm{x} + b \\ \end{aligned} \label{4} \end{equation}

KKT 条件为

{αi0yif(xi)10αi(yif(xi)1)=0\left\lbrace\begin{aligned} &\alpha_i \ge 0 \\ &y_i f(\bm{x}_i) - 1 \ge 0 \\ &\alpha_i (y_i f(\bm{x}_i) - 1) = 0 \end{aligned}\right.

可以看出一定有 αi=0\alpha_i = 0yif(xi)=1y_i f(\bm{x}_i) = 1

  • αi=0\alpha_i = 0,则该样本压根不会出现在模型当中,不会对 f(x)f(\bm{x}) 有任何影响。
  • αi>0\alpha_i > 0,则一定有 yif(xi)=1y_i f(\bm{x}_i) = 1,即对应的样本点位于最大间隔边界上,是一个支持向量。

因此得到了支持向量机一个重要性质——解的稀疏性:训练完成后,大部分的训练样本都不需要保留,最终模型仅与支持向量有关。

SMO 算法

求解 (3)\eqref{3} 可以使用 SMO (Sequential Minimal Optimization) 算法。

基本思路:不断执行如下两个步骤直至收敛:

  1. 选取一对需更新的变量 αi,αj\alpha_i, \alpha_{j}
  2. 固定 αi,αj\alpha_i, \alpha_{j} 以外的参数,求解对偶问题更新 αi,αj\alpha_i, \alpha_{j}

仅考虑 αi,αj\alpha_i, \alpha_{j} 时,对偶问题的约束

0=i=1mαiyi0 = \sum_{i=1}^{m}\alpha_i y_i

变为

αiyi+αjyj=c,αi,αj0\alpha_i y_i + \alpha_j y_j = c,\quad \alpha_i, \alpha_j \ge 0

其中 c=ki,jαkykc = -\displaystyle \sum_{k \neq i, j} \alpha_k y_k 是使得约束条件成立的常数。

选取的 αi,αj\alpha_i, \alpha_{j} 有一个不满足 (3)\eqref{3} 时,目标函数就会在迭代后减小。直观来看,KKT 条件 (3)\eqref{3} 违背程度越大,变量更新后导致的目标函数值的减幅越大。因此 SMO 先选取违背 (3)\eqref{3} 程度最大的变量,第二个变量应选择一个使目标函数减小最快的变量。

不过这样比较各变量对应的目标函数减幅的复杂度过高,SMO 采用了一个启发式:使选取的两变量所对应样本之间的间隔最大。

一种直观的解释是,这样的两个变量有很大的差别,与对两个相似的变量进行更新相比,对它们进行更新会带给目标函数值更大的变化。

消去 (3)\eqref{3} 中的 αj\alpha_{j},则得到一个关于 αi\alpha_i 的单变量二次规划问题,仅有的约束是 αi0\alpha_i \ge 0,这样的二次规划问题有闭式解。

对于偏移项 bb,对任意支持向量 (xs,ys)(\bm{x}_s, y_s) 都有 ysf(xs)=1y_s f(\bm{x}_s) = 1,即

ys(iSαiyixixs+b)=1y_s \left( \sum_{i \in S} \alpha_i y_i \bm{x}_i^\intercal \bm{x}_s + b \right) = 1

其中 S={iαi>0,i=1,2,,m}S = \left\lbrace i \mid \alpha_i > 0, i = 1, 2, \dots, m \right\rbrace 为所有支持向量的下标集。

理论上可选取任意支持向量并通过上式获得 bb,但现实任务中常采用一种更鲁棒的做法,即使用所有支持向量求解的平均值

b=1SsS(ysiSαiyixixs)b = \frac{1}{\left| S \right|} \sum_{s \in S} \left( y_s - \sum_{i \in S} \alpha_i y_i \bm{x}_i^\intercal \bm{x}_s \right)

上式需要注意到 1ys=ys\dfrac{1}{y_s} = y_s

核函数

前面的讨论中,假设了训练样本是线性可分的,即存在一个划分超平面能够将训练样本正确分类。但实际任务中,训练样本可能是线性不可分的。如下图的「异或问题」:

对这样的问题,可将样本从原始空间映射到一个更高维的特征空间,使得在这个特征空间中样本是线性可分的。

上图中,若将原始的二维空间映射到一个合适的三维空间,就能找到一个合适的划分超平面。

若原始空间是有限维,即属性数有限,那么一定存在一个高维特征空间使样本线性可分。

ϕ(x)\phi(\bm{x}) 表示将 x\bm{x} 映射后的特征向量,于是特征空间中划分超平面所对应的模型可表示为

f(x)=wϕ(x)+bf(\bm{x}) = \bm{w}^\intercal \phi(\bm{x}) + b

其中 w,b\bm{w}, b 是模型参数。

类似地有对偶问题

maxαi=1mαi12i=1mj=1mαiαjyiyjϕ(xi)ϕ(xj)s.t.i=1mαiyi=0,αi0,i=1,2,,m\begin{aligned} &\max_{\bm{\alpha}} \sum_{i=1}^m \alpha_i - \frac{1}{2} \sum_{i=1}^m \sum_{j=1}^m \alpha_i \alpha_j y_i y_j \phi(\bm{x}_i)^\intercal \phi(\bm{x}_j) \\ &\text{s.t.} \quad \sum_{i=1}^{m}\alpha_i y_i = 0,\, \alpha_i \ge 0, \quad i = 1, 2, \dots, m \end{aligned}

求解上式涉及到计算 ϕ(xi)ϕ(xj)\phi(\bm{x}_i)^\intercal \phi(\bm{x}_{j}),是样本 xi,xj\bm{x}_i, \bm{x}_{j} 映射到特征空间之后的内积。由于特征空间的维数可能很高,甚至是无穷维,因此直接计算是很困难的,需要避开这个障碍。

可以设想一个这样的函数

κ(xi,xj)=ϕ(xi)ϕ(xj)\kappa(\bm{x}_i, \bm{x}_{j}) = \phi(\bm{x}_i)^\intercal \phi(\bm{x}_{j})

xi,xj\bm{x}_i, \bm{x}_{j} 在特征空间的内积等于它们在原始样本空间中通过函数 κ\kappa 计算的结果。于是可重写对偶问题为

maxαi=1mαi12i=1mj=1mαiαjyiyjκ(xi,xj)s.t.i=1mαiyi=0,αi0,i=1,2,,m\begin{equation} \begin{aligned} &\max_{\bm{\alpha}} \sum_{i=1}^m \alpha_i - \frac{1}{2} \sum_{i=1}^m \sum_{j=1}^m \alpha_i \alpha_j y_i y_j \kappa(\bm{x}_i, \bm{x}_j) \\ &\text{s.t.} \quad \sum_{i=1}^{m}\alpha_i y_i = 0,\, \alpha_i \ge 0, \quad i = 1, 2, \dots, m \end{aligned} \label{5} \end{equation}

求解后即可得到

f(x)=wϕ(x)+b=i=1mαiyiϕ(xi)ϕ(x)+b=i=1mαiyiκ(x,xi)+b\begin{equation} \begin{aligned} f(\bm{x}) &= \bm{w}^\intercal \phi(\bm{x}) + b\\ &= \sum_{i=1}^{m} \alpha_i y_i \phi(\bm{x}_i)^\intercal \phi(\bm{x}) + b\\ &= \sum_{i=1}^{m} \alpha_i y_i \kappa(\bm{x}, \bm{x}_i) + b \end{aligned}\label{6} \end{equation}

这种方法称为核技巧(kernel trick),函数 κ\kappa 称为核函数(kernel function)。

(6)\eqref{6} 显示出模型最优解可通过训练样本的核函数展开,这一展式亦称为支持向量展式(support vector expansion)。

若已知映射 ϕ\phi 的具体形式,则可写出核函数 κ\kappa。但现实中通常不知道 ϕ\phi 的形式,核函数是否一定存在?什么样的函数能做核函数?

核函数定理

X\mathcal{X} 为输入空间,κ\kappa 是定义在 X×X\mathcal{X} \times \mathcal{X} 上的对称函数,则 κ\kappa 是核函数当且仅当对于任意数据集 D={x1,x2,,xm}D = \left\lbrace \bm{x}_1, \bm{x}_2, \dots, \bm{x}_m \right\rbrace,「核矩阵」(kernel matrix)K=[κ(xi,xj)]m\bm{K} = [\kappa(\bm{x}_i, \bm{x}_{j})]_{m} 是半正定的。

也就是说,只要一个对称函数所对应的核矩阵半正定,就能作为核函数使用。实际上对于一个半正定矩阵,总能找到一个与之对应的映射 ϕ\phi。换言之,任意一个核函数都隐式地定义了一个称为「再生核希尔伯特空间」(reproducing kernel Hilbert space, RKHS)的特征空间。

特征空间的好坏对于支持向量机的性能至关重要,核函数的选择就成为了支持向量机的最大变数。

几种常用的核函数

名称 表达式 κ(xi,xj)\kappa(\bm{x}_i, \bm{x}_{j}) 参数
线性核 xixj\bm{x}_i^\intercal \bm{x}_{j} -
多项式核 (xixj)d(\bm{x}_i^\intercal \bm{x}_{j})^d d1d \ge 1 为多项式的次数
高斯核(RBF 核) exp(xixj22σ2)\exp\left( -\frac{\left\lVert \bm{x}_i - \bm{x}_{j} \right\rVert^2}{2\sigma^2} \right) σ>0\sigma > 0 为高斯核的带宽(width)
拉普拉斯核 exp(xixjσ)\exp\left( -\frac{\left\lVert \bm{x}_i - \bm{x}_{j} \right\rVert}{\sigma} \right) σ>0\sigma > 0
Sigmoid 核 tanh(βxixj+θ)\tanh(\beta \bm{x}_i^\intercal \bm{x}_{j} + \theta) β>0,θ<0\beta > 0, \theta < 0

还可以通过函数组合得到

  • κ1,κ2\kappa_1, \kappa_2 是核函数,则对于任意正数 γ1,γ2\gamma_1, \gamma_2,其线性组合 γ1κ1+γ2κ2\gamma_1 \kappa_1 + \gamma_2 \kappa_2 也是核函数
  • κ1,κ2\kappa_1, \kappa_2 是核函数,则它们的直积 κ1κ2(x,z)=κ1(x,z)κ2(x,z)\kappa_1 \otimes \kappa_2(\bm{x}, \bm{z}) = \kappa_1(\bm{x}, \bm{z}) \kappa_2(\bm{x}, \bm{z}) 也是核函数
  • κ1\kappa_1 是核函数,则对于任意函数 g(x)g(\bm{x})κ(x,z)=g(x)κ1(x,z)g(z)\kappa(\bm{x}, \bm{z}) = g(\bm{x}) \kappa_1(\bm{x}, \bm{z}) g(\bm{z}) 也是核函数

软间隔与正则化

现实任务中,往往很难确定合适的核函数使得训练样本在特征空间中线性可分。即使找到了某个核函数,也很难断定是否是由于过拟合所造成的。

缓解该问题的一个办法是允许向量机在一些样本上出错,为此需要引入软间隔(soft margin)的概念,如下图所示:

前面介绍的支持向量机形式要求所有样本满足约束 (1)\eqref{1},即所有样本必须划分正确,这称为硬间隔(hard margin),而软间隔则允许某些样本不满足约束 (1)\eqref{1}

但与此同时,最大化间隔的同时,不满足约束的样本应尽可能的少,于是优化目标可写为

minw,b,ξ12w2+Ci=1m0/1(yi(wxi+b)1)\begin{equation} \min_{\bm{w}, b, \bm{\xi}} \frac{1}{2} \left\| \bm{w} \right\|^2 + C \sum_{i=1}^m \ell_{0 / 1} (y_i(\bm{w}^\intercal \bm{x}_i + b) - 1) \label{7} \end{equation}

其中 C>0C > 0 是一个常数,0/1\ell_{0 / 1} 是「0/1 损失函数」:

0/1(z){1,z<00,z0\ell_{0 / 1}(z)\begin{cases} 1, & z < 0 \\ 0, & z \ge 0 \end{cases}

CC 为无穷大时,迫使所有样本满足约束,此时为硬间隔;CC 为有限值时,允许一些样本不满足约束,此时为软间隔。

然而 0/1\ell_{0 / 1} 数学性质不好,通常使用其他函数替代,称为替代损失(surrogate loss),例如

  • hinge 损失:hinge(z)=max(0,1z)\ell_{\text{hinge}}(z) = \max(0, 1 - z)
  • 指数损失(exponential loss):exp(z)=exp(z)\ell_{\text{exp}}(z) = \exp(-z)
  • 对率损失(logistic loss):log(z)=log(1+exp(z))\ell_{\text{log}}(z) = \log(1 + \exp(-z))

下面采用了 hinge 损失,虽然没有显式写出。而且 hinge 损失的 zz 取的是 yi(wxi+b)y_i(\bm{w}^\intercal \bm{x}_i + b)

引入松弛变量(slack variables)ξi0\xi_i \ge 0,则 (7)\eqref{7} 可写为

minw,b,ξ12w2+Ci=1mξis.t.yi(wxi+b)1ξi,ξi0,i=1,2,,m\begin{equation} \begin{aligned} &\min_{\bm{w}, b, \bm{\xi}} \frac{1}{2} \left\| \bm{w} \right\|^2 + C \sum_{i=1}^m \xi_i\\ &\text{s.t.} \quad y_i(\bm{w}^\intercal \bm{x}_i + b) \ge 1 - \xi_i, \quad \xi_i \ge 0, \quad i = 1, 2, \dots, m \end{aligned} \label{8} \end{equation}

这就是常用的「软间隔支持向量机」。

(8)\eqref{8} 每个样本都有一个对应的松弛变量,用以表征该样本不满足约束 (1)\eqref{1} 的程度

类似 (2)\eqref{2},这仍是一个二次规划问题,同样使用拉格朗日乘子法得到拉格朗日函数

L(w,b,α,ξ,μ)=12w2+Ci=1mξi=+i=1mαi(1ξiyi(wxi+b))i=1mμiξi\begin{aligned} \mathcal{L}(\bm{w}, b, \bm{\alpha}, \bm{\xi}, \bm{\mu}) &= \dfrac{1}{2} \left\lVert \bm{w} \right\rVert^2 + C \sum_{i=1}^{m}\xi_i\\ &\phantom{=} + \sum_{i=1}^{m}\alpha_i(1 - \xi_i - y_i(\bm{w}^\intercal \bm{x}_i + b)) - \sum_{i=1}^{m}\mu_i \xi_i \end{aligned}

其中 αi,μi0\alpha_i, \mu_i \ge 0 是拉格朗日乘子。

w,b,ξi\bm{w}, b, \xi_i 求偏导数为零,得

{w=i=1mαiyixi0=i=1mαiyiC=αi+μi\left\lbrace\begin{aligned} \bm{w} &= \sum_{i=1}^{m}\alpha_i y_i \bm{x}_i \\ 0 &= \sum_{i=1}^{m}\alpha_i y_i \\ C &= \alpha_i + \mu_i \end{aligned}\right.

将上面三个式子代入拉格朗日函数可得对偶问题

maxαi=1mαi12i=1mj=1mαiαjyiyjxixjs.t.i=1mαiyi=0,0αiC,i=1,2,,m\begin{equation} \begin{aligned} &\max_{\bm{\alpha}} \sum_{i=1}^{m}\alpha_i - \dfrac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha_i\alpha_j y_i y_j \bm{x}_i^\intercal \bm{x}_j\\ &\text{s.t.} \quad \sum_{i=1}^{m}\alpha_i y_i = 0,\, 0 \le \alpha_i \le C, \quad i = 1, 2, \dots, m \end{aligned} \label{9} \end{equation}

对照原对偶问题,二者唯一的差别是对于对偶变量的约束不同:原问题是 0αi0 \le \alpha_i,而这里是 0αiC0 \le \alpha_i \le C。于是可以采用同样的算法求解 (9)\eqref{9}。引入核函数后能得到与式 (6)\eqref{6} 相同的支持向量展式。

类似的,对软间隔支持向量机,KKT 条件要求

{αi,μi0yif(xi)1+ξi0αi(yif(xi)1+ξi)=0ξi0,μiξi=0\left\lbrace\begin{aligned} &\alpha_i, \mu_i \ge 0\\ &y_i f(\bm{x}_i) - 1 + \xi_i \ge 0\\ &\alpha_i (y_i f(\bm{x}_i) - 1 + \xi_i) = 0\\ &\xi_i \ge 0,\, \mu_i \xi_i = 0 \end{aligned}\right.

于是对于任意训练样本 (xi,yi)(\bm{x}_i, y_i),总有 αi=0\alpha_i = 0yif(xi)=1ξiy_i f(\bm{x}_i) = 1 - \xi_i

  • αi=0\alpha_i = 0,则该样本不会对 f(x)f(\bm{x}) 有任何影响。
  • αi>0\alpha_i > 0,则必有 yif(xi)=1ξiy_i f(\bm{x}_i) = 1 - \xi_i,即该样本是支持向量:
    • αi<C\alpha_i < C,由上面的偏导结果有 μi>0\mu_i > 0,进而 ξi=0\xi_i = 0,即此时该样本恰在最大间隔边界上。
    • αi=C\alpha_i = C,则有 μi=0\mu_i = 0,此时:
      • ξi1\xi_i \le 1,则该样本落在最大间隔内部。
      • ξi>1\xi_i > 1,则该样本被错误分类。

由此可得,软间隔支持向量机最终模型仅与支持向量有关,即通过 hinge 损失函数仍保持了稀疏性

(7)\eqref{7} 的 0/1 损失函数换成别的替代损失函数以得到其他学习模型,这些模型的性质与所用的替代函数直接相关。

但是这些模型都有一个共性:优化目标中的第一项用来描述划分超平面的「间隔大小」,另一项用来表述训练集上的误差,可写为更一般的形式

minfΩ(f)+Ci=1m(f(xi),yi)\min_f \textcolor{ff0099}{\Omega(f)} + C \textcolor{05aa94}{\sum_{i=1}^{m} \ell(f(\bm{x}_i), y_i)}

  • 红色部分,即 Ω(f)\Omega(f) 称为结构风险(structural risk),用以描述模型 ff 的某些性质
  • 青色部分,即 i=1m(f(xi),yi)\displaystyle \sum_{i=1}^m\ell(f(\bm{x}_i), y_i) 称为经验风险(empirical risk),用以描述模型与训练数据的契合程度。

正则化可理解为「罚函数法」——通过对不希望的结果施以惩罚,使得优化过程趋于希望目标。

从这个角度,Ω(f)\Omega(f) 称为正则化项,CC 称为正则化常数。Lp\mathrm{L}_p 范数(norm)是常用的正则化项,其中 L2\mathrm{L}_2 范数 w2\left\lVert \bm{w} \right\rVert_2 倾向于 w\bm{w} 的分量取值尽量均衡,即非零分量个数尽量稠密;而 L0\mathrm{L}_0 范数 w0\left\lVert \bm{w} \right\rVert_0L1\mathrm{L}_1 范数 w1\left\lVert \bm{w} \right\rVert_1 则倾向于 w\bm{w} 的分量取值尽量稀疏,即非零分量个数尽量少。

从贝叶斯估计的角度,可认为是提供了模型的先验概率。

支持向量回归

现在考虑回归问题。给定训练样本 D={(xi,yi)}i=1m,yiRD = \left\lbrace (\bm{x}_i, y_i) \right\rbrace_{i=1}^m,\, y_i \in \R,希望学得一个形如 f(x)=wx+bf(\bm{x}) = \bm{w}^\intercal \bm{x} + b 的回归模型,使得 f(x)f(\bm{x})yy 尽可能接近。而 w,b\bm{w}, b 是待确定的模型参数。

对样本 (x,y)(\bm{x}, y),传统回归模型通常直接基于模型输出 f(x)f(\bm{x}) 与真实输出 yy 之间的差别来计算损失,当且仅当 f(x)=yf(\bm{x}) = y 时损失才为零。

支持向量回归(Support Vector Regression, SVR)则假设我们能「容忍」f(x)f(\bm{x})yy 之间最多有 ϵ\epsilon 的偏差,即当 f(x)yϵ\left| f(\bm{x}) - y \right| \ge \epsilon 时才计算损失。

这就相当于以 f(x)f(\bm{x}) 为中心,构建了一个宽度为 2ϵ2\epsilon 的间隔带,若训练样本落入此间隔带,则认为是被预测正确的:

于是 SVR 问题可形式化为

minw,b12w2+Ci=1mϵ(f(xi)yi)\begin{equation} \min_{\bm{w}, b} \frac{1}{2} \left\lVert \bm{w} \right\rVert^2 + C \sum_{i=1}^{m}\ell_{\epsilon}(f(\bm{x}_i) - y_i) \label{10} \end{equation}

其中 CC 为正则化常数,ϵ\ell_{\epsilon}ϵ\epsilon-不敏感损失(ϵ\epsilon-insensitive loss)函数:

ϵ(z){0,zϵzϵ,z>ϵ\ell_{\epsilon}(z)\begin{cases} 0, & \left| z \right| \le \epsilon \\ \left| z \right| - \epsilon, & \left| z \right| > \epsilon \end{cases}

引入松弛变量 ξi,ξ^i\xi_i, \hat{\xi}_i,则 (10)\eqref{10} 可写为

minw,b,ξi,ξ^i12w2+Ci=1m(ξi+ξ^i)s.t.f(xi)yiϵ+ξi,yif(xi)ϵ+ξ^i,ξi,ξ^i0\begin{equation} \begin{aligned} &\min_{\bm{w}, b, \xi_i, \hat{\xi}_i} \frac{1}{2} \left\lVert \bm{w} \right\rVert^2 + C \sum_{i=1}^{m}(\xi_i + \hat{\xi}_i)\\ &\text{s.t.}\quad f(\bm{x}_i) - y_i \le \epsilon + \xi_i, \quad y_i - f(\bm{x}_i) \le \epsilon + \hat{\xi}_i, \quad \xi_i, \hat{\xi}_i \ge 0 \end{aligned} \label{11} \end{equation}

引入拉格朗日乘子 μi,μ^i,αi,α^i0\mu_i, \hat{\mu}_i, \alpha_i, \hat{\alpha}_i \ge 0,拉格朗日函数

L(w,b,α,α^,ξ,ξ^,μ,μ^)=12w2+Ci=1m(ξi+ξ^i)i=1mμiξii=1mμ^iξ^i=+i=1mαi(f(xi)yiϵξi)+i=1mα^i(yif(xi)ϵξ^i)\begin{aligned} \mathcal{L}(\bm{w}, b, \bm{\alpha}, \hat{\bm{\alpha}}, \bm{\xi}, \hat{\bm{\xi}}, \bm{\mu}, \hat{\bm{\mu}}) &= \dfrac{1}{2}\left\lVert \bm{w} \right\rVert^2 + C\sum_{i=1}^{m}(\xi_i + \hat{\xi}_i) - \sum_{i=1}^{m}\mu_i\xi_i - \sum_{i=1}^{m}\hat{\mu}_i\hat{\xi}_i\\ &\phantom{=} + \sum_{i=1}^{m}\alpha_i(f(\bm{x}_i) - y_i - \epsilon - \xi_i) + \sum_{i=1}^{m}\hat{\alpha}_i(y_i - f(\bm{x}_i) - \epsilon - \hat{\xi}_i) \end{aligned}

w,b,ξi,ξ^i\bm{w}, b, \xi_i, \hat{\xi}_i 求偏导数为零,得

{w=i=1m(α^iαi)xi0=i=1m(α^iαi)C=αi+μiC=α^i+μ^i\left\lbrace\begin{aligned} \bm{w} &= \sum_{i=1}^{m}(\hat{\alpha}_i - \alpha_i)\bm{x}_i \\ 0 &= \sum_{i=1}^{m}(\hat{\alpha}_i - \alpha_i) \\ C &= \alpha_i + \mu_i\\ C &= \hat{\alpha}_i + \hat{\mu}_i \end{aligned}\right.

将上面四个式子代入拉格朗日函数可得对偶问题

maxα,α^i=1m[yi(α^iαi)ϵ(α^i+αi)]12i=1mj=1m(α^iαi)(α^jαj)xixjs.t.i=1m(α^iαi)=0,0αi,α^iC,i=1,2,,m\begin{equation} \begin{aligned} &\max_{\bm{\alpha}, \hat{\bm{\alpha}}} \sum_{i=1}^{m}[y_i(\hat{\alpha}_i - \alpha_i) - \epsilon(\hat{\alpha}_i + \alpha_i)] - \dfrac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}(\hat{\alpha}_i - \alpha_i)(\hat{\alpha}_j - \alpha_j)\bm{x}_i^\intercal \bm{x}_j\\ &\text{s.t.} \quad \sum_{i=1}^{m}(\hat{\alpha}_i - \alpha_i) = 0,\, 0 \le \alpha_i, \hat{\alpha}_i \le C, \quad i = 1, 2, \dots, m \end{aligned} \label{12} \end{equation}

KKT 条件为

{αi(f(xi)yiϵξi)=0α^i(yif(xi)ϵξ^i)=0αiα^i=0,ξiξ^i=0(Cαi)ξi=0,(Cα^i)ξ^i=0\left\lbrace\begin{aligned} &\alpha_i (f(\bm{x}_i) - y_i - \epsilon - \xi_i) = 0\\ &\hat{\alpha}_i (y_i - f(\bm{x}_i) - \epsilon - \hat{\xi}_i) = 0\\ &\alpha_i \hat{\alpha}_i = 0,\, \xi_i \hat{\xi}_i = 0\\ &(C - \alpha_i)\xi_i = 0,\, (C - \hat{\alpha}_i)\hat{\xi}_i = 0 \end{aligned}\right.

当且仅当 f(xi)yiϵξi=0f(\bm{x}_i) - y_i - \epsilon - \xi_i = 0αi\alpha_i 能取非零值,当且仅当 yif(xi)ϵξ^i=0y_i - f(\bm{x}_i) - \epsilon - \hat{\xi}_i = 0α^i\hat{\alpha}_i 能取非零值。

换言之,仅当样本 (xi,yi)(\bm{x}_i, y_i) 不落入 ϵ\epsilon-间隔带中,相应的 αi,α^i\alpha_i, \hat{\alpha}_i 才能取非零值。

此外,上述两个约束不能同时成立,因为 α,α^i\alpha, \hat{\alpha}_i 中至少一个为零。

代入 f(x)=wx+bf(\bm{x}) = \bm{w}^\intercal \bm{x} + b,SVR 的解形如

f(x)=i=1m(α^iαi)xix+b\begin{equation} f(\bm{x}) = \sum_{i=1}^{m}(\hat{\alpha}_i - \alpha_i)\bm{x}_i^\intercal \bm{x} + b \label{13} \end{equation}

能使 (13)\eqref{13}(α^iαi)0(\hat{\alpha}_i - \alpha_i) \ne 0 的样本即为 SVR 的支持向量,它们必落在 ϵ\epsilon-间隔带之外。

SVR 的支持向量仅是训练样本的一部分,即其解仍具有稀疏性。

由 KKT 条件可得,对每个样本 (xi,yi)(\bm{x}_i, y_i) 都有 (Cαi)ξi=0(C - \alpha_i) \xi_i = 0αi(f(xi)yiϵξi)=0\alpha_i(f(\bm{x}_i) - y_i - \epsilon - \xi_i) = 0。于是得到 αi\alpha_i 后,若 0<αi<C0 < \alpha_i < C,则有 ξi=0\xi_i = 0,进而有

b=yi+ϵi=1m(α^iαi)xixb = y_i + \epsilon - \sum_{i=1}^{m} (\hat{\alpha}_i - \alpha_i) \bm{x}_i^\intercal \bm{x}

因此求解 (12)\eqref{12} 得到 αi\alpha_i 后,可任意选取满足 0<αi<C0 < \alpha_i < C 的样本,通过上式求得 bb。实践中常采用一种更鲁棒的方法,选取多个(或所有)满足条件 0<αi<C0 < \alpha_i < C 的样本求解 bb 后取平均值。

考虑特征映射形式 f(x)=wϕ(x)+bf(\bm{x}) = \bm{w}^\intercal \phi(\bm{x}) + b,则上面的 w=i=1m(α^iαi)xi\bm{w} = \sum_{i=1}^{m} (\hat{\alpha}_i - \alpha_i) \bm{x}_i 将形如

w=i=1m(α^iαi)ϕ(xi)\bm{w} = \sum_{i=1}^{m} (\hat{\alpha}_i - \alpha_i) \phi(\bm{x}_i)

则 SVR 的解可表示为

f(x)=i=1m(α^iαi)κ(x,xi)+bf(\bm{x}) = \sum_{i=1}^{m} (\hat{\alpha}_i - \alpha_i) \kappa(\bm{x}, \bm{x}_i) + b

其中 κ(x,xi)=ϕ(x)ϕ(xi)\kappa(\bm{x}, \bm{x}_i) = \phi(\bm{x})^\intercal \phi(\bm{x}_i) 是核函数。

核方法

给定训练样本 {(xi,yi)}i=1m\left\lbrace (\bm{x}_i, y_i) \right\rbrace_{i=1}^m,若不考虑偏移项 bb,无论是 SVM 还是 SVR,学得模型总能表示为核函数 κ(x,xi)\kappa(\bm{x}, \bm{x}_i) 的线性组合。

表示定理(Representer 定理)

H\mathbb{H} 为核函数 κ\kappa 对应的再生核希尔伯特空间,hH\left\lVert h \right\rVert_{\mathbb{H}} 表示 H\mathbb{H} 空间中关于 hh 的范数,对于任意单调递增函数 Ω ⁣:[0,]R\Omega\colon [0, \infty ] \to \R 和任意非负损失函数  ⁣:Rm[0,]\ell\colon \R^m \to [0, \infty ],优化问题

minhHF(h)=Ω(hH)+(h(x1),,h(xm))\min_{h \in \mathbb{H}} F(h) = \Omega(\left\lVert h \right\rVert_{\mathbb{H}}) + \ell(h(\bm{x}_1), \dots, h(\bm{x}_m))

的解总能表示为

h(x)=i=1mαiκ(x,xi)h^{*}(\bm{x}) = \sum_{i=1}^{m}\alpha_i \kappa(\bm{x}, \bm{x}_i)

表示定理对于损失函数没有限制,对正则化项 Ω\Omega 仅要求单调递增,甚至不要求 Ω\Omega 是凸函数。因此对于一般的损失函数和正则化项,上面的优化问题的解都能表示为核函数的线性组合。

人们发展出一系列基于核函数的学习方法,统称为「核方法」(kernel methods)。最常见的是通过「核化」(即引入核函数)来将线性学习器拓展为非线性学习器。

具体略。