SVM-PPT

SVM

在线性分类器中,我们知道,线性分类器的任务就是在样本空间中寻找一个超平面,将不同类别的样本分开。但是,对于特定的样本空间,我们可能能够找到很多的超平面都满足条件,那么哪个超平面是最好的呢?

image-20230202205320915

直觉上,我们认为“正中间”的是最好的,它离两类样本都比较远,拥有较好的鲁棒性和泛化能力。

image-20230202205427437

我们已经知道,超平面的方程为 wTx+b=0\boldsymbol{w}^\mathrm T\boldsymbol{x}+b=0,为了找到“正中间”的超平面,我们要找出两类样本中距离超平面最近的那一个,计算出二者的距离,再将超平面放在中间。

两类样本中距离超平面最近的那个样本直接定义了这个超平面,我们把这几个样本称为“支持向量”:

image-20230202210858626

则两个支持向量之间的距离被称做“间隔”,为

γ=2w\gamma = \dfrac 2{\|\boldsymbol{w}\|}

支持向量机基本型

上面的讨论很自然的可以化为一个最优化问题:寻找参数 w\boldsymbol{w}bb,使得 γ\gamma 最大,即:

argmaxw,b 2ws.t. yi(wTxi+b)1, i=1,2,,m\begin{aligned} \underset{\boldsymbol{w}, b}{\arg\max}&\ \dfrac 2{\|\boldsymbol{w}\|} \\ &\text{s.t.}\ y_i(\boldsymbol{w}^\mathrm T\boldsymbol{x}_i + b) \geq 1,\ i = 1, 2, \dots, m \end{aligned}

上式中由于两个支持向量到超平面的距离为 11,所以约束中为 1\geq 1

考虑对问题做等价变换,得到

argminw,b 12w2s.t. yi(wTxi+b)1, i=1,2,,m\begin{aligned} \underset{\boldsymbol{w}, b}{\arg\min}&\ \dfrac 12 \|\boldsymbol{w}\|^2 \\ &\text{s.t.}\ y_i(\boldsymbol{w}^\mathrm T\boldsymbol{x}_i + b) \geq 1,\ i = 1, 2, \dots, m \end{aligned}

这是一个凸二次规划问题,后文将使用拉格朗日乘子法进行解决。

不等式约束的最优化问题:

此类最优化问题的标准形式为:

minx f(x)s.t. gi(x)0,hj(x)=0i[1,m],j[1,p]\begin{aligned} \min_{\boldsymbol{x}}&\ f(\boldsymbol{x}) \\ & \text{s.t. } g_i(\boldsymbol{x}) \leq 0, h_j(\boldsymbol{x}) = 0\quad i \in [1, m], j \in [1, p] \end{aligned}

其中 gi(x)g_i(x) 为不等式约束,hj(x)h_j(x) 为等式约束,mmpp 为约束个数。

定义拉格朗日函数

L(x,λ,μ)=f(x)+i=1mλigi(x)+k=1pμkhk(x)L(\boldsymbol{x}, \boldsymbol{\lambda}, \boldsymbol{\mu}) = f(\boldsymbol x) + \sum_{i=1}^m \lambda_i g_i(\boldsymbol x) + \sum_{k=1}^p \mu_k h_k(\boldsymbol x)

如果存在一组解 x\boldsymbol{x}^* 满足

