拉格朗日乘子法
拉格朗日乘子法是常用的一阶优化方法,本文首先介绍基本的拉格朗日乘子法,接着介绍具有不等式约束情形的拉格朗日对偶问题,最后使用拉格朗日对偶方法解决硬间隔支持向量机问题。
拉格朗日函数
对函数
f
(
x
)
f(\boldsymbol{x})
f(x),
R
d
↦
R
R^d\mapsto R
Rd↦R,考虑优化问题
min
x
f
(
x
)
s
.
t
.
h
(
x
)
=
0
\begin{aligned} &\min\limits_{\boldsymbol{x}}\quad f(\boldsymbol{x})\\ &s.t.\quad h(\boldsymbol{x})=0 \end{aligned}
xminf(x)s.t.h(x)=0
目标函数在最优点
x
∗
\boldsymbol{x}^{\ast}
x∗处的梯度一定正交于
h
(
x
)
=
0
h(\boldsymbol{x})=0
h(x)=0确定的
d
−
1
d-1
d−1维约束曲面,同时对于约束曲面上的点
x
\boldsymbol{x}
x,
h
(
x
)
h(\boldsymbol{x})
h(x)在该点的梯度一定也正交于约束曲面,也就是说在最优点
x
∗
\boldsymbol{x}^{\ast}
x∗,梯度
∇
f
(
x
)
\nabla f(\boldsymbol{x})
∇f(x)和
∇
g
(
x
)
\nabla g(\boldsymbol{x})
∇g(x)一定相同或相反,即存在
λ
≠
0
\lambda\neq0
λ=0使得
∇
f
(
x
∗
)
+
λ
∇
g
(
x
∗
)
=
0
\nabla f(\boldsymbol{x}^{\ast})+\lambda \nabla g(\boldsymbol{x}^{\ast})=0
∇f(x∗)+λ∇g(x∗)=0
λ
\lambda
λ称为拉格朗日乘子,定义拉格朗日函数
L
(
x
,
λ
)
=
f
(
x
)
+
λ
g
(
x
)
L(\boldsymbol{x},\lambda)=f(\boldsymbol{x})+\lambda g(\boldsymbol{x})
L(x,λ)=f(x)+λg(x)
将其对
x
\boldsymbol{x}
x的偏导置零即可得到
∇
f
(
x
∗
)
+
λ
∇
g
(
x
∗
)
=
0
\nabla f(\boldsymbol{x}^{\ast})+\lambda \nabla g(\boldsymbol{x}^{\ast})=0
∇f(x∗)+λ∇g(x∗)=0,将其对
λ
\lambda
λ的偏导置零即可得到
h
(
x
)
=
0
h(\boldsymbol{x})=0
h(x)=0,于是带约束优化问题转变为对拉格朗日函数
L
(
x
,
λ
)
L(\boldsymbol{x},\lambda)
L(x,λ)的无约束优化问题。
考虑不等式约束优化问题
min
x
f
(
x
)
s
.
t
.
g
(
x
)
≤
0
\begin{aligned} &\min\limits_{\boldsymbol{x}}\quad f(\boldsymbol{x})\\ &s.t.\quad g(\boldsymbol{x}) \leq0 \end{aligned}
xminf(x)s.t.g(x)≤0
其最优点
x
∗
\boldsymbol{x}^{\ast}
x∗或在
g
(
x
)
<
0
g(\boldsymbol{x})<0
g(x)<0的区域内,或在边界
g
(
x
)
=
0
g(\boldsymbol{x})=0
g(x)=0上,当最优解在约束区域内部时,约束
g
(
x
)
≤
0
g(\boldsymbol{x})\leq0
g(x)≤0不起作用,可直接通过条件
∇
f
(
x
)
=
0
\nabla f(\boldsymbol{x})=0
∇f(x)=0来获得最优点,等价于将
λ
\lambda
λ置零然后对
∇
L
(
x
,
λ
)
\nabla L(\boldsymbol{x},\lambda)
∇L(x,λ)置零得到最优点。当最优解落在约束区域边界上时,对应
g
(
x
)
=
0
g(\boldsymbol{x})=0
g(x)=0的情形,等价于等式约束。但此时
∇
f
(
x
∗
)
\nabla f(\boldsymbol{x}^{\ast})
∇f(x∗)与
∇
g
(
x
∗
)
\nabla g(\boldsymbol{x}^{\ast})
∇g(x∗)的方向一定相反,否则在
g
(
x
)
<
0
g(\boldsymbol{x})<0
g(x)<0的区域内
f
(
x
)
f(\boldsymbol{x})
f(x)还能取更小的值。因此存在
λ
>
0
\lambda>0
λ>0使得
∇
f
(
x
∗
)
+
λ
∇
g
(
x
∗
)
=
0
\nabla f(\boldsymbol{x}^{\ast})+\lambda \nabla g(\boldsymbol{x}^{\ast})=0
∇f(x∗)+λ∇g(x∗)=0。总之必满足
λ
g
(
x
)
=
0
\lambda g(\boldsymbol{x})=0
λg(x)=0,因此原问题可转化为在如下约束下最小化拉格朗日函数
{
g
(
x
)
≤
0
λ
≥
0
λ
g
(
x
)
=
0
\begin{cases} g(\boldsymbol{x}) \leq0\\ \lambda\geq0\\ \lambda g(\boldsymbol{x})=0 \end{cases}
⎩⎪⎨⎪⎧g(x)≤0λ≥0λg(x)=0
这称为Karush-Kuhn-Tucker(KKT)条件。
拉格朗日对偶
将上述想法推广到多个约束,考虑具有m个等式约束和n个不等式约束的优化问题
min
x
f
(
x
)
s
.
t
.
h
i
(
x
)
=
0
i
=
1
,
⋯
,
m
g
j
(
x
)
≤
0
j
=
1
,
⋯
,
n
\begin{aligned} &\min\limits_{\boldsymbol{x}}\quad f(\boldsymbol{x})\\ &s.t.\quad h_i(\boldsymbol{x})=0 &i=1,\cdots,m\\ &\quad \quad \;g_j(\boldsymbol{x}) \leq0 &j=1,\cdots,n \end{aligned}
xminf(x)s.t.hi(x)=0gj(x)≤0i=1,⋯,mj=1,⋯,n
引入拉格朗日乘子
a
=
(
a
1
,
⋯
,
a
m
)
T
\boldsymbol{a}=(a_1,\cdots,a_m)^T
a=(a1,⋯,am)T和
b
=
(
b
1
,
⋯
,
b
n
)
T
\boldsymbol{b}=(b_1,\cdots,b_n)^T
b=(b1,⋯,bn)T,相应的广义拉格朗日函数为
L
(
x
,
a
,
b
)
=
f
(
x
)
+
∑
i
=
1
m
a
i
h
i
(
x
)
+
∑
j
=
1
n
b
j
g
j
(
x
)
L(\boldsymbol{x},\boldsymbol{a},\boldsymbol{b})= f(\boldsymbol{x})+\sum_{i=1}^ma_ih_i(\boldsymbol{x})+\sum_{j=1}^nb_jg_j(\boldsymbol{x})
L(x,a,b)=f(x)+i=1∑maihi(x)+j=1∑nbjgj(x)
相应的KKT条件为
{
g
j
(
x
)
≤
0
b
j
≥
0
b
j
g
j
(
x
)
=
0
\begin{cases} g_j(\boldsymbol{x}) \leq0\\ b_j\geq0\\ b_jg_j(\boldsymbol{x})=0 \end{cases}
⎩⎪⎨⎪⎧gj(x)≤0bj≥0bjgj(x)=0
考虑
x
\boldsymbol{x}
x的函数
Θ
P
(
x
)
=
max
a
,
b
;
b
j
≥
0
L
(
x
,
a
,
b
)
\Theta_P(\boldsymbol{x})=\max\limits_{\boldsymbol{a},\boldsymbol{b};b_j\geq0}L(\boldsymbol{x},\boldsymbol{a},\boldsymbol{b})
ΘP(x)=a,b;bj≥0maxL(x,a,b)
假设对于某个
x
\boldsymbol{x}
x违反原始问题的约束,那么
Θ
P
(
x
)
→
+
∞
\Theta_P(\boldsymbol{x})\rightarrow+\infty
ΘP(x)→+∞,因为可以让
a
i
h
i
(
x
)
→
+
∞
a_ih_i(\boldsymbol{x})\rightarrow+\infty
aihi(x)→+∞或让
b
j
→
+
∞
b_j\rightarrow+\infty
bj→+∞。相反如果
x
\boldsymbol{x}
x满足原始问题的约束,那么
Θ
P
(
x
)
=
f
(
x
)
\Theta_P(\boldsymbol{x})=f(\boldsymbol{x})
ΘP(x)=f(x)。因此
Θ
P
(
x
)
=
{
f
(
x
)
,
x
满
足
约
束
+
∞
,
其
他
\Theta_P(\boldsymbol{x})=\begin{cases}f(\boldsymbol{x}),&\boldsymbol{x}满足约束\\ +\infty,&其他 \end{cases}
ΘP(x)={f(x),+∞,x满足约束其他
如果考虑极小化问题
min
x
Θ
P
(
x
)
=
min
x
max
a
,
b
;
b
j
≥
0
L
(
x
,
a
,
b
)
\min\limits_{\boldsymbol{x}}\Theta_P(\boldsymbol{x})=\min\limits_{\boldsymbol{x}}\max\limits_{\boldsymbol{a},\boldsymbol{b};b_j\geq0}L(\boldsymbol{x},\boldsymbol{a},\boldsymbol{b})
xminΘP(x)=xmina,b;bj≥0maxL(x,a,b)
它与原始最优化问题是等价的。称之为广义拉格朗日函数的极小极大问题。定义原始问题的最优值
p
∗
=
min
x
Θ
P
(
x
)
p^{\ast}=\min\limits_{\boldsymbol{x}}\Theta_P(\boldsymbol{x})
p∗=xminΘP(x)
接着考虑
x
\boldsymbol{x}
x的函数
Θ
D
(
a
,
b
)
=
min
x
L
(
x
,
a
,
b
)
\Theta_D(\boldsymbol{a},\boldsymbol{b})=\min\limits_{\boldsymbol{x}}L(\boldsymbol{x},\boldsymbol{a},\boldsymbol{b})
ΘD(a,b)=xminL(x,a,b)
极大化
Θ
D
(
a
,
b
)
\Theta_D(\boldsymbol{a},\boldsymbol{b})
ΘD(a,b),即
max
a
,
b
;
b
j
≥
0
Θ
D
(
a
,
b
)
=
max
a
,
b
;
b
j
≥
0
min
x
L
(
x
,
a
,
b
)
\max\limits_{\boldsymbol{a},\boldsymbol{b};b_j\geq0}\Theta_D(\boldsymbol{a},\boldsymbol{b})=\max\limits_{\boldsymbol{a},\boldsymbol{b};b_j\geq0}\min\limits_{\boldsymbol{x}}L(\boldsymbol{x},\boldsymbol{a},\boldsymbol{b})
a,b;bj≥0maxΘD(a,b)=a,b;bj≥0maxxminL(x,a,b)
称为广义拉格朗日函数的极大极小问题,可将其表示为约束最优化问题
max
a
,
b
Θ
D
(
a
,
b
)
s
.
t
.
b
j
≥
0
\begin{aligned} &\max\limits_{\boldsymbol{a},\boldsymbol{b}}\;\Theta_D(\boldsymbol{a},\boldsymbol{b})\\ &s.t.\quad b_j\geq0 \end{aligned}
a,bmaxΘD(a,b)s.t.bj≥0
称为原始问题的对偶问题,定义对偶问题的最优值
d
∗
=
max
a
,
b
;
b
j
≥
0
Θ
D
(
a
,
b
)
d^{\ast}=\max\limits_{\boldsymbol{a},\boldsymbol{b};b_j\geq0}\Theta_D(\boldsymbol{a},\boldsymbol{b})
d∗=a,b;bj≥0maxΘD(a,b)
若原始问题和对偶问题都有最优值,则满足
d
∗
=
max
a
,
b
;
b
j
≥
0
min
x
L
(
x
,
a
,
b
)
≤
min
x
max
a
,
b
;
b
j
≥
0
L
(
x
,
a
,
b
)
=
q
∗
d^{\ast}=\max\limits_{\boldsymbol{a},\boldsymbol{b};b_j\geq0}\min\limits_{\boldsymbol{x}}L(\boldsymbol{x},\boldsymbol{a},\boldsymbol{b})\leq \min\limits_{\boldsymbol{x}}\max\limits_{\boldsymbol{a},\boldsymbol{b};b_j\geq0}L(\boldsymbol{x},\boldsymbol{a},\boldsymbol{b})=q^{\ast}
d∗=a,b;bj≥0maxxminL(x,a,b)≤xmina,b;bj≥0maxL(x,a,b)=q∗
证明:对任意
x
\boldsymbol{x}
x,
a
\boldsymbol{a}
a,
b
\boldsymbol{b}
b有
Θ
D
(
a
,
b
)
=
min
x
L
(
x
,
a
,
b
)
≤
L
(
x
,
a
,
b
)
≤
max
a
,
b
;
b
j
≥
0
L
(
x
,
a
,
b
)
=
Θ
P
(
x
)
\Theta_D(\boldsymbol{a},\boldsymbol{b})=\min\limits_{\boldsymbol{x}}L(\boldsymbol{x},\boldsymbol{a},\boldsymbol{b})\leq L(\boldsymbol{x},\boldsymbol{a},\boldsymbol{b})\leq\max\limits_{\boldsymbol{a},\boldsymbol{b};b_j\geq0}L(\boldsymbol{x},\boldsymbol{a},\boldsymbol{b})=\Theta_P(\boldsymbol{x})
ΘD(a,b)=xminL(x,a,b)≤L(x,a,b)≤a,b;bj≥0maxL(x,a,b)=ΘP(x)
即
Θ
D
(
a
,
b
)
≤
Θ
P
(
x
)
\Theta_D(\boldsymbol{a},\boldsymbol{b})\leq\Theta_P(\boldsymbol{x})
ΘD(a,b)≤ΘP(x)
由于原始问题和对偶问题都有最优值,所以
max
a
,
b
;
b
j
≥
0
Θ
D
(
a
,
b
)
≤
min
x
Θ
P
(
x
)
\max\limits_{\boldsymbol{a},\boldsymbol{b};b_j\geq0}\Theta_D(\boldsymbol{a},\boldsymbol{b})\leq \min\limits_{\boldsymbol{x}}\Theta_P(\boldsymbol{x})
a,b;bj≥0maxΘD(a,b)≤xminΘP(x)
即
d
∗
=
max
a
,
b
;
b
j
≥
0
min
x
L
(
x
,
a
,
b
)
≤
min
x
max
a
,
b
;
b
j
≥
0
L
(
x
,
a
,
b
)
=
q
∗
d^{\ast}=\max\limits_{\boldsymbol{a},\boldsymbol{b};b_j\geq0}\min\limits_{\boldsymbol{x}}L(\boldsymbol{x},\boldsymbol{a},\boldsymbol{b})\leq \min\limits_{\boldsymbol{x}}\max\limits_{\boldsymbol{a},\boldsymbol{b};b_j\geq0}L(\boldsymbol{x},\boldsymbol{a},\boldsymbol{b})=q^{\ast}
d∗=a,b;bj≥0maxxminL(x,a,b)≤xmina,b;bj≥0maxL(x,a,b)=q∗
如果
f
(
x
)
f(\boldsymbol{x})
f(x)和
g
j
(
x
)
g_j(\boldsymbol{x})
gj(x)为凸函数,
h
i
(
x
)
h_i(\boldsymbol{x})
hi(x)为仿射函数,那么原始问题和对偶问题的最优值相同,即存在
x
∗
\boldsymbol{x^{\ast}}
x∗,
a
∗
\boldsymbol{a^{\ast}}
a∗和
b
∗
\boldsymbol{b^{\ast}}
b∗,使得
d
∗
=
q
∗
=
L
(
x
∗
,
a
∗
,
b
∗
)
d^{\ast}=q^{\ast}=L(\boldsymbol{x^{\ast}},\boldsymbol{a^{\ast}},\boldsymbol{b^{\ast}})
d∗=q∗=L(x∗,a∗,b∗)
这称为Slater条件,这时可以解对偶问题代替解原始问题。
硬间隔支持向量机
硬间隔支撑向量机可以写成优化问题
min
w
1
2
∥
w
∥
2
s
.
t
.
y
i
(
w
T
x
i
+
b
)
≥
1
i
=
1
,
⋯
,
m
\begin{aligned} &\min\limits_{\boldsymbol{w}}\quad\frac{1}{2}\|\boldsymbol{w}\|^2\\ &s.t.\quad y_i(\boldsymbol{w}^T\boldsymbol{x}_i+b)\geq1 &i=1,\cdots,m\\ \end{aligned}
wmin21∥w∥2s.t.yi(wTxi+b)≥1i=1,⋯,m
其广义拉格朗日函数为
L
(
w
,
b
,
x
)
=
1
2
w
T
w
+
∑
i
=
1
m
a
i
(
1
−
y
i
(
w
T
x
i
+
b
)
)
L(\boldsymbol{w},b,\boldsymbol{x})=\frac{1}{2}\boldsymbol{w}^T\boldsymbol{w}+\sum_{i=1}^ma_i(1-y_i(\boldsymbol{w}^T\boldsymbol{x}_i+b))
L(w,b,x)=21wTw+i=1∑mai(1−yi(wTxi+b))
1
2
∥
w
∥
2
\frac{1}{2}\|\boldsymbol{w}\|^2
21∥w∥2是关于
w
\boldsymbol{w}
w的二次函数,
1
−
y
i
(
w
T
x
i
+
b
)
1-y_i(\boldsymbol{w}^T\boldsymbol{x}_i+b)
1−yi(wTxi+b)是关于
x
\boldsymbol{x}
x的线性函数,两者都是凸函数,满足slater条件,为求其对偶问题首先需要对
w
\boldsymbol{w}
w和
b
b
b求偏导并令其等于0,可以得到
w
−
∑
i
=
1
m
a
i
y
i
x
i
=
0
∑
i
=
1
m
a
i
y
i
=
0
\begin{aligned} \boldsymbol{w}-\sum_{i=1}^ma_iy_i\boldsymbol{x}_i&=0\\ \sum_{i=1}^ma_iy_i&=0 \end{aligned}
w−i=1∑maiyixii=1∑maiyi=0=0
将其代入
L
(
w
,
b
,
x
)
L(\boldsymbol{w},b,\boldsymbol{x})
L(w,b,x)得到对偶函数
L
D
(
a
)
=
−
1
2
∑
i
=
1
m
∑
j
=
1
n
a
i
a
j
y
i
y
j
x
i
T
x
j
+
∑
i
=
1
m
a
i
L_D(\boldsymbol{a})=-\frac{1}{2}\sum_{i=1}^m\sum_{j=1}^na_ia_jy_iy_j\boldsymbol{x}_i^T\boldsymbol{x}_j+\sum_{i=1}^{m}a_i
LD(a)=−21i=1∑mj=1∑naiajyiyjxiTxj+i=1∑mai
于是其对偶问题为
max
a
L
D
(
a
)
s
.
t
.
∑
i
=
1
m
a
i
y
i
=
0
a
i
≥
0
i
=
1
,
⋯
,
m
\begin{aligned} &\max\limits_{\boldsymbol{a}}\quad L_D(\boldsymbol{a})\\ &s.t.\quad \sum_{i=1}^ma_iy_i=0\\ &\quad \quad \;\;a_i \geq 0 &i=1,\cdots,m\\ \end{aligned}
amaxLD(a)s.t.i=1∑maiyi=0ai≥0i=1,⋯,m
解出对偶问题后,即可得到
w
=
∑
i
=
1
m
a
i
y
i
x
i
\boldsymbol{w}=\sum_{i=1}^ma_iy_i\boldsymbol{x}_i
w=i=1∑maiyixi
同时上述过程需满足KKT条件
{
a
i
≥
0
1
−
y
i
(
w
T
x
i
+
b
)
≤
0
a
i
(
1
−
y
i
(
w
T
x
i
+
b
)
)
=
0
\begin{cases} a_i\geq0\\ 1-y_i(\boldsymbol{w}^T\boldsymbol{x}_i+b)\leq0 \\ a_i(1-y_i(\boldsymbol{w}^T\boldsymbol{x}_i+b))=0 \end{cases}
⎩⎪⎨⎪⎧ai≥01−yi(wTxi+b)≤0ai(1−yi(wTxi+b))=0
因此对
a
i
≠
0
a_i\neq0
ai=0的样本,必有
y
i
(
w
T
x
i
+
b
)
=
1
y_i(\boldsymbol{w}^T\boldsymbol{x}_i+b)=1
yi(wTxi+b)=1,这样的样本就是支撑向量,那么对任意支撑向量可以解得
b
=
1
y
i
−
w
T
x
i
b=\frac{1}{y_i}-\boldsymbol{w}^T\boldsymbol{x_i}
b=yi1−wTxi
现实中为了保持鲁棒性,通常是对所有支撑向量求平均值。