Offline RL-2重要性采样与对偶性介绍
概述
上一篇文章为该问题进行了铺垫,回顾一下接下来要面对的概念。
- 目的是得到一个不错的Policy π ( a ∣ s ) \pi(a|s) π(a∣s),自然需要对它进行评估Evaluation,即Policy Return或Policy Objective,记为 J ( π ) J(\pi) J(π)。
- 评估一个action distribution(Policy的意思 π ( a ∣ s ) \pi(a|s) π(a∣s)),需要用它与环境交互收集样本 ( s , a ) ∼ d π ( s , a ) (s,a)\sim d^\pi(s,a) (s,a)∼dπ(s,a)来计算它的评估量 J ( π ) J(\pi) J(π)
- 当计算评估量Policy Return的样本是它本身交互收集的,即为On-Policy Objective
- 当计算评估量的样本,不是它本身交互收集的,即为Off-Policy Objective(这个就很Offline了呀,Off-Policy与Offline具体区别是啥呢?)
Offline RL目前的主要方法是根据modern RL(Policy Gradients、Value Learning、Actor Critic、Model-based)改进而来了的。
因此下面的三大Offline 方法,分别从Importance Sampling、Dynamics Programming和Model-based的角度切入。
具体看看,它们在原有的基础上,增加了什么,改进了什么,干了什么?
本文主要介绍Importance Sampling,如果把它用在Offline RL,其high variance是无法避免的,由此延伸出Offline RL下Convex Duality的方法来解决直接把Importance Sampling用在Offline Datasets上的高方差问题。
一、Off-Policy Evaluation via Importance Sampling
1.1 Off-Policy的方式去估计On-Policy Objective
用Off-Policy π β ( a ∣ s ) \pi_\beta(a|s) πβ(a∣s)收集的样本来估计On-policy Objective J ( π θ ) J(\pi_\theta) J(πθ)
J ( π θ ) = E τ ∼ π β ( τ ) [ π θ ( τ ) π β ( τ ) r ( τ ) ] = E τ ∼ π β ( τ ) [ π θ ( τ ) π β ( τ ) ∑ t = 0 H γ t r ( s , a ) ] = E τ ∼ π β ( τ ) [ d 0 ( s 0 ) ∏ t = 0 H π θ ( a t ∣ s t ) p ( s t + 1 ∣ s t , a t ) d 0 ( s 0 ) ∏ t = 0 H π β ( a t ∣ s t ) p ( s t + 1 ∣ s t , a t ) r ( τ ) ] ( 1 ) = E τ ∼ π β ( τ ) [ ( ∏ t = 0 H π θ ( a t ∣ s t ) π β ( a t ∣ s t ) ) ∑ t = 0 H γ t r ( s , a ) ] ( 2 ) ≈ ∑ i = 1 n w H i ∑ t = 0 H γ t r t i ( 3 : w H i = 1 n ∏ t ′ = 0 H π θ ( a t ′ i ∣ s t ′ i ) π β ( a t ′ i ∣ s t ′ i ) ) ≈ 1 n ∑ i = 1 n ∑ t = 0 H w t i γ t r t i (4:Causality) → ∑ i = 1 n ∑ t = 0 H γ t ( w t i ( r t i − Q ^ π θ ( s t , a t ) ) − w t − 1 i E a ∼ π θ ( a ∣ s t ) [ Q ^ π θ ( s t , a ) ] ) ( 5 ) \begin{aligned} J(\pi_\theta)&= \mathbb E_{\tau\sim \pi_\beta(\tau)}\left[\frac{\pi_\theta(\tau)}{\pi_\beta(\tau)}r(\tau)\right]\\ &= \mathbb E_{\tau\sim \pi_\beta(\tau)}\left[\frac{\pi_\theta(\tau)}{\pi_\beta(\tau)}\sum_{t=0}^H\gamma^t r(s,a)\right]\\ &=\mathbb E_{\tau\sim \pi_\beta(\tau)}\left[\frac{d_0(s_0)\prod_{t=0}^H\pi_\theta(a_t|s_t)p(s_{t+1}|s_t,a_t)}{d_0(s_0)\prod_{t=0}^H\pi_\beta(a_t|s_t)p(s_{t+1}|s_t,a_t)}r(\tau)\right](1)\\ &= \mathbb E_{\tau\sim \pi_\beta(\tau)}\left[\left(\prod_{t=0}^H\frac{\pi_\theta(a_t|s_t)}{\pi_\beta(a_t|s_t)}\right)\sum_{t=0}^H\gamma^t r(s,a)\right](2)\\ &\approx\sum_{i=1}^nw_H^i\sum_{t=0}^H\gamma^t r_t^i\quad(3:w_H^i=\frac{1}{n}\prod_{t'=0}^H\frac{\pi_\theta(a_{t'}^i|s_{t'}^i)}{\pi_\beta(a_{t'}^i|s_{t'}^i)})\\ &\approx \frac{1}{n}\sum_{i=1}^n \sum_{t=0}^Hw_t^i\gamma^tr_t^i\quad \text{(4:Causality)}\\ &\rightarrow \sum_{i=1}^{n} \sum_{t=0}^{H} \gamma^{t}\left(w_{t}^{i}\left(r_{t}^{i}-\hat{Q}^{\pi_{\theta}}\left(\mathbf{s}_{t}, \mathbf{a}_{t}\right)\right)-w_{t-1}^{i} \mathbb{E}_{\mathbf{a} \sim \pi_{\theta}\left(\mathbf{a} \mid \mathbf{s}_{t}\right)}\left[\hat{Q}^{\pi_{\theta}}\left(\mathbf{s}_{t}, \mathbf{a}\right)\right]\right)(5)\\ \end{aligned} J(πθ)=Eτ∼πβ(τ)[πβ(τ)πθ(τ)r(τ)]=Eτ∼πβ(τ)[πβ(τ)πθ(τ)t=0∑Hγtr(s,a)]=Eτ∼πβ(τ)[d0(s0)∏t=0Hπβ(at∣st)p(st+1∣st,at)d0(s0)∏t=0Hπθ(at∣st)p(st+1∣st,at)r(τ)](1)=Eτ∼πβ(τ)[(t=0∏Hπβ(at∣st)πθ(at∣st))t=0∑Hγtr(s,a)](2)≈i=1∑nwHit=0∑Hγtrti(3:wHi=n1t′=0∏Hπβ(at′i∣st′i)πθ(at′i∣st′i))≈n1i=1∑nt=0∑Hwtiγtrti(4:Causality)→i=1∑nt=0∑Hγt(wti(rti−Q^πθ(st,at))−wt−1iEa∼πθ(a∣st)[Q^πθ(st,a)])(5)
- 假设从Off-Policy的 π β ( a ∣ s ) \pi_\beta(a|s) πβ(a∣s)中sample出了 n n n个有限horizon的trajectories记为 { ( s 0 i , a 0 i , r 0 i , s 1 i , . . . , s H i ) } i = 1 n \{(s_0^i,a_0^i,r_0^i,s_1^i,...,s_H^i)\}_{i=1}^n {(s0i,a0i,r0i,s1i,...,sHi)}i=1n
- 对于每一个条轨迹 i i i,可以计算一个轨迹return的权重 w H i w^i_H wHi,该轨迹的return ∑ t = 0 H γ t r t i \sum_{t=0}^H\gamma^tr_t^i ∑t=0Hγtrti
- 从(2)式到(3)式就意味着,从Off-Policy的 π β ( a ∣ s ) \pi_\beta(a|s) πβ(a∣s)收集的trajectory进行weighted trajectory return来估计On-Policy Objective J ( π θ ) J(\pi_\theta) J(πθ),需要知道的对象自然是 π β ( a ∣ s ) , π θ ( a ∣ s ) \pi_\beta(a|s),\pi_\theta(a|s) πβ(a∣s),πθ(a∣s)才能进行计算
- 用一个trajectory的 w H i w_H^i wHi来衡量 ∑ t = 0 H γ t r t i \sum_{t=0}^H\gamma^tr_t^i ∑t=0Hγtrti中每个时间刻的 r t i r_t^i rti是不合理的,因为当前 r t i r_t^i rti的获取与 t + 1 t+1 t+1时刻后的weight无关即 ∏ t ′ = t + 1 H π θ ( a t ′ i ∣ s t ′ i ) π β ( a t ′ i ∣ s t ′ i ) \prod_{t'=t+1}^H\frac{\pi_\theta(a_{t'}^i|s^i_{t'})}{\pi_\beta(a_{t'}^i|s^i_{t'})} ∏t′=t+1Hπβ(at′i∣st′i)πθ(at′i∣st′i),因此有了(3)式到(4)式的因果性改进,即 r t i r_t^i rti只与时刻 t t t之前的相关即 w t i = ∏ t ′ = 0 t π θ ( a t ′ i ∣ s t ′ i ) π β ( a t ′ i ∣ s t ′ i ) w_t^i=\prod_{t'=0}^t\frac{\pi_\theta(a_{t'}^i|s^i_{t'})}{\pi_\beta(a_{t'}^i|s^i_{t'})} wti=∏t′=0tπβ(at′i∣st′i)πθ(at′i∣st′i)
- (5)式是Importance Sampling中经典的unbiased estimator称为doubly robust estimator1(前提是有 Q π θ ( s t , a t ) Q^{\pi_\theta}(s_t,a_t) Qπθ(st,at)这个值估计)
- 最后无论是用哪种方法估计得到 w t i w_t^i wti都可以对n个轨迹的权重进行归一化即 w t i = w t i ∑ i = 1 n w t i w_t^i=\frac{w_t^i}{\sum_{i=1}^nw_t^i} wti=∑i=1nwtiwti
这种估计到return的方法有什么具体用处吗?可用于Safety的约束2。
思考:如果序列长度 H H H是无限的情况下怎么处理呢?
(近似只考虑前几个时间刻对当前的影响即可)
1.2 Off-Policy的方式估计On-Policy的目标梯度
不再直接估计on-policy objective J ( π θ ) J(\pi_\theta) J(πθ),而是用Off-Policy π β ( a ∣ s ) \pi_\beta(a|s) πβ(a∣s)收集的样本来估计on-policy的目标梯度 ∇ θ J ( π θ ) \nabla_\theta J(\pi_\theta) ∇θJ(πθ).
(再给大家重新推一遍吧= =):
∇
θ
J
(
π
θ
)
=
∇
θ
∫
π
θ
(
τ
)
r
(
τ
)
d
τ
=
∇
θ
∫
π
θ
(
τ
)
π
β
(
τ
)
π
β
(
τ
)
r
(
τ
)
d
τ
=
∫
∇
θ
π
θ
(
τ
)
π
β
(
τ
)
π
β
(
τ
)
r
(
τ
)
d
τ
=
∫
π
θ
(
τ
)
∇
θ
l
o
g
π
θ
(
τ
)
π
β
(
τ
)
π
β
(
τ
)
r
(
τ
)
d
τ
=
E
τ
∼
π
β
(
τ
)
[
π
θ
(
τ
)
π
β
(
τ
)
∇
θ
l
o
g
π
θ
(
τ
)
r
(
τ
)
]
=
E
τ
∼
π
β
(
τ
)
[
π
θ
(
τ
)
π
β
(
τ
)
(
∑
t
=
0
T
∇
θ
l
o
g
π
θ
(
a
t
∣
s
t
)
)
(
∑
t
=
0
H
γ
t
r
(
s
t
,
a
t
)
)
]
=
E
τ
∼
π
β
(
τ
)
[
(
∏
t
=
0
H
π
θ
(
a
t
∣
s
t
)
π
β
(
a
t
∣
s
t
)
)
(
∑
t
=
0
H
γ
t
∇
θ
l
o
g
π
θ
(
a
t
∣
s
t
)
A
^
(
s
t
,
a
t
)
)
]
≈
∑
i
=
1
n
w
H
i
∑
t
=
0
H
γ
t
∇
θ
l
o
g
π
θ
(
a
t
i
∣
s
t
i
)
A
^
(
s
t
i
,
a
t
i
)
≈
∑
i
=
1
n
∑
t
=
0
H
w
t
i
γ
t
∇
θ
l
o
g
π
θ
(
a
t
i
∣
s
t
i
)
A
^
(
s
t
i
,
a
t
i
)
\begin{aligned} \nabla_\theta J(\pi_\theta)&=\nabla_\theta \int \pi_\theta(\tau)r(\tau)d\tau\\ &=\nabla_\theta \int \frac{\pi_\theta(\tau)}{\pi_\beta(\tau)}\pi_\beta(\tau)r(\tau)d\tau\\ &= \int \frac{\nabla_\theta\pi_\theta(\tau)}{\pi_\beta(\tau)}\pi_\beta(\tau)r(\tau)d\tau\\ &=\int \frac{\pi_\theta(\tau)\nabla_\theta log\pi_\theta(\tau)}{\pi_\beta(\tau)}\pi_\beta(\tau)r(\tau)d\tau\\ &=\mathbb E_{\tau\sim \pi_\beta(\tau)}\left[\frac{\pi_\theta(\tau)}{\pi_\beta(\tau)}\nabla_\theta log\pi_\theta(\tau)r(\tau)\right]\\ &=\mathbb E_{\tau\sim \pi_\beta(\tau)}\left[\frac{\pi_\theta(\tau)}{\pi_\beta(\tau)}\left(\sum_{t=0}^T\nabla_\theta log\pi_\theta(a_t|s_t)\right)\left(\sum_{t=0}^H\gamma^tr(s_t,a_t)\right)\right]\\ &=\mathbb E_{\tau\sim \pi_\beta(\tau)}\left[\left(\prod_{t=0}^H\frac{\pi_\theta(a_t|s_t)}{\pi_\beta(a_t|s_t)}\right)\left(\sum_{t=0}^H\gamma^t\nabla_\theta log\pi_\theta(a_t|s_t) \hat A(s_t,a_t)\right)\right]\\ &\approx \sum_{i=1}^nw_H^i \sum_{t=0}^H\gamma^t\nabla_\theta log\pi_\theta(a_t^i|s_t^i)\hat A(s_t^i,a_t^i)\\ &\approx \sum_{i=1}^n \sum_{t=0}^Hw_t^i\gamma^t\nabla_\theta log\pi_\theta(a_t^i|s_t^i)\hat A(s_t^i,a_t^i) \end{aligned}
∇θJ(πθ)=∇θ∫πθ(τ)r(τ)dτ=∇θ∫πβ(τ)πθ(τ)πβ(τ)r(τ)dτ=∫πβ(τ)∇θπθ(τ)πβ(τ)r(τ)dτ=∫πβ(τ)πθ(τ)∇θlogπθ(τ)πβ(τ)r(τ)dτ=Eτ∼πβ(τ)[πβ(τ)πθ(τ)∇θlogπθ(τ)r(τ)]=Eτ∼πβ(τ)[πβ(τ)πθ(τ)(t=0∑T∇θlogπθ(at∣st))(t=0∑Hγtr(st,at))]=Eτ∼πβ(τ)[(t=0∏Hπβ(at∣st)πθ(at∣st))(t=0∑Hγt∇θlogπθ(at∣st)A^(st,at))]≈i=1∑nwHit=0∑Hγt∇θlogπθ(ati∣sti)A^(sti,ati)≈i=1∑nt=0∑Hwtiγt∇θlogπθ(ati∣sti)A^(sti,ati)
具体 A ^ ( s t i , a t i ) \hat A(s_t^i,a_t^i) A^(sti,ati)的选择、讨论与理解可参考深度强化学习CS285 lec5-lec9
接下来的许多处理方式,实则都是跟上一节一样。一个doubly robust estimator版本来估计目标梯度 ∇ θ J θ ( π θ ) \nabla_\theta J_\theta(\pi_\theta) ∇θJθ(πθ)
1.3 直接估计Off-Policy Objective/Gradient
重点解释一下这个Off-Policy Objective:
采用Off-Policy的state distribution即
d
π
β
(
s
)
d^{\pi_\beta}(s)
dπβ(s)这个behavior policy的状态分布上去估计on-policy
π
θ
\pi_\theta
πθ的值
V
π
θ
(
s
)
V^{\pi_\theta}(s)
Vπθ(s),与On-Policy Objective的关键点在于state distribution mismatch,只更换成Off-policy state distribution即
d
π
β
(
s
)
d^{\pi_\beta(s)}
dπβ(s),action distribution仍是On-Policy的即
π
θ
(
a
∣
s
)
\pi_\theta(a|s)
πθ(a∣s)。
J
π
β
(
π
θ
)
=
E
s
∼
d
π
β
(
s
)
[
V
π
θ
(
s
)
]
=
E
s
∼
d
π
β
(
s
)
[
E
a
∼
π
θ
(
a
∣
s
)
[
Q
π
θ
(
s
,
a
)
]
]
=
E
s
∼
d
π
β
(
s
)
[
E
a
∼
π
θ
(
a
∣
s
)
[
r
(
s
,
a
)
+
γ
E
s
′
∼
d
π
β
(
s
′
)
[
V
π
θ
(
s
′
)
]
]
]
=
E
s
∼
d
π
β
(
s
)
,
a
∼
π
θ
(
a
∣
s
)
[
r
(
s
,
a
)
+
γ
E
s
′
∼
d
π
β
(
s
′
)
[
V
π
θ
(
s
′
)
]
]
=
E
s
∼
d
π
β
(
s
)
,
a
∼
π
θ
(
a
∣
s
)
[
r
(
s
,
a
)
+
γ
E
s
′
∼
d
π
β
(
s
)
,
a
′
∼
π
θ
(
a
′
∣
s
′
)
[
Q
π
θ
(
s
′
,
a
′
)
]
]
\begin{aligned} J_{\pi_\beta}(\pi_\theta)&=\mathbb E_{s\sim d^{\pi_\beta}(s)}\left[V^{\pi_\theta}(s)\right]\\ &=\mathbb E_{s\sim d^{\pi_\beta}(s)}\left[\mathbb E_{a\sim \pi_\theta(a|s)}[Q^{\pi_\theta}(s,a)]\right]\\ &=\mathbb E_{s\sim d^{\pi_\beta}(s)}\left[\mathbb E_{a\sim \pi_\theta(a|s)}[r(s,a)+\gamma \mathbb E_{s'\sim d^{\pi_\beta}(s')}[V^{\pi_\theta}(s')]]\right]\\ &=\mathbb E_{s\sim d^{\pi_\beta}(s),a\sim\pi_\theta(a|s)}\left[r(s,a)+\gamma \mathbb E_{s'\sim d^{\pi_\beta}(s')}[V^{\pi_\theta}(s')]\right]\\ &=\mathbb E_{s\sim d^{\pi_\beta}(s),a\sim\pi_\theta(a|s)}\left[r(s,a)+\gamma \mathbb E_{s'\sim d^{\pi_\beta}(s),a'\sim\pi_\theta(a'|s')}[Q^{\pi_\theta}(s',a')]\right] \end{aligned}
Jπβ(πθ)=Es∼dπβ(s)[Vπθ(s)]=Es∼dπβ(s)[Ea∼πθ(a∣s)[Qπθ(s,a)]]=Es∼dπβ(s)[Ea∼πθ(a∣s)[r(s,a)+γEs′∼dπβ(s′)[Vπθ(s′)]]]=Es∼dπβ(s),a∼πθ(a∣s)[r(s,a)+γEs′∼dπβ(s′)[Vπθ(s′)]]=Es∼dπβ(s),a∼πθ(a∣s)[r(s,a)+γEs′∼dπβ(s),a′∼πθ(a′∣s′)[Qπθ(s′,a′)]]
它的目标梯度(省略推导,感兴趣的可以自行推一下3):
∇
θ
J
π
β
(
π
θ
)
≈
E
s
∼
d
π
β
(
s
)
(
s
)
,
a
∼
π
θ
(
a
∣
s
)
[
∇
θ
l
o
g
π
θ
(
a
∣
s
)
Q
π
θ
(
s
,
a
)
]
\begin{aligned} \nabla_\theta J_{\pi_\beta}(\pi_\theta)\approx \mathbb E_{s\sim d^{\pi_\beta(s)}(s),a\sim \pi_\theta(a|s)}\left[\nabla_\theta log\pi_\theta(a|s) Q^{\pi_\theta}(s,a)\right] \end{aligned}
∇θJπβ(πθ)≈Es∼dπβ(s)(s),a∼πθ(a∣s)[∇θlogπθ(a∣s)Qπθ(s,a)]
这里涉及到用behavior policy π β ( a ∣ s ) \pi_\beta(a|s) πβ(a∣s)收集的样本去估计 Q π θ ( s , a ) Q^{\pi_\theta}(s,a) Qπθ(s,a),然后同样地可以使用Importance Sampling把来自 π β \pi_\beta πβ的样本乘一个调节的权重如 π θ ( τ ) π β ( τ ) \frac{\pi_\theta(\tau)}{\pi_\beta(\tau)} πβ(τ)πθ(τ)调整成 π θ ( a ∣ s ) \pi_\theta(a|s) πθ(a∣s)的样本。
这些Importance Sampling比较成熟的用法4,可参考Impala: Scalable distributed deep-rl with importance weighted actor-learner architectures
1.4 总结(异常重要)
自始至终都要明确一个目的:我们想评估当前的policy π θ ( a ∣ s ) \pi_\theta(a|s) πθ(a∣s)的表现如何,然后用policy objective(return) J ( π θ ) J(\pi_\theta) J(πθ),怎么更新参数用的是policy gradient ∇ θ J ( π θ ) \nabla_\theta J(\pi_\theta) ∇θJ(πθ),而上述方法的区别在于估计objective/gradient时用的样本不一样on-policy π θ ( a ∣ s ) \pi_\theta(a|s) πθ(a∣s) 或 behavior policy π β ( a ∣ s ) \pi_\beta(a|s) πβ(a∣s),估计的对象是 A π θ ( s , a ) A^{\pi_\theta}(s,a) Aπθ(s,a)中的哪种(MC、TD、baseline)
- 1.1 中估计On-Policy Objective时用的样本是 π β ( a ∣ s ) \pi_\beta(a|s) πβ(a∣s)的,因此需要计算high variance的Importance weight w H i w_H^i wHi,经过因果性优化后 w t I w_t^I wtI,但仍然很high variance;此时引入 Q π θ ( s , a ) Q^{\pi_\theta(s,a)} Qπθ(s,a)来降低variance,变成doubly robust estimator。用处是可以通过限制Policy Improvement来实现安全约束的目的2(降低variance,需要额外地费劲,因为 Q π θ ( s , a ) Q^{\pi_\theta(s,a)} Qπθ(s,a)仍需要估计。)(也称Policy Evaluation)
- 1.2 用Importance Sampling的方式计算on-policy objective得到的off-policy policy gradient来更新策略参数(也称Policy Optimization)
- 1.3 介绍的是off-policy objective/gradient,经典算法有DDPG、TD3、SAC、SAC-Discrete都属于此类。
等等这都在介绍off-policy中Importance Sampling,它与offline的区别在哪呢?
如果直接将off-policy中Importance Sampling,直接用在offline,即把behavior policy
π
β
(
a
∣
s
)
\pi_\beta(a|s)
πβ(a∣s)收集的样本直接当作已有的offline dataset,那么important weight
w
t
i
w_t^i
wti的估计会有很大的方差以及前后不一致性(因为这这些权重的计算是多项的乘积,在long horizon、complex state & action的场景下数值十分不稳定),仅能在
π
β
(
a
∣
s
)
\pi_\beta(a|s)
πβ(a∣s)与
π
θ
(
a
∣
s
)
\pi_\theta(a|s)
πθ(a∣s)相差不远的时候使用。
于是为了解决Important weight的high variance问题,就延伸出了下面将要介绍的是一种另辟蹊径的做法,通过不同的方式5 d π θ ( s ) d π β ( s ) \frac{d^{\pi_\theta}(s)}{d^{\pi_\beta}(s)} dπβ(s)dπθ(s)或 d π θ ( s , a ) d π β ( s , a ) \frac{d^{\pi_\theta}(s,a)}{d^{\pi_\beta}(s,a)} dπβ(s,a)dπθ(s,a)进行offline policy的 evaluation&optimization
二、Convex Duality5
上面是我们熟悉的RL,但下面才是真正数学抽象、难以理解的优化问题。
在这里先说一个总逻辑:Legendre变换 --> Fenchel Conjugate --> Fenchel Duality --> Lagrangian Duality --> Linear Programming Duality。
- 共轭?:初接触”共轭“这个概念的对象一般是比较直观的数字对象,比如 1 − i 1-i 1−i的共轭是 1 + i 1+i 1+i,只是这里换成了“函数对象" f f f的共轭是 f ∗ f^* f∗。那么共轭怎么理解?事物的一体两面,只看一面 1 − i 1-i 1−i不够深刻,结合 1 + i 1+i 1+i的运算方式 ( 1 − i ) ( 1 + i ) = 2 , ( 1 − i ) + ( 1 + i ) = 2 (1-i)(1+i)=2,(1-i)+(1+i)=2 (1−i)(1+i)=2,(1−i)+(1+i)=2来帮助深入理解事物数字对象 i i i的计数的本质。(后面就能理解为啥 f ∗ f^* f∗能帮助我们更深入认识 f f f,从而找到优化它的方法)
2.1 Legendre变换
目的:寻找”连续可微单“变量函数 f ( x ) f(x) f(x)的线性函数形式的表示方法
所以从上图可抽象出:
f
(
x
)
=
f
′
(
x
)
x
+
c
(
x
)
−
c
(
x
)
=
f
′
(
x
)
x
−
f
(
x
)
\begin{aligned} f(x)&=f'(x)x+c(x)\\ -c(x)&=f'(x)x-f(x) \end{aligned}
f(x)−c(x)=f′(x)x+c(x)=f′(x)x−f(x)
其中 c ( x ) c(x) c(x)为截距。
一个函数
f
(
x
)
f(x)
f(x)被表示成了
f
′
(
x
)
x
+
c
(
x
)
f'(x)x+c(x)
f′(x)x+c(x),原本输入坐标点
x
x
x,得函数值
f
(
x
)
f(x)
f(x)通过切线表示法后,可看成输入斜率
f
′
(
x
)
f'(x)
f′(x)输出负截距
−
c
(
x
)
-c(x)
−c(x)的关系。
记
u
=
f
′
(
x
)
,
f
~
:
u
→
−
c
(
x
)
u=f'(x),\tilde f:u\rightarrow -c(x)
u=f′(x),f~:u→−c(x)即
f
~
(
u
)
=
−
c
(
x
)
\tilde f(u)=-c(x)
f~(u)=−c(x),以下称为
f
(
x
)
f(x)
f(x)的Legendre变换
f
~
(
u
)
\tilde f(u)
f~(u):
f
~
(
u
)
=
u
x
−
f
(
x
)
\tilde f(u)=ux-f(x)
f~(u)=ux−f(x)
总结一下:给定一个斜率
u
u
u,我们可以知道它的负截距
f
~
(
u
)
\tilde f(u)
f~(u),就可以把这条切线在点
(
x
,
f
(
x
)
)
(x,f(x))
(x,f(x))处画出来,这样就能用点的切线把
f
(
x
)
f(x)
f(x)的曲线信息给刻画出来。也即所谓的Duality。
推广一下有:这里 u , x u,x u,x均为多维变量, < u , x > = u ⊤ x <u,x>=u^\top x <u,x>=u⊤x。
f ~ ( u ) = < u , x > − f ( x ) s.t u = f ′ ( x ) \tilde f(u)=<u,x>-f(x)\quad \text{s.t }u=f'(x) f~(u)=<u,x>−f(x)s.t u=f′(x)
详细推导可见:薛定豆的知乎回答
2.2 Fenchel Conjugate
Legendre变换说白了,就是把
f
(
x
)
f(x)
f(x)的导数函数
f
′
(
x
)
f'(x)
f′(x)当成了输入
u
u
u,输出变成了切线(单变量)/切平面(多变量)的截距
f
~
(
u
)
=
−
c
(
x
)
\tilde f(u)=-c(x)
f~(u)=−c(x)。
但
f
(
x
)
f(x)
f(x)不可导或导数不唯一怎么办? (不可导的地方就找不到切线去刻画它的曲线信息,不唯一就导致一个斜率会输出两个不同的截距)
怎么找它斜率与截距的切线关系来刻画曲线上的点
(
x
,
f
(
x
)
)
(x,f(x))
(x,f(x)) ?于是便有了Fenchel Conjugate即:
f
∗
(
u
)
=
sup
x
∈
D
{
<
u
,
x
>
−
f
(
x
)
}
f^*(u)=\sup_{x\in D}\{<u,x>-f(x)\}
f∗(u)=x∈Dsup{<u,x>−f(x)}
仅举导数不唯一的 f ( x ) f(x) f(x)为例,如下图:
当斜率为
k
k
k时,有两条切线,这样就不好刻画
f
(
x
)
f(x)
f(x)的曲线信息了。
那么应该选哪条切线(潜台词:输出哪个负截距)来刻画呢? 答:负截距最大的那条,即运算符
sup
\sup
sup。再回头看Fenchel共轭函数:
f
∗
(
u
)
=
sup
x
∈
D
{
<
u
,
x
>
−
f
(
x
)
}
f^*(u)=\sup_{x\in D}\{<u,x>-f(x)\}
f∗(u)=x∈Dsup{<u,x>−f(x)}
当确定一条切线的斜率为
u
u
u时,从
x
x
x的可行域
D
D
D中找
x
∗
x^*
x∗使得“负截距最大”的,由此在那个点
(
x
∗
,
f
(
x
∗
)
)
(x^*,f(x^*))
(x∗,f(x∗))来刻画
f
(
x
)
f(x)
f(x)的曲线信息。
更严谨的讨论推荐阅读:
Fenchel Conjugate
知乎史博大佬的回答
2.3 Fenchel Duality
上面讲了个Fenchel Conjugate,用切线簇 f ~ ( u ) \tilde f(u) f~(u)来刻画一个函数 f ( x ) f(x) f(x)的曲线信息。那Fenchel Duality则是在优化问题中,用Fenchel Conjugate来优化原问题 f ( x ) f(x) f(x),相当于讲怎么用这个Fenchel Conjugate。
f ∗ ( u ) = sup x ∈ D { < u , x > − f ( x ) } → f ∗ ( u ) ≥ u ⊤ x − f ( x ) f^*(u)=\sup_{x\in D}\{<u,x>-f(x)\}\rightarrow f^*(u) \geq u^\top x-f(x) f∗(u)=x∈Dsup{<u,x>−f(x)}→f∗(u)≥u⊤x−f(x)
- 性质一:Fenchel不等式:
f ( x ) + f ∗ ( u ) ≥ u ⊤ x f(x)+f^*(u)\geq u^\top x f(x)+f∗(u)≥u⊤x这不等式不严谨理解为函数值 + 负截距 ≥ \geq ≥ 斜率为 u u u过原点的直线值。很自然地,有了原问题的,带有其共轭函数的下界:
f ( x ) ≥ u ⊤ x − f ∗ ( u ) f(x)\geq u^\top x-f^*(u) f(x)≥u⊤x−f∗(u) - 性质二:在函数
f
(
x
)
f(x)
f(x)是凸的情况下,Fenchel共轭的共轭:
f ∗ ∗ ( x ) = sup u ∈ f ∗ x ⊤ u − f ∗ ( u ) = sup x ∈ f x ⊤ u − sup x ∈ f ( x ⊤ u − f ( x ) ) = f ( x ) \begin{aligned} f^{**}(x)&=\sup_{u\in f^*}x^\top u-f^*(u)\\ &=\sup_{x\in f}x^\top u-\sup_{x\in f}(x^\top u-f(x))\\ &=f(x) \end{aligned} f∗∗(x)=u∈f∗supx⊤u−f∗(u)=x∈fsupx⊤u−x∈fsup(x⊤u−f(x))=f(x)
如果
f
(
x
)
f(x)
f(x)本身是凸函数,
f
∗
∗
(
x
)
=
f
(
x
)
f^{**}(x)=f(x)
f∗∗(x)=f(x);
如果
f
(
x
)
f(x)
f(x)本身是非凸函数,
f
∗
∗
(
x
)
f^{**}(x)
f∗∗(x)是原函数
f
(
x
)
f(x)
f(x)的一个凸闭包,如下图:
这样就给了一个非凸函数
f
(
x
)
f(x)
f(x)一个天然的凸闭包下界,凸的特性使其下界更好优化。
总结一下这里:对于一个原函数 f ( x ) f(x) f(x)
- 如果知道它的共轭函数
f
∗
(
x
)
f^*(x)
f∗(x),根据Fenchel不等式其自然下界为:
f ( x ) ≥ u ⊤ x − f ∗ ( u ) f(x)\geq u^\top x-f^*(u) f(x)≥u⊤x−f∗(u) - 如果其为非凸,则优化其凸闭包的下界,即共轭的共轭。
最终要给出Fenchel Duality的一般形式了:
给定一个原问题:
min
x
∈
D
J
P
(
x
)
=
min
x
∈
D
f
(
x
)
+
g
(
A
x
)
\min_{x\in D}J_P(x)=\min_{x\in D}f(x)+g(Ax)
x∈DminJP(x)=x∈Dminf(x)+g(Ax)
其对偶问题为: max u ∈ D ∗ J D ( u ) = max u ∈ D ∗ − f ∗ ( − A ⊤ u ) − g ∗ ( u ) \max_{u\in D^*}J_D(u)=\max_{u\in D^*}-f^*(-A^\top u)-g^*(u) u∈D∗maxJD(u)=u∈D∗max−f∗(−A⊤u)−g∗(u)
在一定条件下,原问题与对偶问题等价,以下为证明:
min x ∈ D J P ( x ) = min x ∈ D f ( x ) + g ( A x ) ( 1 ) = min x ∈ D f ( x ) + max u ∈ D ∗ u ⊤ A x − g ∗ ( u ) ( 2 ) = min x ∈ D max u ∈ D ∗ f ( x ) + u ⊤ A x − g ∗ ( u ) = max u ∈ D ∗ ( min x ∈ D f ( x ) + u ⊤ A x ) − g ∗ ( u ) (minmax-maxmin) = max u ∈ D ∗ ( max x ∈ D − f ( x ) − u ⊤ A x ) − g ∗ ( u ) = max u ∈ D ∗ − f ∗ ( − A ⊤ u ) − g ∗ ( u ) = max u ∈ D ∗ J D ( u ) \begin{aligned} \min_{x\in D}J_P(x)&=\min_{x\in D}f(x)+g(Ax)\quad (1)\\ &=\min_{x\in D}f(x)+\max_{u\in D^*}u^\top Ax-g^*(u) \quad (2)\\ &=\min_{x\in D}\max_{u\in D^*}f(x)+u^\top Ax-g^*(u)\\ &=\max_{u\in D^*}\left(\min_{x\in D}f(x)+u^\top Ax\right)-g^*(u)\text{ (minmax-maxmin)}\\ &=\max_{u\in D^*}\left(\max_{x\in D}-f(x)-u^\top Ax\right)-g^*(u)\\ &=\max_{u\in D^*}-f^*(-A^\top u)-g^*(u)\\ &=\max_{u\in D^*}J_D(u) \end{aligned} x∈DminJP(x)=x∈Dminf(x)+g(Ax)(1)=x∈Dminf(x)+u∈D∗maxu⊤Ax−g∗(u)(2)=x∈Dminu∈D∗maxf(x)+u⊤Ax−g∗(u)=u∈D∗max(x∈Dminf(x)+u⊤Ax)−g∗(u) (minmax-maxmin)=u∈D∗max(x∈Dmax−f(x)−u⊤Ax)−g∗(u)=u∈D∗max−f∗(−A⊤u)−g∗(u)=u∈D∗maxJD(u)
在 ( 1 ) → ( 2 ) (1)\rightarrow (2) (1)→(2)对 g ( A x ) g(Ax) g(Ax)用到了Fenchel Conjugate: f ( x ) = max u ∈ D ∗ u ⊤ x − f ∗ ( u ) f(x)=\max_{u\in D^*} u^\top x-f^*(u) f(x)=maxu∈D∗u⊤x−f∗(u)
若从对偶问题中解得 u ∗ u^* u∗,满足一定条件下,原问题的最优解为 x ∗ = f ∗ ′ ( − A ⊤ u ∗ ) x^*=f'_*(-A^\top u^*) x∗=f∗′(−A⊤u∗)。
值得一说的是,Lagrange Duality和Linear Programming Duality都是Fenchel Duality的特例。先记着,下面回顾完Lagrange Duality后说明,为何它是Fenchel Duality的特例。
2.4 Lagrange Duality
2.4.1 快速回顾拉格朗日对偶
原问题
J
P
(
x
)
J_P(x)
JP(x):
min
x
∈
R
n
f
(
x
)
s.t
c
i
(
x
)
≤
0
,
h
j
(
x
)
=
0
\begin{aligned} &\min_{x\in \mathbb R^n}f(x)\\ &\text{s.t } c_i(x)\leq 0,h_j(x)=0 \end{aligned}
x∈Rnminf(x)s.t ci(x)≤0,hj(x)=0
其拉格朗日函数
L
(
x
,
α
,
β
)
L(x,\alpha,\beta)
L(x,α,β)为:
L
(
x
,
α
,
β
)
=
f
(
x
)
+
∑
i
=
1
k
α
i
c
i
(
x
)
+
∑
j
=
1
l
β
j
h
j
(
x
)
L(x,\alpha,\beta)=f(x)+\sum_{i=1}^k \alpha_ic_i(x)+\sum_{j=1}^l\beta_jh_j(x)
L(x,α,β)=f(x)+i=1∑kαici(x)+j=1∑lβjhj(x)
所以原始问题
J
P
(
x
)
J_P(x)
JP(x)可表述为拉格朗日函数
L
(
x
,
α
,
β
)
L(x,\alpha,\beta)
L(x,α,β)关于对偶变量
α
i
,
β
j
\alpha_i,\beta_j
αi,βj的最大值问题:
J
P
(
x
)
=
max
α
,
β
:
α
i
≥
0
L
(
x
,
α
,
β
)
J_P(x)=\max_{\alpha,\beta:\alpha_i\geq0}L(x,\alpha,\beta)
JP(x)=α,β:αi≥0maxL(x,α,β)
所以有(要想清楚为啥 α i ≥ 0 \alpha_i \geq0 αi≥0呢?):
J P ( x ) = { f ( x ) if x满足约束 + ∞ otherwise J_P(x)= \left\{ \begin{array}{rl} f(x) & \text{if x满足约束} \\ +\infty & \text{otherwise} \end{array} \right. JP(x)={f(x)+∞if x满足约束otherwise
所以原问题的最小值问题就变为了包含拉格朗日函数的min-max问题
p
∗
=
min
x
J
P
(
x
)
=
min
x
max
α
,
β
:
α
i
≥
0
L
(
x
,
α
,
β
)
p^*=\min_xJ_P(x)=\min_x\max_{\alpha,\beta:\alpha_i\geq 0} L(x,\alpha,\beta)
p∗=xminJP(x)=xminα,β:αi≥0maxL(x,α,β)
对偶问题便是在约束
α
i
≥
0
\alpha_i\geq0
αi≥0下先优化原始变量
x
x
x再优化对偶变量
α
,
β
\alpha,\beta
α,β即:
d
∗
=
max
α
,
β
:
α
i
≥
0
J
D
(
α
,
β
)
=
max
α
,
β
:
α
i
≥
0
min
x
L
(
x
,
α
,
β
)
d^*=\max_{\alpha,\beta:\alpha_i\geq0}J_D(\alpha,\beta)=\max_{\alpha,\beta:\alpha_i\geq0}\min_x L(x,\alpha,\beta)
d∗=α,β:αi≥0maxJD(α,β)=α,β:αi≥0maxxminL(x,α,β)
它们的关系为:
d
∗
≤
p
∗
d^*\leq p^*
d∗≤p∗
等号成立的必要条件(KKT条件),即拉格朗日函数找到的原变量 x ∗ x^* x∗,对偶变量 α ∗ , β ∗ \alpha^*,\beta^* α∗,β∗要满足:
∇ x L ( x ∗ , α ∗ , β ∗ ) = 0 ( 1 ) α i ∗ c i ( x ∗ ) = 0 ( 2 ) c i ( x ∗ ) ≤ 0 ( 3 ) h j ( x ∗ ) = 0 ( 4 ) α i ∗ ≥ 0 ( 5 ) \begin{aligned} \nabla_xL(x^*,\alpha^*,\beta^*)=0&\quad(1)\\ \alpha_i^*c_i(x^*)=0&\quad(2)\\ c_i(x^*)\leq0&\quad (3)\\ h_j(x^*)=0&\quad (4)\\ \alpha_i^*\geq0&\quad (5) \end{aligned} ∇xL(x∗,α∗,β∗)=0αi∗ci(x∗)=0ci(x∗)≤0hj(x∗)=0αi∗≥0(1)(2)(3)(4)(5)
其实
(
3
)
(
4
)
(
5
)
(3)(4)(5)
(3)(4)(5)是本来就需要满足的约束,只有
(
1
)
(
2
)
(1)(2)
(1)(2)是特殊的。如果把
(
1
)
(1)
(1)展开得:
∇
x
f
(
x
∗
)
+
∑
i
=
1
k
α
i
∗
∇
x
c
i
(
x
∗
)
+
∑
j
=
1
l
β
j
∗
∇
x
h
j
(
x
∗
)
=
0
\nabla_xf(x^*)+\sum_{i=1}^k \alpha_i^*\nabla_xc_i(x^*)+\sum_{j=1}^l\beta_j^*\nabla_xh_j(x^*)=0
∇xf(x∗)+i=1∑kαi∗∇xci(x∗)+j=1∑lβj∗∇xhj(x∗)=0
说明如果要迭代更新 x x x的话,当前点 x ∗ x^* x∗的梯度方向 ∇ x f ( x ∗ ) \nabla_xf(x^*) ∇xf(x∗),要朝着不等式约束 c i ( x ∗ ) c_i(x^*) ci(x∗)的负梯度方向 − ∇ x c i ( x ∗ ) -\nabla_xc_i(x^*) −∇xci(x∗)和等式约束 h j ( x ∗ ) h_j(x^*) hj(x∗)的负梯度方向 − ∇ x h j ( x ∗ ) -\nabla_xh_j(x^*) −∇xhj(x∗)的线性组合方向走。
对于 ( 2 ) (2) (2)即 α i ∗ c i ( x ∗ ) = 0 \alpha_i^*c_i(x^*)=0 αi∗ci(x∗)=0可以直观理解为满足条件的 x ∗ , α ∗ , β ∗ x^*,\alpha^*,\beta^* x∗,α∗,β∗:对于 α i ∗ > 0 \alpha_i^*>0 αi∗>0的第 i i i个不等式约束 c i ( x ∗ ) c_i(x^*) ci(x∗)必为0;对于 c i ( x ∗ ) ≠ 0 c_i(x^*)\neq 0 ci(x∗)=0的第 i i i个不等式约束,其 α i ∗ = 0 \alpha_i^*=0 αi∗=0;
这个常用套路的关键在于:拉格朗日函数
L
(
x
,
α
,
β
)
L(x,\alpha,\beta)
L(x,α,β)为什么凭空出现了?
这就是Fenchel Conjugate或Fenchel Duality要回答的问题,下面从Fenchel Conjugate以及Fenchel Duality的定义分别推导出拉格朗日函数。
2.4.2 Fenchel Conjugate推导出Lagrange函数
简化下原问题(只是丢掉了等式约束):
min
x
∈
R
n
f
(
x
)
s.t
c
i
(
x
)
≤
0
\begin{aligned} &\min_{x\in \mathbb R^n}f(x)\\ &\text{s.t } c_i(x)\leq 0 \end{aligned}
x∈Rnminf(x)s.t ci(x)≤0
把原问题换一种方式表述:
p
(
0
)
=
min
x
,
g
(
x
)
≤
0
f
(
x
)
p(0)=\min _{x,g(x)\leq 0}f(x)
p(0)=x,g(x)≤0minf(x)
推广原问题(也称为扰动函数化,称
μ
\mu
μ为扰动):
p
(
μ
)
=
inf
x
,
g
(
x
)
≤
μ
f
(
x
)
p(\mu)=\inf _{x,g(x)\leq \mu}f(x)
p(μ)=x,g(x)≤μinff(x)
考虑原问题的共轭函数(即Fenchel Conjugate):(怕大家忘了, λ \lambda λ就理解成 p ( μ ) p(\mu) p(μ)的斜率, p ∗ ( λ ) p^*(\lambda) p∗(λ)为负截距)
p ∗ ( λ ) = sup μ { μ ⊤ λ − p ( μ ) } − p ∗ ( λ ) = inf μ { p ( μ ) − μ ⊤ λ } − p ∗ ( − λ ) = inf μ { p ( μ ) + μ ⊤ λ } − p ∗ ( − λ ) = inf μ { inf x , g ( x ) ≤ μ f ( x ) + μ ⊤ λ } \begin{aligned} p^*(\lambda)&=\sup_{\mu}\{\mu^\top \lambda-p(\mu)\}\\ -p^*(\lambda)&=\inf_{\mu}\{p(\mu)-\mu^\top \lambda\}\\ -p^*(-\lambda)&=\inf_{\mu}\{p(\mu)+\mu^\top \lambda\}\\ -p^*(-\lambda)&=\inf_{\mu}\{\inf _{x,g(x)\leq \mu}f(x)+\mu^\top \lambda\} \end{aligned} p∗(λ)−p∗(λ)−p∗(−λ)−p∗(−λ)=μsup{μ⊤λ−p(μ)}=μinf{p(μ)−μ⊤λ}=μinf{p(μ)+μ⊤λ}=μinf{x,g(x)≤μinff(x)+μ⊤λ}
这里要引入
λ
≥
0
\lambda\geq0
λ≥0,如果有
λ
≥
0
\lambda\geq0
λ≥0,则扰动
μ
\mu
μ的约束变为
λ
g
(
x
)
≤
λ
⊤
μ
\lambda g(x)\leq \lambda^\top\mu
λg(x)≤λ⊤μ,所以:
inf
μ
{
inf
x
,
g
(
x
)
≤
μ
f
(
x
)
+
μ
⊤
λ
}
→
{
inf
x
f
(
x
)
+
λ
g
(
x
)
}
\inf_\mu\{\inf _{x,g(x)\leq \mu}f(x)+\mu^\top \lambda\}\rightarrow \{\inf _{x}f(x)+ \lambda g(x)\}
μinf{x,g(x)≤μinff(x)+μ⊤λ}→{xinff(x)+λg(x)}
于是
−
p
∗
(
−
λ
)
=
inf
μ
{
inf
x
,
g
(
x
)
≤
μ
f
(
x
)
+
μ
⊤
λ
}
→
{
inf
x
f
(
x
)
+
λ
g
(
x
)
}
s.t
λ
≥
0
=
L
(
x
,
λ
)
s.t
λ
≥
0
\begin{aligned} -p^*(-\lambda)&=\inf_{\mu}\{\inf _{x,g(x)\leq \mu}f(x)+\mu^\top \lambda\}\\ &\rightarrow\{\inf _{x}f(x)+ \lambda g(x)\}\quad \text{s.t }\lambda\geq 0\\ &=L(x,\lambda)\quad \text{s.t }\lambda\geq 0 \end{aligned}
−p∗(−λ)=μinf{x,g(x)≤μinff(x)+μ⊤λ}→{xinff(x)+λg(x)}s.t λ≥0=L(x,λ)s.t λ≥0
于是拉格朗日函数就出来了(整个推导只用了一个扰动 μ \mu μ的Fenchel共轭,通过对斜率 λ \lambda λ额外施加约束 λ ≥ 0 \lambda\geq0 λ≥0,使得扰动 μ \mu μ的约束转化到了本来的约束 g ( x ) g(x) g(x)上即 λ g ( x ) ≤ λ ⊤ μ \lambda g(x)\leq \lambda^\top\mu λg(x)≤λ⊤μ。
更为通透的理解可进一步参阅Legendre-Fenchel变换的物理意义
2.4.3从Fenchel Duality的定义推导出Lagrangian
Fenchel Duality给定一个原问题: min x ∈ D J P ( x ) = min x ∈ D f ( x ) + g ( A x ) \min_{x\in D}J_P(x)=\min_{x\in D}f(x)+g(Ax) x∈DminJP(x)=x∈Dminf(x)+g(Ax)
其对偶问题为: max u ∈ D ∗ J D ( u ) = max u ∈ D ∗ − f ∗ ( − A ⊤ u ) − g ∗ ( u ) \max_{u\in D^*}J_D(u)=\max_{u\in D^*}-f^*(-A^\top u)-g^*(u) u∈D∗maxJD(u)=u∈D∗max−f∗(−A⊤u)−g∗(u)
再次简化,给定受线性约束的 f ( x ) f(x) f(x):
min x f ( x ) s.t A x ≥ b \min_x f(x)\quad \text{s.t } Ax\geq b xminf(x)s.t Ax≥b
拉格朗日对偶问题有:
min
x
max
λ
L
(
x
,
λ
)
=
f
(
x
)
+
λ
⊤
(
b
−
A
x
)
s.t
λ
≥
0
\min_x\max_\lambda L(x,\lambda)=f(x)+\lambda^\top(b-Ax)\quad \text{s.t }\lambda\geq0
xminλmaxL(x,λ)=f(x)+λ⊤(b−Ax)s.t λ≥0
用Fenchel对偶前,先把原问题表述为
min
x
∈
D
f
(
x
)
+
g
(
A
x
)
\min_{x\in D}f(x)+g(Ax)
minx∈Df(x)+g(Ax)的形式。
定义indicator function
δ
C
(
x
)
\delta_C(x)
δC(x):
δ
C
(
x
)
=
{
0
if
x
∈
C
+
∞
otherwise
\delta_C(x)= \left\{ \begin{array}{rl} 0& \text{if }x\in C \\ +\infty & \text{otherwise} \end{array} \right.
δC(x)={0+∞if x∈Cotherwise
所以约束
A
x
≥
b
Ax\geq b
Ax≥b可以写成
δ
R
−
(
b
−
A
x
)
\delta_{\mathbb R^-}(b-Ax)
δR−(b−Ax)(需要仔细想想,想不通可以先看Linear Programming Duality)
所以原问题表述为Fenchel原问题的形式
min
x
∈
D
f
(
x
)
+
g
(
A
x
)
\min_{x\in D}f(x)+g(Ax)
minx∈Df(x)+g(Ax)(可以自己推导一下
δ
R
−
(
b
−
A
x
)
\delta_{\mathbb R^-}(b-Ax)
δR−(b−Ax)的conjugate的形式):
min
x
f
(
x
)
s.t
A
x
≥
b
→
min
x
f
(
x
)
+
δ
R
−
(
b
−
A
x
)
\min_{x}f(x)\quad\text{s.t }Ax\geq b\rightarrow \min_xf(x)+\delta_{\mathbb R^-}(b-Ax)
xminf(x)s.t Ax≥b→xminf(x)+δR−(b−Ax)
Fenchel 对偶问题的形式为:
max
u
∈
D
∗
−
f
∗
(
−
A
⊤
u
)
−
g
∗
(
u
)
→
max
μ
:
μ
≥
0
μ
⊤
b
−
f
∗
(
A
⊤
μ
)
=
min
x
max
μ
:
μ
≥
0
μ
⊤
b
−
x
⊤
A
μ
+
f
(
x
)
=
min
x
max
μ
:
μ
≥
0
f
(
x
)
+
μ
⊤
(
b
−
A
x
)
=
min
x
max
μ
:
μ
≥
0
L
(
x
,
μ
)
\begin{aligned} \max_{u\in D^*}-f^*(-A^\top u)-g^*(u)&\rightarrow \max_{\mu:\mu\geq 0}\mu^\top b-f^*(A^\top \mu)\\ &=\min_x\max_{\mu:\mu\geq 0}\mu^\top b-x^\top A\mu+f(x)\\ &=\min_x\max_{\mu:\mu\geq 0} f(x)+\mu^\top (b-Ax)\\ &=\min_x\max_{\mu:\mu\geq 0}L(x,\mu) \end{aligned}
u∈D∗max−f∗(−A⊤u)−g∗(u)→μ:μ≥0maxμ⊤b−f∗(A⊤μ)=xminμ:μ≥0maxμ⊤b−x⊤Aμ+f(x)=xminμ:μ≥0maxf(x)+μ⊤(b−Ax)=xminμ:μ≥0maxL(x,μ)
2.5 Linear Programming Duality
对于一个常规的线性规划(LP)问题:
min
x
c
⊤
x
s.t
x
≥
0
,
A
x
=
b
.
\min_x c^\top x\quad \text{s.t }x\geq0,Ax=b.
xminc⊤xs.t x≥0,Ax=b.
怎么表述这两个约束?从而让LP的原问题变成Fenchel Duality的原问题 min x ∈ D f ( x ) + g ( A x ) \min_{x\in D}f(x)+g(Ax) minx∈Df(x)+g(Ax)
- 把 x ≥ 0 x\geq 0 x≥0用函数 δ R + ( x ) \delta_{\mathbb R_+}(x) δR+(x)表述,当 x ∈ R + x\in \mathbb R_+ x∈R+时,值为0;即当 x x x满足约束时,对目标值 c ⊤ x c^\top x c⊤x不产生影响;
- 把 A x = b Ax=b Ax=b用 δ { b } ( A x ) \delta_{\{b\}}(Ax) δ{b}(Ax)表达,即 g ( A x ) = δ { b } ( A x ) g(Ax)=\delta_{\{b\}}(Ax) g(Ax)=δ{b}(Ax);
所以LP原问题中的目标
c
⊤
x
c^\top x
c⊤x连同它的约束可被重新表述为:
min
x
c
⊤
x
+
δ
R
+
(
x
)
⏟
f
(
x
)
+
δ
{
b
}
(
A
x
)
⏟
g
(
A
x
)
\min_x \underbrace{c^\top x+\delta_{\mathbb R^+}(x)}_{f(x)}+\underbrace{\delta_{\{b\}}(Ax)}_{g(Ax)}
xminf(x)
c⊤x+δR+(x)+g(Ax)
δ{b}(Ax)
查表知道共轭函数
f
∗
,
g
∗
f^*,g^*
f∗,g∗的形式:
通过Fenchel Duality的对偶形式
m
a
x
u
−
f
∗
(
−
A
⊤
u
)
−
g
∗
(
u
)
\\max_{u}-f^*(-A^\top u)-g^*(u)
maxu−f∗(−A⊤u)−g∗(u),即上述共轭函数的代入后得LP的对偶:
max μ b ⊤ μ s.t A ⊤ μ ≤ c \max_\mu b^\top \mu\quad \text{s.t } A^\top \mu\leq c μmaxb⊤μs.t A⊤μ≤c
2.6 总结
这条线主要是想说明Fenchel Conjugate中共轭函数的概念,以及何为Fenchel Duality,它的特例有Lagrange Duality以及Linear Programming Duality。下面便是使用Duality的理论应用在Offline RL上的例子,无非就是把原问题转化成对偶问题来优化,转化的过程使用了Fenchel Conjugate,需要对约束进行表述变成Fenchel Duality中的
g
(
A
x
)
g(Ax)
g(Ax)。
然后优化对偶问题得到的解
d
∗
d^*
d∗,通过强对偶定理或弱对偶定理来获得原问题的解
p
∗
p^*
p∗
所以下一篇应用对偶性原理的才是Offline RL的重头戏,绝望了吗?