上篇: SVM(支持向量机)(一)基本形式推导
凸优化
考虑如下优化问题:
应用拉格朗日乘子法:
定义拉格朗日对偶函数
G
\mathcal{G}
G,这里
i
n
f
inf
inf 是上确界(集合的最小上界)。为什么不写成
m
i
n
min
min ?因为
G
\mathcal{G}
G 是非凸的,存在
α
,
β
\alpha,\beta
α,β 使其趋于无穷小,不存在一个最小值,通过
i
n
f
inf
inf 表达将这种情况包含。
下界性质
当
α
≥
0
\alpha\geq0
α≥0时,
G
\mathcal{G}
G 是优化目标
f
f
f的下界,这也是构造拉格朗日对偶函数
G
\mathcal{G}
G的意义。
拉格朗日对偶问题
解决该问题可以找到原问题的一个下界,相比于解决具有
(
k
+
l
)
(k+l)
(k+l)个约束的问题,拉格朗日对偶问题仅有简单约束
α
≥
0
\alpha\geq0
α≥0,求解难度大大降低。
那么是否存在两个问题等价的情形?或者它们的解十分相近。
p
∗
p^*
p∗ 是原问题的最优解,
d
∗
d^*
d∗ 是对偶问题的最优解,首先满足弱对偶性:
d
∗
≤
p
∗
d^*\leq p^*
d∗≤p∗,而且通过最优对偶间隔
p
∗
−
d
∗
p^*-d^*
p∗−d∗ 描述它们的接近程度。
强对偶成立的条件
Slater‘’s Constraint Qualifications
互补松弛性(Complementary Slackness)
Proof:
KTT条件
强对偶成立 p ∗ = d ∗ p^*=d^* p∗=d∗ ⟹ \Longrightarrow ⟹ 以上几个性质,统称KTT条件。
p
∗
=
L
(
ω
∗
,
α
∗
,
β
∗
)
=
G
(
α
∗
,
β
∗
)
=
d
∗
p^*=\mathcal{L}(\omega^*,\alpha^*,\beta^*)=\mathcal{G}(\alpha^*,\beta^*)=d^*
p∗=L(ω∗,α∗,β∗)=G(α∗,β∗)=d∗ ,
- Stationarity:极值点处 G \mathcal{G} G梯度为0;
- Primal feasibility:基本约束条件;
- Dual feasibility:满足该条件才能保证 G \mathcal{G} G是 f f f的下界,对偶转化才有意义;
- Complementary slackness:强对偶成立的必要条件, α > 0 \alpha>0 α>0时不等式 g i ( ω i ) g_i(\omega_i) gi(ωi)约束生效,极值点处取等。
SVM对偶问题转化
将上述凸优化方法应用至博客(一)我们推导出的 primal form 上,并通过 KTT 条件进行化简(SVM 中原问题和对偶问题是强对偶的关系):
求解 The Solution
最后的 dual problem 为 QP 问题,可以用 SMO 算法求解。这里老师 PPT 直接说用求解器,可能 QP 问题是一个比较常见的优化问题。
而得到对偶问题的解,如何转化回原问题的解,还是通过 KTT 条件。
第一条是由互补松弛性质导出,
α
∗
g
(
ω
∗
)
=
0
\alpha^*g(\omega^*)=0
α∗g(ω∗)=0,而在SVM问题上
g
(
ω
)
=
1
−
y
(
i
)
(
ω
T
x
(
i
)
+
b
)
g(\omega)=1-y^{(i)}(\omega^Tx^{(i)}+b)
g(ω)=1−y(i)(ωTx(i)+b).
下面标签
y
(
i
)
∈
{
−
1
,
1
}
y^{(i)}\in\{-1,1\}
y(i)∈{−1,1},可以推得
y
(
i
)
y^{(i)}
y(i) 与
ω
T
x
(
i
)
+
b
\omega^Tx^{(i)}+b
ωTx(i)+b 同时为
+
1
+1
+1 或者
−
1
-1
−1,即两者相等。
support vector
在上篇博客提到
对于SVM来说去掉一些不在 ω T x + b = ± γ ∣ ∣ ω ∣ ∣ \omega^Tx+b=\pm\gamma||\omega|| ωTx+b=±γ∣∣ω∣∣平面上的数据点并不影响模型,该平面称为支持平面,平面上的数据点称为支持向量(support vector).更准确地说,sv确定了支持平面,sv的margin γ ( i ) \gamma^{(i)} γ(i)是约束 s . t . γ ( i ) ≥ γ s.t.\ \gamma^{(i)}\geq \gamma s.t. γ(i)≥γ取等时的 γ ( i ) \gamma^{(i)} γ(i),SVM(support vector machine)因此得名。为了简化表达,约定一组 ( ω T , b ) (\omega^T,b) (ωT,b),使得支持平面变为 ω T x + b = ± 1 \omega^Tx+b=\pm1 ωTx+b=±1.
在经过一系列转化之后,这种对模型没有影响的数据点对应到对偶问题解中是大多数 α i \alpha_i αi 均是0,而非0的 α i \alpha_i αi 对应的则是 sv,因为根据互补松弛性, α i ≠ 0 \alpha_i\neq0 αi=0时对应不等式 g ( ω i ) ≤ 0 g(\omega_i)\leq0 g(ωi)≤0生效,取等,可得 y ( i ) ( ω T x ( i ) + b ) = 1 y^{(i)}(\omega^Tx^{(i)}+b)=1 y(i)(ωTx(i)+b)=1 ,即 sv 在支撑平面上,或者说参与构建了该平面。
从 support vector 出发重新定义
ω
∗
\omega^*
ω∗: