1. 对偶问题应用之支持向量机SVM

1.1 SVM

设给定数据集:{(si,yi):yi∈{1,−1},i=1,⋯ ,m}\{(\mathbf{s}^i,y^i):y^i\in\{1,-1\},i=1,\cdots,m\}{(si,yi):yi{1,1},i=1,,m},我们想要找到一个决策超平面(decision hyperplane),用方程表示为 xTs+b=0\mathbf{x}^T\mathbf{s}+b=0xTs+b=0,使两个类别的样本尽量分开,如图:
在这里插入图片描述

SVM的目标就是最大化分类间隔(margin),所以找到 margin 的数学表达式至关重要。

1.1.1 【推导】:分类间隔的数学表达

因为等比例放缩 x,b\mathbf{x},bx,b 不会改变平面位置,也就是说 xTs+b=0\mathbf{x}^T\mathbf{s}+b=0xTs+b=0c(xTs+b)=0c(\mathbf{x}^T\mathbf{s}+b)=0c(xTs+b)=0 表示同一个超平面

设此时的决策超平面是 x0Ts+b0=0\mathbf{x_0}^T\mathbf{s}+b_0=0x0Ts+b0=0 ,决策上界为 x0Ts+b0=k0\mathbf{x_0}^T\mathbf{s}+b_0=k_0x0Ts+b0=k0,因为等比例缩放不改变平面位置,所以决策上界可以重写为 1k0(x0Ts+b0)=1\frac{1}{k_0}(\mathbf{x_0}^T\mathbf{s}+b_0)=1k01(x0Ts+b0)=1,对应的,决策超平面为 1k0(x0Ts+b0)=0⇔x0Ts+b0=0\frac{1}{k_0}(\mathbf{x_0}^T\mathbf{s}+b_0)=0\Leftrightarrow \mathbf{x_0}^T\mathbf{s}+b_0=0k01(x0Ts+b0)=0x0Ts+b0=0

所以无论如何我们都能找到一组 x,b\mathbf{x},bx,b 使得 xTs++b≥1\mathbf{x}^T\mathbf{s^+}+b\geq1xTs++b1xTs−+b≤−1\mathbf{x}^T\mathbf{s^{-}}+b\leq-1xTs+b1
在这里插入图片描述

我们可以通过缩放 x,b\mathbf{x},bx,b 让正例和负例中距离决策超平面最近的两个点分别落在超平面 H1:xTs+b=1H_1:\mathbf{x}^T\mathbf{s}+b=1H1:xTs+b=1H2:xTs+b=−1H_2:\mathbf{x}^T\mathbf{s}+b=-1H2:xTs+b=1 上。

不难推出 H1H_1H1H2H_2H2 之间的距离,即分类间隔(margin)等于 2∣∣x∣∣2\frac{2}{||\mathbf{x}||_2}∣∣x22

1.1.2 【SVM】约束优化形式

SVM的原优化问题定义:
max⁡x,b2∣∣x∣∣s.t. yi(xTsi+b)≥1 \max\limits_{\mathbf{x},b} \frac{2}{||\mathbf{x}||} \\ \text{s.t. }y^i(\mathbf{x}^T\mathbf{s}^i+b)\geq1 x,bmax∣∣x∣∣2s.t. yi(xTsi+b)1
写成约束优化标准形式:
min⁡x,b∣∣x∣∣22s.t. 1−yi(xTsi+b)≤0 \min\limits_{\mathbf{x},b}\frac{||\mathbf{x}||^2}{2} \\ \text{s.t. } 1-y^i(\mathbf{x}^T\mathbf{s}^i+b)\leq0 x,bmin2∣∣x2s.t. 1yi(xTsi+b)0

1.1.3 【推导】求解

  • 将上述约束优化式子转换成拉格朗日函数:

L(x,b,λ)=12∣∣x∣∣2+∑i=1mλi(1−yi(xTsi+b)) L(\mathbf{x},b,\lambda)=\frac{1}{2}||\mathbf{x}||^2+\sum_{i=1}^m\lambda_i(1-y^i(\mathbf{x}^T\mathbf{s}^i+b)) L(x,b,λ)=21∣∣x2+i=1mλi(1yi(xTsi+b))

  • 根据KKT条件,有如下推断

