807补充(五)(拉格朗日乘子篇)
一.拉格朗日的几何解释
拉格朗日乘数法(Lagrange multiplier), 有时也被称为不确定乘数法(undetermined multiplier), 被用于寻找多元变量在一个或者多个限制条件下的驻点。
考虑寻找函数
f
(
x
1
,
x
2
)
f\left(x_1, x_2\right)
f(x1,x2) 的最大值, 其中
x
1
x_1
x1 和
x
2
x_2
x2 要满足一定的限制, 限制的形式为
g
(
x
1
,
x
2
)
=
0
(1.1)
g\left(x_1, x_2\right)=0\tag{1.1}
g(x1,x2)=0(1.1)
一种方法是求解限制方程 , 把 x 2 x_2 x2 表示为 x 1 x_1 x1 的函数, 形式为 x 2 = h ( x 1 ) x_2=h\left(x_1\right) x2=h(x1) 。这之后就可以代入 f ( x 1 , x 2 ) f\left(x_1, x_2\right) f(x1,x2), 变为关于 x 1 x_1 x1 单一变量的函数, 形式为 f ( x 1 , h ( x 1 ) ) f\left(x_1, h\left(x_1\right)\right) f(x1,h(x1)) 。关于 x 1 x_1 x1 的最大值能够使用通常的方法用微分的方式求出, 给出驻点值 x 1 ∗ x_1^* x1∗, 对应的 x 2 x_2 x2 的值为 x 2 ∗ = h ( x 1 ∗ ) x_2^*=h\left(x_1^*\right) x2∗=h(x1∗) 。
这种方法的一个问题是, 把 x 2 x_2 x2 显式地表示为 x 1 x_1 x1 的函数, 即找到限制方程的解析解很困难。并且, 这种方法把 x 1 x_1 x1 和 x 2 x_2 x2 区别对待, 这破坏了这些变量之间自然存在的对称性。
一个更加优雅且通常很简单的方法依赖于引入一个被称为拉格朗日乘数的参数
λ
\lambda
λ 。我们从几何角度来说明一下这个方法。考虑一个
D
D
D 维变量
x
\boldsymbol{x}
x, 分量为
x
1
,
…
,
x
D
x_1, \ldots, x_D
x1,…,xD 。限制方程
g
(
x
)
=
0
g(\boldsymbol{x})=0
g(x)=0 表示
x
\boldsymbol{x}
x 空间中的一个
(
D
−
1
)
(D-1)
(D−1) 维曲面, 如图所示。
我们首先注意到, 在限制曲面上的任何点处, 限制函数的梯度
∇
g
(
x
)
\nabla g(\boldsymbol{x})
∇g(x) 都正交于限制曲面。为了证明这一点, 考虑一个位于限制曲面上的点
x
x
x 以及这个点附近同样位于曲面上的点
x
+
ϵ
x+\epsilon
x+ϵ 。如果我们在点
x
\boldsymbol{x}
x 处进行泰勒展开, 那么我们有
g
(
x
+
ϵ
)
≃
g
(
x
)
+
ϵ
T
∇
g
(
x
)
(1.2)
g(\boldsymbol{x}+\boldsymbol{\epsilon}) \simeq g(\boldsymbol{x})+\boldsymbol{\epsilon}^T \nabla g(\boldsymbol{x})\tag{1.2}
g(x+ϵ)≃g(x)+ϵT∇g(x)(1.2)
由于 x \boldsymbol{x} x 和 x + ϵ \boldsymbol{x}+\boldsymbol{\epsilon} x+ϵ 都位于限制曲面上, 我们有 g ( x ) = g ( x + ϵ ) g(\boldsymbol{x})=g(\boldsymbol{x}+\boldsymbol{\epsilon}) g(x)=g(x+ϵ), 因此 ϵ T ∇ g ( x ) ≃ 0 \boldsymbol{\epsilon}^T \nabla g(\boldsymbol{x}) \simeq 0 ϵT∇g(x)≃0 。在极限 ∥ ϵ ∥ → 0 \|\boldsymbol{\epsilon}\| \rightarrow 0 ∥ϵ∥→0 的情况下, 我们有 ϵ T ∇ g ( x ) = 0 \boldsymbol{\epsilon}^T \nabla g(\boldsymbol{x})=0 ϵT∇g(x)=0 。由于 ϵ \boldsymbol{\epsilon} ϵ 平行于限制曲面, 因此我们看到向量 ∇ g \nabla g ∇g 正交于曲面。
接下来我们寻找限制曲面上的一个点
x
∗
x^*
x∗ 使得
f
(
x
)
f(\boldsymbol{x})
f(x) 最大。这样的一个点一定满足这样的性质: 向量
∇
f
(
x
)
\nabla f(\boldsymbol{x})
∇f(x) 也正交于限制曲面, 如图所示, 因为如果这个性质不满足的话, 我们就可以沿着限制曲面移动一个较短的距离来使
f
(
x
)
f(\boldsymbol{x})
f(x) 增大(
f
(
x
)
f(\boldsymbol{x})
f(x)的梯度指向增长最快的方向)。因此
∇
f
\nabla f
∇f 和
∇
g
\nabla g
∇g 是平行的(或者反平行的)向量, 因此一定存在一个参数
λ
\lambda
λ 使得
∇
f
+
λ
∇
g
=
0
\nabla f+\lambda \nabla g=0
∇f+λ∇g=0
其中
λ
≠
0
\lambda \neq 0
λ=0 被称为拉格朗日乘数 (Lagrange multiplier) 。注意,
λ
\lambda
λ 的符号任意。
这里, 定义一个拉格朗日函数比较方便。拉格朗日函数定义如下
L
(
x
,
λ
)
≡
f
(
x
)
+
λ
g
(
x
)
(1.3)
L(\boldsymbol{x}, \lambda) \equiv f(\boldsymbol{x})+\lambda g(\boldsymbol{x})\tag{1.3}
L(x,λ)≡f(x)+λg(x)(1.3)
公式 (1.3) 给出的函数驻点处的条件可以通过令 ∇ x L = 0 \nabla_{\boldsymbol{x}} L=0 ∇xL=0 来得到。更进一步, 条件 ∂ L ∂ λ = 0 \frac{\partial L}{\partial \lambda}=0 ∂λ∂L=0 会导出限制方程 g ( x ) = 0 g(\boldsymbol{x})=0 g(x)=0 。
易知拉格朗日乘数法求得的只是极值必要条件,具体是极大值还是极小值取决于 ∇ g \nabla g ∇g的方向(指向约束面内还是约束面外)
将拉格朗⽇乘数法推⼴到多个等式限制的情形是很直接的,推⼴到有限制条件下的泛函的导数的情况也与此类似。
二.矩阵形式的拉格朗日
考虑最优化问题(
S
w
+
S
b
\boldsymbol S_w+\boldsymbol S_b
Sw+Sb是正定矩阵,且都为实对称矩阵,
W
=
[
w
1
,
w
2
,
⋯
,
w
d
]
,
w
i
∈
R
m
\boldsymbol W=[\boldsymbol w_1,\boldsymbol w_2,\cdots,\boldsymbol w_d],\boldsymbol w_i \in \Bbb R^m
W=[w1,w2,⋯,wd],wi∈Rm)
maxmize tr
(
W
T
(
S
w
+
S
b
)
W
)
s
.
t
W
T
S
w
W
=
I
\begin{aligned} &\text{maxmize} \ \ \ \ \text{tr}(\boldsymbol W^T(\boldsymbol S_w+\boldsymbol S_b)\boldsymbol W)\\ &s.t \ \ \ \ \ \ \ \ \ \ \ \ \ \boldsymbol W^T\boldsymbol S_w \boldsymbol W=\boldsymbol I \end{aligned}
maxmize tr(WT(Sw+Sb)W)s.t WTSwW=I
先对目标函数进行简单的分析,对目标函数求二阶导
∇
2
(
tr
(
W
T
(
S
w
+
S
b
)
W
)
)
=
I
⊗
(
S
w
+
S
b
)
≻
0
\nabla^2(\text{tr}(\boldsymbol W^T(\boldsymbol S_w+\boldsymbol S_b)\boldsymbol W))=\boldsymbol I\otimes (\boldsymbol S_w+\boldsymbol S_b)\succ0
∇2(tr(WT(Sw+Sb)W))=I⊗(Sw+Sb)≻0
即目标函数二阶导恒正定,目标函数无最大值只有最小值(可以类比
y
=
x
2
y=x^2
y=x2),因此为求得目标函数最大值需要加上限制条件。(最后的解完全取决于限制条件,限制不同则解不同)
限制条件为
W
T
S
w
W
=
I
⇕
[
w
1
,
w
2
,
⋯
,
w
d
]
T
S
w
[
w
1
,
w
2
,
⋯
,
w
d
]
=
[
1
0
⋯
0
⋮
⋮
⋮
0
0
⋯
1
]
⇕
∀
i
≠
j
,
w
i
T
S
w
w
j
=
0
∀
i
=
j
,
w
i
T
S
w
w
j
=
1
\boldsymbol W^T\boldsymbol S_w \boldsymbol W=\boldsymbol I\\ \Updownarrow\\ [\boldsymbol w_1,\boldsymbol w_2,\cdots,\boldsymbol w_d]^T\boldsymbol S_w[\boldsymbol w_1,\boldsymbol w_2,\cdots,\boldsymbol w_d]= \begin{bmatrix} 1&0\cdots &0\\ \vdots&\vdots&\vdots\\ 0&0\cdots &1 \end{bmatrix}\\ \Updownarrow\\ \forall i\neq j, \boldsymbol w_i^T\boldsymbol S_w\boldsymbol w_j=0\\ \forall i= j, \boldsymbol w_i^T\boldsymbol S_w\boldsymbol w_j=1
WTSwW=I⇕[w1,w2,⋯,wd]TSw[w1,w2,⋯,wd]=⎣⎢⎡1⋮00⋯⋮0⋯0⋮1⎦⎥⎤⇕∀i=j,wiTSwwj=0∀i=j,wiTSwwj=1
因此拉格朗日函数为
L
=
tr
(
W
T
(
S
w
+
S
b
)
W
)
+
∑
i
λ
i
(
w
i
T
S
w
w
i
−
1
)
+
∑
i
≠
j
λ
i
,
j
(
w
i
T
S
w
w
j
)
⇕
tr
(
W
T
(
S
w
+
S
b
)
W
)
+
tr
(
Λ
(
W
T
S
w
W
−
I
)
)
L=\text{tr}(\boldsymbol W^T(\boldsymbol S_w+\boldsymbol S_b)\boldsymbol W)+\sum_i \lambda_i(\boldsymbol w_i^T\boldsymbol S_w\boldsymbol w_i-1)+\sum_{i\neq j}\lambda_{i,j}(\boldsymbol w_i^T\boldsymbol S_w\boldsymbol w_j)\\ \Updownarrow\\ \text{tr}(\boldsymbol W^T(\boldsymbol S_w+\boldsymbol S_b)\boldsymbol W)+\text{tr}(\Lambda(\boldsymbol W^T\boldsymbol S_w \boldsymbol W-\boldsymbol I))
L=tr(WT(Sw+Sb)W)+i∑λi(wiTSwwi−1)+i=j∑λi,j(wiTSwwj)⇕tr(WT(Sw+Sb)W)+tr(Λ(WTSwW−I))
其中
Λ
\Lambda
Λ对角线的元素是
w
i
S
w
w
j
=
1
\boldsymbol w_i\boldsymbol S_w\boldsymbol w_j=1
wiSwwj=1对应的拉格朗日乘子,非对角线元素是
w
i
S
w
w
j
=
0
\boldsymbol w_i\boldsymbol S_w\boldsymbol w_j=0
wiSwwj=0对应的拉格朗日乘子。又因拉格朗日乘子不能为0,则
Λ
\Lambda
Λ中不能有0元素。
上式可以推广至任意矩阵的情况,证明与单位矩阵一样,即
maxmize tr
(
W
T
(
S
w
+
S
b
)
W
)
s
.
t
W
T
S
w
W
=
A
\begin{aligned} &\text{maxmize} \ \ \ \ \text{tr}(\boldsymbol W^T(\boldsymbol S_w+\boldsymbol S_b)\boldsymbol W)\\ &s.t \ \ \ \ \ \ \ \ \ \ \ \ \ \boldsymbol W^T\boldsymbol S_w \boldsymbol W=\boldsymbol A \end{aligned}
maxmize tr(WT(Sw+Sb)W)s.t WTSwW=A
的拉格朗日函数为
tr
(
W
T
(
S
w
+
S
b
)
W
)
+
tr
(
Λ
(
W
T
S
w
W
−
A
)
)
\text{tr}(\boldsymbol W^T(\boldsymbol S_w+\boldsymbol S_b)\boldsymbol W)+\text{tr}(\Lambda(\boldsymbol W^T\boldsymbol S_w \boldsymbol W-\boldsymbol A))
tr(WT(Sw+Sb)W)+tr(Λ(WTSwW−A))
三.约束的求解
maxmize tr ( W T ( S w + S b ) W ) s . t W T S w W = I \begin{aligned} &\text{maxmize} \ \ \ \ \text{tr}(\boldsymbol W^T(\boldsymbol S_w+\boldsymbol S_b)\boldsymbol W)\\ &s.t \ \ \ \ \ \ \ \ \ \ \ \ \ \boldsymbol W^T\boldsymbol S_w \boldsymbol W=\boldsymbol I \end{aligned} maxmize tr(WT(Sw+Sb)W)s.t WTSwW=I
L = tr ( W T ( S w + S b ) W ) − tr ( Λ ( W T S w W − I ) ) L=\text{tr}(\boldsymbol W^T(\boldsymbol S_w+\boldsymbol S_b)\boldsymbol W)-\text{tr}(\Lambda(\boldsymbol W^T\boldsymbol S_w \boldsymbol W-\boldsymbol I)) L=tr(WT(Sw+Sb)W)−tr(Λ(WTSwW−I))
∂ L ∂ W = 2 ( S w + S b ) W − S w W ( Λ T + Λ ) = 0 \frac{\partial L}{\partial \boldsymbol W}=2(\boldsymbol S_w+\boldsymbol S_b)\boldsymbol W-\boldsymbol S_w \boldsymbol W(\boldsymbol \Lambda^T+\boldsymbol \Lambda)=0 ∂W∂L=2(Sw+Sb)W−SwW(ΛT+Λ)=0
记
(
Λ
T
+
Λ
)
/
2
=
Λ
^
(\boldsymbol \Lambda^T+\boldsymbol \Lambda)/2=\hat \Lambda
(ΛT+Λ)/2=Λ^,知
Λ
^
\hat \Lambda
Λ^是是对称矩阵可正交对角化则
(
S
w
+
S
b
)
W
=
S
w
W
Λ
^
=
S
w
W
Q
T
Σ
Q
⇕
(
I
+
S
w
−
1
S
b
)
W
Q
T
=
W
Q
T
Σ
\begin{aligned} (\boldsymbol S_w+\boldsymbol S_b)\boldsymbol W&=\boldsymbol S_w \boldsymbol W\hat \Lambda\\ &=\boldsymbol S_w \boldsymbol W\boldsymbol Q^T\Sigma\boldsymbol Q\\ \Updownarrow\\ (\boldsymbol I+\boldsymbol S_w^{-1}\boldsymbol S_b)\boldsymbol W\boldsymbol Q^T&=\boldsymbol W\boldsymbol Q^T\Sigma \end{aligned}
(Sw+Sb)W⇕(I+Sw−1Sb)WQT=SwWΛ^=SwWQTΣQ=WQTΣ
令
W
^
=
W
Q
T
\boldsymbol {\hat W}=\boldsymbol W\boldsymbol Q^T
W^=WQT,则
(
I
+
S
w
−
1
S
b
)
W
^
=
W
^
Σ
⇕
(
I
+
S
w
−
1
S
b
)
[
w
^
1
,
w
^
2
,
⋯
,
w
^
d
]
=
[
w
^
1
,
w
^
2
,
⋯
,
w
^
d
]
diag
(
λ
1
,
λ
2
,
⋯
,
λ
d
)
⇕
[
(
I
+
S
w
−
1
S
b
)
w
^
1
,
(
I
+
S
w
−
1
S
b
)
w
^
2
,
⋯
,
(
I
+
S
w
−
1
S
b
)
w
^
d
]
=
[
λ
1
w
^
1
,
λ
2
w
^
2
,
⋯
,
λ
d
w
^
d
]
(\boldsymbol I+\boldsymbol S_w^{-1}\boldsymbol S_b)\boldsymbol {\hat W}=\boldsymbol {\hat W}\Sigma\\ \Updownarrow\\ (\boldsymbol I+\boldsymbol S_w^{-1}\boldsymbol S_b)[\boldsymbol {\hat w_1},\boldsymbol {\hat w_2},\cdots,\boldsymbol {\hat w_d}]=[\boldsymbol {\hat w_1},\boldsymbol {\hat w_2},\cdots,\boldsymbol {\hat w_d}]\text{diag}(\lambda_1,\lambda_2,\cdots,\lambda_d)\\ \Updownarrow\\ [(\boldsymbol I+\boldsymbol S_w^{-1}\boldsymbol S_b)\boldsymbol {\hat w_1},(\boldsymbol I+\boldsymbol S_w^{-1}\boldsymbol S_b)\boldsymbol {\hat w_2},\cdots,(\boldsymbol I+\boldsymbol S_w^{-1}\boldsymbol S_b)\boldsymbol {\hat w_d}]=[\lambda_1\boldsymbol {\hat w_1},\lambda_2\boldsymbol {\hat w_2},\cdots,\lambda_d\boldsymbol {\hat w_d}]
(I+Sw−1Sb)W^=W^Σ⇕(I+Sw−1Sb)[w^1,w^2,⋯,w^d]=[w^1,w^2,⋯,w^d]diag(λ1,λ2,⋯,λd)⇕[(I+Sw−1Sb)w^1,(I+Sw−1Sb)w^2,⋯,(I+Sw−1Sb)w^d]=[λ1w^1,λ2w^2,⋯,λdw^d]
即
Σ
\Sigma
Σ是由
I
+
S
w
−
1
S
b
\boldsymbol I+\boldsymbol S_w^{-1}\boldsymbol S_b
I+Sw−1Sb特征值组成的矩阵,
W
^
\boldsymbol {\hat W}
W^是由
S
w
−
1
S
b
\boldsymbol S_w^{-1}\boldsymbol S_b
Sw−1Sb特征向量组成的矩阵,将
W
=
W
^
Q
\boldsymbol {W}=\boldsymbol {\hat W}\boldsymbol Q
W=W^Q带入目标函数中。
tr
(
W
T
(
S
w
+
S
b
)
W
)
=
tr
(
Q
T
W
^
T
(
S
w
+
S
b
)
W
^
Q
)
=
tr
(
W
^
T
(
S
w
+
S
b
)
W
^
)
=
tr
(
W
^
T
S
w
(
I
+
S
w
−
1
S
b
)
W
^
)
=
tr
(
W
^
T
S
w
W
^
Σ
)
\begin{aligned} \text{tr}(\boldsymbol W^T(\boldsymbol S_w+\boldsymbol S_b)\boldsymbol W)&=\text{tr}(\boldsymbol Q^T\boldsymbol {\hat W}^T(\boldsymbol S_w+\boldsymbol S_b)\boldsymbol {\hat W}\boldsymbol Q)\\ &=\text{tr}(\boldsymbol {\hat W}^T(\boldsymbol S_w+\boldsymbol S_b)\boldsymbol {\hat W})\\ &=\text{tr}(\boldsymbol {\hat W}^T\boldsymbol S_w(\boldsymbol I+\boldsymbol S_w^{-1}\boldsymbol S_b)\boldsymbol {\hat W})\\ &=\text{tr}(\boldsymbol {\hat W}^T\boldsymbol S_w\boldsymbol {\hat W}\boldsymbol\Sigma) \end{aligned}
tr(WT(Sw+Sb)W)=tr(QTW^T(Sw+Sb)W^Q)=tr(W^T(Sw+Sb)W^)=tr(W^TSw(I+Sw−1Sb)W^)=tr(W^TSwW^Σ)
又因
W
^
T
S
w
W
^
=
Q
T
W
S
w
W
Q
=
Q
T
Q
=
I
\boldsymbol {\hat W}^T\boldsymbol S_w\boldsymbol {\hat W}=\boldsymbol Q^T\boldsymbol W\boldsymbol S_w\boldsymbol W\boldsymbol Q=\boldsymbol Q^T \boldsymbol Q=\boldsymbol I
W^TSwW^=QTWSwWQ=QTQ=I
所以
tr
(
W
T
(
S
w
+
S
b
)
W
)
=
tr
(
Σ
)
=
∑
i
d
λ
i
(
与
Q
无
关
)
\text{tr}(\boldsymbol W^T(\boldsymbol S_w+\boldsymbol S_b)\boldsymbol W)=\text{tr}(\boldsymbol\Sigma)=\sum_i^{d}\lambda_i\ \ \ \ \ \ \ (与\boldsymbol Q无关)
tr(WT(Sw+Sb)W)=tr(Σ)=i∑dλi (与Q无关) {=}
所以想要使得目标函数最大化,应选前d个最大的特征向量组成的矩阵构成
W
^
\boldsymbol {\hat W}
W^且
W
^
\boldsymbol {\hat W}
W^需关于
S
w
\boldsymbol S_w
Sw正交,此时得出的解为
W
=
W
^
Q
\boldsymbol {W}=\boldsymbol {\hat W}\boldsymbol Q
W=W^Q,
Q
\boldsymbol Q
Q为任意一正交矩阵。
四.拉格朗日乘子为对角矩阵
因 Q \boldsymbol Q Q为任意一正交矩阵,不妨设 Q = I \boldsymbol Q=\boldsymbol I Q=I即拉格朗日乘子 Λ \boldsymbol \Lambda Λ本身就为对角矩阵。
此时拉格朗日乘子非对角线元素为0,即有一部分约束失效,真正有效的约束仅有对角线元素。优化问题可以写为
maxmize tr
(
W
T
(
S
w
+
S
b
)
W
)
s
.
t
∀
i
,
w
i
T
S
w
w
i
=
1
\begin{aligned} &\text{maxmize} \ \ \ \ \text{tr}(\boldsymbol W^T(\boldsymbol S_w+\boldsymbol S_b)\boldsymbol W)\\ &s.t \ \ \ \ \ \ \ \ \ \forall i,\ \ \ \ \boldsymbol w_i^T\boldsymbol S_w \boldsymbol w_i= 1 \end{aligned}
maxmize tr(WT(Sw+Sb)W)s.t ∀i, wiTSwwi=1
可以看出对于不同的
w
i
\boldsymbol w_i
wi关于
S
w
\boldsymbol S_w
Sw彼此正交的约束并未生效。
所以为使这两个解等价,应选取使 W T S w W = I \boldsymbol W^T\boldsymbol S_w \boldsymbol W=\boldsymbol I WTSwW=I成立的特征向量(同一特征值对应的特征向量不唯一)
最后再来考虑特征值为0的情况,则拉格朗日乘子 Λ \boldsymbol \Lambda Λ中有元素为0,代表此约束失效,所以特征值0的特征向量无法被选中
五.写在最后
考虑是否能将高维约束转化为低维的等价表示,考虑以下恒等式
tr
(
A
T
A
)
=
vec
(
A
)
T
vec
(
A
)
=
0
⇕
A
=
0
\text{tr}(\boldsymbol A^T\boldsymbol A)=\text{vec}(\boldsymbol A)^T\text{vec}(\boldsymbol A)=0\\ \Updownarrow\\ \boldsymbol A=0
tr(ATA)=vec(A)Tvec(A)=0⇕A=0
于是高维约束可写为
W
T
S
w
W
−
I
=
0
⇕
tr
(
(
W
T
S
w
W
−
I
)
T
(
W
T
S
w
W
−
I
)
)
=
0
\boldsymbol W^T\boldsymbol S_w \boldsymbol W-\boldsymbol I=0\\ \Updownarrow \\ \text{tr}((\boldsymbol W^T\boldsymbol S_w \boldsymbol W-\boldsymbol I)^T(\boldsymbol W^T\boldsymbol S_w \boldsymbol W-\boldsymbol I))=0
WTSwW−I=0⇕tr((WTSwW−I)T(WTSwW−I))=0
将约束与目标函数统一至同一纬度,再使用拉格朗日乘子法(最后的解不知道为什么我解不出来)