{xL=0hk(x)=0, k=1,2,,pgj(x)0μj0μjgj(x)=0, j=1,2,,m\begin{cases} \nabla_x L = 0 \\ h_k(\boldsymbol x^*) = 0,\ k = 1, 2, \cdots, p \\ g_j(\boldsymbol x^*) \leq 0 \\ \mu_j \geq 0 \\ \mu_j g_j(\boldsymbol x^*) = 0,\ j = 1, 2, \cdots, m \end{cases}

则这组解 x\boldsymbol x^* 为满足条件的一组可行解。

举例:

min x12+x22s.t.{x1+x2=1x2α\begin{aligned} \min&\ x_1^2 + x_2^2 \\ & \text{s.t.} \begin{cases} x_1 + x_2 = 1 \\ x_2 \leq \alpha \end{cases} \end{aligned}

问题的拉格朗日函数为

L(x1,x2,λ,μ)=x12+x22+λ(1x1x2)+μ(x2α)L(x_1, x_2, \boldsymbol \lambda, \mu) = x_1^2+x_2^2 + \lambda(1 - x_1 - x_2) + \mu(x_2 - \alpha)

KKT 方程组为

{Lxi=0,i=1,2x1+x2=1x2α0μ0μ(x2α)=0\begin{cases} \dfrac {\partial L}{\partial x_i} = 0, i = 1, 2 \\ x_1 + x_2 = 1 \\ x_2 - \alpha \leq 0 \\ \mu \geq 0 \\ \mu(x_2 - \alpha) = 0 \end{cases}

由偏导得到

{2x1λ=02x2λ+μ=0\begin{cases} 2x_1 - \lambda = 0 \\ 2x_2 - \lambda + \mu = 0 \end{cases}

代入 x1+x2=1x_1 + x_2 = 1 得到

{x1=μ4+12x2=μ4+12\begin{cases} x_1 = \dfrac \mu 4 + \dfrac 12 \\ x_2 = -\dfrac \mu 4 + \dfrac 12 \end{cases}

x2α0x_2 -\alpha \leq 0 得到 μ24α\mu \geq 2 - 4\alpha,下面对 α\alpha 进行讨论:

  1. 24α<02 - 4\alpha < 0α>12\alpha > \frac 12 时,所有的 KKT 条件都能满足,此时得到一组解 x1=x2=12x_1^* = x_2^* = \frac 12,目标函数的最小值为 12\frac 12
  2. α=12\alpha = \frac 12 时,也能满足所有的 KKT 条件,此时的解同上;
  3. α<12\alpha < \frac 12 时,μ>0\mu > 0,此时必须有 x2=αx_2 = \alpha,故 x1=1αx_1 = 1 - \alpha,目标函数的极小值为 α2+(1α)2\alpha^2 + (1 - \alpha)^2

注意到 KKT 条件中的其中一个为 μg(x)=0\mu g(\boldsymbol x) = 0μ0\mu \geq 0,则当 g(x)<0g(\boldsymbol x) < 0 时,μ=0\mu = 0 一定成立;而当 g(x)=0g(\boldsymbol x) = 0 时,原问题变为若干个等式约束的最优化问题,必定有 μ>0\mu > 0

根据定义,支持向量是位于间隔边缘上的点,此时有 g(x)=0g(\boldsymbol x) = 0,即 μ>0\mu > 0,于是有结论:对应 μ>0\mu > 0 的点是支持向量

核化法

核化法基于一个非常朴素的思考:前面的所有讨论都是基于训练样本是线性可分的基础上的,即我们可以找到一个超平面将训练样本正确分类。但在现实任务中,原始的样本空间可能是非线性可分的,即找不到一个能正确划分两类样本的超平面。

此时我们通过核化法将数据映射到一个更高维的特征空间,使得样本在特征空间中线性可分,从而完成分类任务。

定理:如果原始空间是有限维的,那么必定存在一个高维特征空间使样本线性可分。

设样本 x\boldsymbol x 映射后的向量为 ϕ(x)\phi(\boldsymbol x),划分超平面为 f(x)=wTϕ(x)+bf(\boldsymbol x) = \boldsymbol w^\mathrm T \phi(\boldsymbol x) + b,则原始的最优化问题变为

minw,b 12w2s.t. yi(wTϕ(xi)+b)1, i=1,2,,m\begin{aligned} \underset{\boldsymbol w, b}{\min}&\ \dfrac 12 \|\boldsymbol w\|^2 \\ &\text{s.t. } y_i(\boldsymbol w^\mathrm T\phi(\boldsymbol x_i) + b) \geq 1,\ i = 1, 2, \cdots, m \end{aligned}

其对偶问题为

maxα i=1mαi12i=1mj=1mαiαjyiyjϕ(xi)Tϕ(xj)s.t. i=1mαiyi=0,αi0,i=1,2,,m\begin{aligned} \underset{\boldsymbol \alpha}{\max}&\ \sum_{i = 1}^m \alpha_i - \dfrac 12 \sum_{i=1}^{m} \sum_{j=1}^{m} \alpha_{i} \alpha_{j} y_{i} y_{j} \phi\left(\boldsymbol{x}_{i}\right)^{\mathrm{T}} \phi\left(\boldsymbol{x}_{j}\right) \\ & \text{s.t. } \sum_{i = 1}^m \alpha_iy_i = 0, \alpha_i \geq 0, i = 1, 2, \cdots, m \end{aligned}

预测方程为

f(x)=wTϕ(x)+b=i=1mαiyiϕ(xi)Tϕ(x)+bf(\boldsymbol x) = \boldsymbol w^\mathrm T\phi(\boldsymbol x) + b = \sum_{i = 1}^m\alpha_iy_i\phi(\boldsymbol x_i)^\mathrm T\phi(\boldsymbol x)+b

但是我们发现了一个计算上的问题:由于 ϕ(x)\phi(\boldsymbol x) 是一个维数非常高甚至无限的向量,两向量内积 ϕ(xi)Tϕ(xj)\phi(\boldsymbol x_i)^\mathrm T\phi(\boldsymbol x_j) 可能难以计算甚至无法计算,开销非常大。注意到,两个高维向量始终只以内积的形式出现,如果我们能找到一个可以代替内积的东西,同时比内积好计算,那么这个问题就可以解决了。

此时我们引入核函数 κ(xi,xj)=ϕ(xi)Tϕ(xj)\kappa(\boldsymbol x_i, \boldsymbol x_j) = \phi(\boldsymbol x_i)^\mathrm T \phi(\boldsymbol x_j),通过此我们可以绕过显式考虑特征映射和计算高维内积困难的问题。“核函数选择”成为决定支持向量机性能的关键。

常用的核函数有以下几种:

名称 表达式 参数
线性核 κ(xi,xj)=xiTxj\kappa(\boldsymbol x_i, \boldsymbol x_j) = \boldsymbol x_i^\mathrm T\boldsymbol x_j
多项式核 κ(xi,xj)=(xiTxj+r)d\kappa(\boldsymbol x_i, \boldsymbol x_j) = (\boldsymbol x_i^\mathrm T\boldsymbol x_j + r)^d rr 为偏移量,d1d \geq 1 为多项式次数
高斯核 κ(xi,xj)=exp(xixj22σ2)\kappa(\boldsymbol x_i, \boldsymbol x_j) = \exp\left(-\frac{|\boldsymbol x_i - \boldsymbol x_j|^2}{2\sigma^2}\right) σ>0\sigma > 0 为高斯核的带宽
拉普拉斯核 κ(xi,xj)=exp(xixjσ)\kappa(\boldsymbol x_i, \boldsymbol x_j) = \exp\left(-\frac{|\boldsymbol x_i - \boldsymbol x_j|}{\sigma}\right) σ>0\sigma > 0
Sigmoid 核 κ(xi,xj)=tanh(βxiTxj+θ)\kappa(\boldsymbol x_i, \boldsymbol x_j) = \tanh(\beta\boldsymbol x_i^\mathrm T\boldsymbol x_j + \theta) β>0\beta > 0θ<0\theta < 0

image-20230203213540689

例:假设 r=1r = 1d=2d = 2,则多项式核函数为

(a×b+1)2=(a×b+1)(a×b+1)=a2b2+2ab+1=(2a,a2,1)(2b,b2,1)\begin{aligned} (a \times b + 1)^2 &= (a \times b + 1)(a \times b + 1) \\ &= a^2b^2 + 2ab + 1 \\ &= (\sqrt 2a, a^2, 1) \cdot (\sqrt 2b, b^2, 1) \end{aligned}

映射函数为

{ϕ:R1R3(x)(z1,z2,z3)=(2x,x2,1)\begin{cases} \phi: \mathbb R^1 \to \mathbb R^3 \\ (x) \to (z_1, z_2, z_3) = (\sqrt 2x, x^2, 1) \end{cases}

另一个例:当映射函数 ϕ(x)=(x12,2x1x2,x22)\phi(\boldsymbol x) = (x_1^2, \sqrt2x_1x_2, x_2^2) 时,多项式核函数的 rrdd 分别是多少?

写做两个向量内积形式为

ϕ(x)ϕ(x)=x1x12+2x1x2x1x2+x2x22=(x1x1+x2x2)2=(x×x)2\begin{aligned} \phi(\boldsymbol x)\phi(\boldsymbol x') &= x_1x_1'^2 + 2x_1x_2x_1'x_2'+x_2x_2'^2 \\ &= (x_1x_1' + x_2x_2')^2 \\ &= (\boldsymbol x \times \boldsymbol x')^2 \end{aligned}

所以 r=0r = 0d=2d = 2

根据核函数我们可以推导得到特征空间中两个向量间的距离和夹角:

  1. 两向量间的距离为

    ϕ(x)ϕ(x)=(ϕ(x)ϕ(x))T(ϕ(x)ϕ(x))=ϕ(x)Tϕ(x)ϕ(x)Tϕ(x)ϕ(x)Tϕ(x)+ϕ(x)Tϕ(x)=κ(x,x)κ(x,x)κ(x,x)+κ(x,x)=κ(x,x)2κ(x,x)+κ(x,x)\begin{aligned} \|\phi(\boldsymbol x) - \phi(\boldsymbol x')\| &= (\phi(\boldsymbol x) - \phi(\boldsymbol x'))^\mathrm T(\phi(\boldsymbol x) - \phi(\boldsymbol x')) \\ &= \phi(\boldsymbol x)^\mathrm T\phi(\boldsymbol x) - \phi(\boldsymbol x)^\mathrm T\phi(\boldsymbol x') - \phi(\boldsymbol x')^\mathrm T\phi(\boldsymbol x) + \phi(\boldsymbol x')^\mathrm T\phi(\boldsymbol x') \\ &= \kappa(\boldsymbol x, \boldsymbol x) - \kappa(\boldsymbol x, \boldsymbol x') - \kappa(\boldsymbol x', \boldsymbol x) + \kappa(\boldsymbol x', \boldsymbol x') \\ &= \kappa(\boldsymbol x, \boldsymbol x) - 2\kappa(\boldsymbol x, \boldsymbol x') + \kappa(\boldsymbol x', \boldsymbol x') \end{aligned}

  2. 两向量间的夹角余弦为

    cosθ=ϕ(x)ϕ(x)ϕ(x)ϕ(x)=ϕ(x)Tϕ(x)ϕ(x)Tϕ(x)ϕ(x)Tϕ(x)=κ(x,x)κ(x,x)κ(x,x)\begin{aligned} \cos \theta &= \dfrac{\phi(\boldsymbol x) \cdot \phi(\boldsymbol x')}{\|\phi(\boldsymbol x)\|\|\phi(\boldsymbol x')\|} \\ &= \dfrac{\phi(\boldsymbol x)^\mathrm T\phi(\boldsymbol x')}{\sqrt{\phi(\boldsymbol x)^\mathrm T\phi(\boldsymbol x)}\sqrt{\phi(\boldsymbol x')^\mathrm T\phi(\boldsymbol x')}} \\ &= \dfrac{\kappa(\boldsymbol x, \boldsymbol x')}{\sqrt{\kappa(\boldsymbol x, \boldsymbol x)}\sqrt{\kappa(\boldsymbol x', \boldsymbol x')}} \end{aligned}

以二分类为例,升维后我们找到两类数据的中心:

image-20230203215721528

根据两类数据的中心可以算出两个中心间的向量 w=c+c\vec w = \vec {c_+} - \vec{c_-}

image-20230203215841170

再计算出分隔这两类的超平面 c=12(c++c)\vec c = \frac 12 (\vec{c_+} + \vec{c_-})

image-20230203215924273

对于一个测试数据 (x,y)(ϕ(x),y)(\boldsymbol x, y) \to (\phi(\boldsymbol x), y)

  1. 当数据属于正类时,有

    image-20230203220133956

    0θ<π20<cosθ1κ(ϕ(x)c,w)00 \leq \theta < \dfrac \pi 2 \Longleftrightarrow 0 < \cos \theta \leq 1 \Longleftrightarrow \kappa(\phi(\boldsymbol x) - \vec c, \vec w) \geq 0

  2. 当数据属于负类时,由上面讨论有 κ(ϕ(x)c,w)0\kappa(\phi(\boldsymbol x) - \vec c, \vec w) \leq 0

综上,数据类别为 y=sign(κ(ϕ(x)c,w))y = \operatorname{sign}(\kappa(\phi(\boldsymbol x) - \vec c, \vec w)),现在考虑如何计算:

  1. 若已知 ϕ(x)\phi(\boldsymbol x)时,那么可以直接进行分类计算;

  2. 在不知道 ϕ(x)\phi(\boldsymbol x) 时,可以通过核函数进行计算:

    κ(ϕ(x)c,w)=wT(ϕ(x)c)=(c+c)Tϕ(x)12(c+c)T(c++c)=(1m+(iyi=1)ϕ(xi)1m(iyi=1)ϕ(xi))Tϕ(x)12(c+Tc+cTc)=(1m+(iyi=1)ϕ(xi)Tϕ(x)1m(iyi=1)ϕ(xi)Tϕ(x))12(1m+(iyi=1)ϕ(xi)T1m+(jyj=1)ϕ(xj)1m(iyi=1)ϕ(xi)T1m(jyj=1)ϕ(xj))=(1m+(iyi=1)κ(xi,x)1m(iyi=1)κ(xi,x))12(1m+2(iyi=1)(jyj=1)κ(xi,xj)1m2(iyi=1)(jyj=1)κ(xi,xj))\begin{aligned} \kappa(\phi(\boldsymbol x) - \vec c, \vec w) &= \boldsymbol w^\mathrm T(\phi(\boldsymbol x) - \boldsymbol c) \\ &= (\boldsymbol c_+ - \boldsymbol c_-)^\mathrm T\phi(\boldsymbol x) - \dfrac 12 (\boldsymbol c_+ - \boldsymbol c_-)^\mathrm T(\boldsymbol c_+ + \boldsymbol c_-) \\ &= \left(\dfrac 1{m_+} \sum_{(i \mid y_i = 1)} \phi(\boldsymbol x_i) - \dfrac 1{m_-} \sum_{(i \mid y_i = -1)} \phi(\boldsymbol x_i)\right)^\mathrm T\phi(\boldsymbol x) - \dfrac 12(\boldsymbol c_+^\mathrm T\boldsymbol c_+ - \boldsymbol c_-^\mathrm T \boldsymbol c_-) \\ &= \left(\dfrac 1{m_+} \sum_{(i \mid y_i = 1)} \phi(\boldsymbol x_i)^\mathrm T\phi(\boldsymbol x) - \dfrac 1{m_-} \sum_{(i \mid y_i = -1)} \phi(\boldsymbol x_i)^\mathrm T \phi(\boldsymbol x)\right) \\& - \dfrac 12\left(\dfrac 1{m_+} \sum_{(i \mid y_i = 1)} \phi(\boldsymbol x_i)^\mathrm T \cdot \dfrac1{m_+}\sum_{(j \mid y_j = 1)} \phi(\boldsymbol x_j) - \dfrac 1{m_-}\sum_{(i \mid y_i = -1)}\phi(\boldsymbol x_i)^\mathrm T\cdot\dfrac 1{m_-}\sum_{(j \mid y_j = -1)} \phi(\boldsymbol x_j)\right) \\ &= \left(\dfrac 1{m_+} \sum_{(i \mid y_i = 1)}\kappa(\boldsymbol x_i, \boldsymbol x) - \dfrac 1{m_-} \sum_{(i \mid y_i = -1)} \kappa(\boldsymbol x_i, \boldsymbol x)\right) \\ &- \dfrac 12 \left(\dfrac 1{m_+^2}\sum_{(i \mid y_i = 1)} \sum_{(j \mid y_j = 1)} \kappa(\boldsymbol x_i, \boldsymbol x_j) - \dfrac 1{m_-^2}\sum_{(i \mid y_i = -1)} \sum_{(j \mid y_j = -1)} \kappa(\boldsymbol x_i, \boldsymbol x_j)\right) \end{aligned}

    我们发现,即便是我们只有核函数,我们仍然能够在高维空间(特征空间)里面进行分类。

    综上,映射函数 ϕ\phi 不是必须的,只有核矩阵

    [κ(x1,x1)κ(x1,x2)κ(x1,xn)κ(x2,x1)κ(x2,x2)κ(x2,xn)κ(xn,x1)κ(xn,x2)κ(xn,xn)]\begin{bmatrix} \kappa(x_1, x_1) & \kappa(x_1, x_2) & \cdots & \kappa(x_1, x_n) \\ \kappa(x_2, x_1) & \kappa(x_2, x_2) & \cdots & \kappa(x_2, x_n) \\ \vdots & \vdots & \vdots & \vdots \\ \kappa(x_n, x_1) & \kappa(x_n, x_2) & \cdots & \kappa(x_n, x_n) \end{bmatrix}

    是半正定时,κ(,)\kappa(\cdot, \cdot) 才是一个可使用的核函数;给定一个 ϕ\phi 也能找到其对应的 κ\kappa,给定一个 κ\kappa 也能找到一个对应的特征空间使得 κ\kappa 对应空间中的向量内积。

    半正定:给定一个大小为 n×nn \times n 的实对称矩阵 AA,若对于任意长度为 nn 的向量 xx,有 xTAx0x^\mathrm TAx\geq 0 恒成立,则称矩阵 AA 是一个半正定矩阵。

硬间隔 SVM

在上面的讨论中,我们得到 hard-margin SVM 的最优化问题:

argminw,b 12w2s.t. yi(wTxi+b)1, i=1,2,,m\begin{aligned} \underset{\boldsymbol{w}, b}{\arg\min}&\ \dfrac 12 \|\boldsymbol{w}\|^2 \\ &\text{s.t.}\ y_i(\boldsymbol{w}^\mathrm T\boldsymbol{x}_i + b) \geq 1,\ i = 1, 2, \dots, m \end{aligned}

构造拉格朗日函数:

L(w,b,α)=12wTw+i=1mαi(1yi(wTxi+b))L(\boldsymbol w, b, \boldsymbol \alpha) = \dfrac 12 \boldsymbol w^\mathrm T\boldsymbol w +\sum_{i=1}^m \alpha_i(1 - y_i(\boldsymbol w^\mathrm T\boldsymbol x_i + b))

分别对 w\boldsymbol wbb 求偏导可得

\begin{aligned} \dfrac{\part L}{\part \boldsymbol w} &= 0 \Longrightarrow \boldsymbol w = \sum_{i=1}^m \alpha_iy_i\boldsymbol x_i \\ \dfrac {\part L}{\part b} &= 0 \Longrightarrow \sum_{i = 1}^m \alpha_iy_i = 0 \end{aligned}

将上述两式代入拉格朗日函数得

L(α)=12wTw+i=1mαii=1mαiyiwTxii=1mαiyib=12(i=1mαiyixiT)(j=1mαjyjxj)+i=1mαii=1mαiyi(j=1mαjyjxjT)xi=i=1mαi12i=1mj=1mαiαjyiyjxiTxj\begin{aligned} L(\alpha) &= \dfrac 12 \boldsymbol w^\mathrm T\boldsymbol w + \sum_{i=1}^m \alpha_i - \sum_{i=1}^m \alpha_iy_i\boldsymbol w^\mathrm T \boldsymbol x_i - \sum_{i=1}^m \alpha_iy_ib \\ &= \dfrac 12 \left(\sum_{i=1}^m \alpha_iy_i \boldsymbol x_i^\mathrm T\right)\left(\sum_{j=1}^m \alpha_jy_j\boldsymbol x_j\right) + \sum_{i=1}^m \alpha_i - \sum_{i=1}^m \alpha_iy_i\left(\sum_{j=1}^m \alpha_jy_j \boldsymbol x_j^\mathrm T\right) \boldsymbol x_i \\ &= \sum_{i=1}^m \alpha_i - \dfrac 12 \sum_{i=1}^m\sum_{j=1}^m \alpha_i\alpha_jy_iy_j \boldsymbol x_i^\mathrm T \boldsymbol x_j \end{aligned}

结合上面对 bb 的偏导得到的约束,我们得到原最优化问题的对偶问题:

maxαi=1mαi12i=1mj=1mαiαjyiyjxiTxjs.t. i=1mαiyi=0,αi0, i=1,2,,m\begin{aligned} \underset{\boldsymbol \alpha}{\max}& \sum_{i=1}^m \alpha_i - \dfrac 12 \sum_{i=1}^m\sum_{j=1}^m \alpha_i\alpha_jy_iy_j \boldsymbol x_i^\mathrm T \boldsymbol x_j \\ &\text{s.t. } \sum_{i=1}^m \alpha_iy_i = 0, \alpha_i \geq 0,\ i = 1, 2, \cdots, m \end{aligned}

下面证明上式存在最大值:

image-20230204102629616

若推广至高维只需要 xϕ(x)\boldsymbol x \to \phi(\boldsymbol x)xiTxjκ(xi,xj)\boldsymbol x_i^\mathrm T \boldsymbol x_j \to \kappa(\boldsymbol x_i, \boldsymbol x_j)

软间隔 SVM

由于 hard-margin SVM 无法容忍无法线性可分的情况,可能在确定超平面时出现过拟合的情况,于是我们允许一部分异类样本落入另一侧的区域,形成 soft-margin SVM。此时最优化问题可写为

minw,b,ξ 12wTw+Ci=1mξi,C>0s.t. ξi0,yi(wTxi+b)1ξi, i=1,2,,m\begin{aligned} \underset{\boldsymbol w, b, \boldsymbol \xi}{\min}&\ \dfrac 12 \boldsymbol w^\mathrm T \boldsymbol w + C \sum_{i = 1}^m \xi_i, C > 0 \\ &\text{s.t. } \xi_i \geq 0, y_i(\boldsymbol w^\mathrm T \boldsymbol x_i + b) \geq 1 - \xi_i,\ i = 1, 2, \cdots, m \end{aligned}

其中 ξi\xi_i 被称为松弛变量

CC 增大时,ξi\sum \xi_i 必定减小,ξi\xi_i 必定减小,则由限制可知间隔减小。

上问题的拉格朗日函数为

L(w,b,ξ,α,β)=12wTw+Ci=1mξi+i=1mαi[1ξiyi(wTxi+b)]i=1mβiξiL(\boldsymbol w, b, \boldsymbol \xi, \boldsymbol \alpha, \boldsymbol \beta) = \dfrac 12 \boldsymbol w^\mathrm T \boldsymbol w + C\sum_{i = 1}^m \xi_i + \sum_{i = 1}^m \alpha_i[1 - \xi_i - y_i(\boldsymbol w^\mathrm T \boldsymbol x_i + b)] - \sum_{i = 1}^m \beta_i \xi_i

令上式分别对 w\boldsymbol wbbξ\boldsymbol \xi 求偏导可得

\begin{aligned} \dfrac {\part L}{\part \boldsymbol w} &= 0 \Longrightarrow \sum_{i = 1}^m \alpha_iy_i\boldsymbol x_i = \boldsymbol w \\ \dfrac {\part L}{\part b} &= 0 \Longrightarrow \sum_{i = 1}^m \alpha_iy_i = 0 \\ \dfrac {\part L}{\part \xi_i} &= 0 \Longrightarrow C - \alpha_i - \beta_i =0 \rightarrow 0 \leq \alpha_i, \beta_i \leq C \end{aligned}