∂L∂x=0⇒x=∑i=1mλiyisi(1) \frac{\partial L}{\partial\mathbf{x}}=0 \Rightarrow\mathbf{x}=\sum_{i=1}^m\lambda_iy^i\mathbf{s}^i\tag{1} xL=0x=i=1mλiyisi(1)

∂L∂b=0⇒∑i=1mλiyi=0(2) \frac{\partial L}{\partial b}=0\Rightarrow\sum_{i=1}^m\lambda_iy^i=0\tag{2} bL=0i=1mλiyi=0(2)

  • 由公式(1)我们得到:

∣∣x∣∣2=∣∣∑i=1mλiyisi∣∣2=∑i=1m∑j=1mλiλjyiyj(si)Tsi ||\mathbf{x}||^2=||\sum_{i=1}^m\lambda_iy^i\mathbf{s}^i||^2=\sum_{i=1}^m\sum_{j=1}^m\lambda_i\lambda_jy^iy^j(\mathbf{s}^i)^T\mathbf{s}^i ∣∣x2=∣∣i=1mλiyisi2=i=1mj=1mλiλjyiyj(si)Tsi

  • 于是,拉格朗日函数可以化简为:

L(x,b,λ)=12∣∣x∣∣2+∑i=1mλi−∑i=1mλiyi(si)Tx=∑i=1mλi−12∣∣x∣∣2⇒q(λ)=∑i=1mλi−12∑i=1m∑j=1mλiλjyiyj(si)Tsi L(\mathbf{x},b,\lambda)=\frac{1}{2}||\mathbf{x}||^2+\sum_{i=1}^m\lambda_i-\sum_{i=1}^m\lambda_iy^i(\mathbf{s}^i)^T\mathbf{x}=\sum_{i=1}^m\lambda_i-\frac{1}{2}||\mathbf{x}||^2\\\Rightarrow q(\lambda)=\sum_{i=1}^m\lambda_i-\frac{1}{2}\sum_{i=1}^m\sum_{j=1}^m\lambda_i\lambda_jy^iy^j(\mathbf{s}^i)^T\mathbf{s}^i L(x,b,λ)=21∣∣x2+i=1mλii=1mλiyi(si)Tx=i=1mλi21∣∣x2q(λ)=i=1mλi21i=1mj=1mλiλjyiyj(si)Tsi

  • 上述的分析可以推出下面对偶问题:

max⁡λ∑i=1mλi−12∑i=1m∑j=1mλiλjyiyj(si)Tsis.t. ∑i=1mλiyi=0,λi≥0,i∈{1,⋯ ,m}. \max\limits_{\lambda}\sum_{i=1}^m\lambda_i-\frac{1}{2}\sum_{i=1}^m\sum_{j=1}^m\lambda_i\lambda_jy^iy^j(\mathbf{s}^i)^T\mathbf{s}^i\\ \text{s.t. } \sum_{i=1}^m\lambda_iy^i=0,\lambda_i\geq0,i\in\{1,\cdots,m\}. λmaxi=1mλi21i=1mj=1mλiλjyiyj(si)Tsis.t. i=1mλiyi=0,λi0,i{1,,m}.

  • 不难发现,对偶问题的目标函数是一个二次型目标函数,且约束都为线性约束。一旦我们找到了对偶问题的最优解 λi∗\lambda_i^*λi,我们就能得到 x=∑i=1mλi∗yisi\mathbf{x}=\sum_{i=1}^m\lambda_i^*y^i\mathbf{s}^ix=i=1mλiyisi
  • 我们称 si\mathbf{s}^isi 为一个支持向量,如果 yi(xTsi+b)=1y^i(\mathbf{x}^T\mathbf{s}^i+b)=1yi(xTsi+b)=1,如果 si\mathbf{s}^isi 不是支持向量,根据互补松弛条件,λi=0\lambda_i=0λi=0,于是 x\mathbf{x}x 可以被支持向量表示为:x=∑i:λi>0λiyisi\mathbf{x}=\sum\limits_{i:\lambda_i>0}\lambda_iy^i\mathbf{s}^ix=i:λi>0λiyisi
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