1. 对偶问题应用之支持向量机SVM
1.1 SVM
设给定数据集:
{
(
s
i
,
y
i
)
:
y
i
∈
{
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),用方程表示为
x
T
s
+
b
=
0
\mathbf{x}^T\mathbf{s}+b=0
xTs+b=0,使两个类别的样本尽量分开,如图:
SVM的目标就是最大化分类间隔(margin),所以找到 margin 的数学表达式至关重要。
1.1.1 【推导】:分类间隔的数学表达
因为等比例放缩 x , b \mathbf{x},b x,b 不会改变平面位置,也就是说 x T s + b = 0 \mathbf{x}^T\mathbf{s}+b=0 xTs+b=0 和 c ( x T s + b ) = 0 c(\mathbf{x}^T\mathbf{s}+b)=0 c(xTs+b)=0 表示同一个超平面!
设此时的决策超平面是 x 0 T s + b 0 = 0 \mathbf{x_0}^T\mathbf{s}+b_0=0 x0Ts+b0=0 ,决策上界为 x 0 T s + b 0 = k 0 \mathbf{x_0}^T\mathbf{s}+b_0=k_0 x0Ts+b0=k0,因为等比例缩放不改变平面位置,所以决策上界可以重写为 1 k 0 ( x 0 T s + b 0 ) = 1 \frac{1}{k_0}(\mathbf{x_0}^T\mathbf{s}+b_0)=1 k01(x0Ts+b0)=1,对应的,决策超平面为 1 k 0 ( x 0 T s + b 0 ) = 0 ⇔ x 0 T s + b 0 = 0 \frac{1}{k_0}(\mathbf{x_0}^T\mathbf{s}+b_0)=0\Leftrightarrow \mathbf{x_0}^T\mathbf{s}+b_0=0 k01(x0Ts+b0)=0⇔x0Ts+b0=0。
所以无论如何我们都能找到一组
x
,
b
\mathbf{x},b
x,b 使得
x
T
s
+
+
b
≥
1
\mathbf{x}^T\mathbf{s^+}+b\geq1
xTs++b≥1,
x
T
s
−
+
b
≤
−
1
\mathbf{x}^T\mathbf{s^{-}}+b\leq-1
xTs−+b≤−1
我们可以通过缩放 x , b \mathbf{x},b x,b 让正例和负例中距离决策超平面最近的两个点分别落在超平面 H 1 : x T s + b = 1 H_1:\mathbf{x}^T\mathbf{s}+b=1 H1:xTs+b=1 和 H 2 : x T s + b = − 1 H_2:\mathbf{x}^T\mathbf{s}+b=-1 H2:xTs+b=−1 上。
不难推出 H 1 H_1 H1 和 H 2 H_2 H2 之间的距离,即分类间隔(margin)等于 2 ∣ ∣ x ∣ ∣ 2 \frac{2}{||\mathbf{x}||_2} ∣∣x∣∣22
1.1.2 【SVM】约束优化形式
SVM的原优化问题定义:
max
x
,
b
2
∣
∣
x
∣
∣
s.t.
y
i
(
x
T
s
i
+
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
∣
∣
2
2
s.t.
1
−
y
i
(
x
T
s
i
+
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∣∣x∣∣2s.t. 1−yi(xTsi+b)≤0
1.1.3 【推导】求解
- 将上述约束优化式子转换成拉格朗日函数:
L ( x , b , λ ) = 1 2 ∣ ∣ x ∣ ∣ 2 + ∑ i = 1 m λ i ( 1 − y i ( x T s i + 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∣∣x∣∣2+i=1∑mλi(1−yi(xTsi+b))
- 根据KKT条件,有如下推断
KaTeX parse error: Undefined control sequence: \part at position 8: \frac{\̲p̲a̲r̲t̲ ̲L}{\part\mathbf…
KaTeX parse error: Undefined control sequence: \part at position 8: \frac{\̲p̲a̲r̲t̲ ̲L}{\part b}=0\R…
- 由公式(1)我们得到:
∣ ∣ x ∣ ∣ 2 = ∣ ∣ ∑ i = 1 m λ i y i s i ∣ ∣ 2 = ∑ i = 1 m ∑ j = 1 m λ i λ j y i y j ( s i ) T s i ||\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 ∣∣x∣∣2=∣∣i=1∑mλiyisi∣∣2=i=1∑mj=1∑mλiλjyiyj(si)Tsi
- 于是,拉格朗日函数可以化简为:
L ( x , b , λ ) = 1 2 ∣ ∣ x ∣ ∣ 2 + ∑ i = 1 m λ i − ∑ i = 1 m λ i y i ( s i ) T x = ∑ i = 1 m λ i − 1 2 ∣ ∣ x ∣ ∣ 2 ⇒ q ( λ ) = ∑ i = 1 m λ i − 1 2 ∑ i = 1 m ∑ j = 1 m λ i λ j y i y j ( s i ) T s i 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∣∣x∣∣2+i=1∑mλi−i=1∑mλiyi(si)Tx=i=1∑mλi−21∣∣x∣∣2⇒q(λ)=i=1∑mλi−21i=1∑mj=1∑mλiλjyiyj(si)Tsi
- 上述的分析可以推出下面对偶问题:
max λ ∑ i = 1 m λ i − 1 2 ∑ i = 1 m ∑ j = 1 m λ i λ j y i y j ( s i ) T s i s.t. ∑ i = 1 m λ i y i = 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=1∑mλi−21i=1∑mj=1∑mλiλjyiyj(si)Tsis.t. i=1∑mλiyi=0,λi≥0,i∈{1,⋯,m}.
- 不难发现,对偶问题的目标函数是一个二次型目标函数,且约束都为线性约束。一旦我们找到了对偶问题的最优解 λ i ∗ \lambda_i^* λi∗,我们就能得到 x = ∑ i = 1 m λ i ∗ y i s i \mathbf{x}=\sum_{i=1}^m\lambda_i^*y^i\mathbf{s}^i x=∑i=1mλi∗yisi。
- 我们称 s i \mathbf{s}^i si 为一个支持向量,如果 y i ( x T s i + b ) = 1 y^i(\mathbf{x}^T\mathbf{s}^i+b)=1 yi(xTsi+b)=1,如果 s i \mathbf{s}^i si 不是支持向量,根据互补松弛条件, λ i = 0 \lambda_i=0 λi=0,于是 x \mathbf{x} x 可以被支持向量表示为: x = ∑ i : λ i > 0 λ i y i s i \mathbf{x}=\sum\limits_{i:\lambda_i>0}\lambda_iy^i\mathbf{s}^i x=i:λi>0∑λiyisi