离线强化学习-2重要性采样和Duality介绍(劝退版)

概述

上一篇文章为该问题进行了铺垫,回顾一下接下来要面对的概念。

  • 目的是得到一个不错的Policy π ( a ∣ s ) \pi(a|s) π(as),自然需要对它进行评估Evaluation,即Policy Return或Policy Objective,记为 J ( π ) J(\pi) J(π)
  • 评估一个action distribution(Policy的意思 π ( a ∣ s ) \pi(a|s) π(as)),需要用它与环境交互收集样本 ( 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) πβ(as)收集的样本来估计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=0Hγtr(s,a)]=Eτπβ(τ)[d0(s0)t=0Hπβ(atst)p(st+1st,at)d0(s0)t=0Hπθ(atst)p(st+1st,at)r(τ)](1)=Eτπβ(τ)[(t=0Hπβ(atst)πθ(atst))t=0Hγtr(s,a)](2)i=1nwHit=0Hγtrti(3:wHi=n1t=0Hπβ(atisti)πθ(atisti))n1i=1nt=0Hwtiγtrti4:Causalityi=1nt=0Hγt(wti(rtiQ^πθ(st,at))wt1iEaπθ(ast)[Q^πθ(st,a)])(5)

  • 假设从Off-Policy的 π β ( a ∣ s ) \pi_\beta(a|s) πβ(as)中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) πβ(as)收集的trajectory进行weighted trajectory return来估计On-Policy Objective J ( π θ ) J(\pi_\theta) J(πθ),需要知道的对象自然是 π β ( a ∣ s ) , π θ ( a ∣ s ) \pi_\beta(a|s),\pi_\theta(a|s) πβ(as),πθ(as)才能进行计算
  • 用一个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πβ(atisti)πθ(atisti),因此有了(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πβ(atisti)πθ(atisti)
  • (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) πβ(as)收集的样本来估计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=0Tθlogπθ(atst))(t=0Hγtr(st,at))]=Eτπβ(τ)[(t=0Hπβ(atst)πθ(atst))(t=0Hγtθlogπθ(atst)A^(st,at))]i=1nwHit=0Hγtθlogπθ(atisti)A^(sti,ati)i=1nt=0Hwtiγtθlogπθ(atisti)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) πθ(as)
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πβ(πθ)=Esdπβ(s)[Vπθ(s)]=Esdπβ(s)[Eaπθ(as)[Qπθ(s,a)]]=Esdπβ(s)[Eaπθ(as)[r(s,a)+γEsdπβ(s)[Vπθ(s)]]]=Esdπβ(s),aπθ(as)[r(s,a)+γEsdπβ(s)[Vπθ(s)]]=Esdπβ(s),aπθ(as)[r(s,a)+γEsdπβ(s),aπθ(as)[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πβ(πθ)Esdπβ(s)(s),aπθ(as)[θlogπθ(as)Qπθ(s,a)]

这里涉及到用behavior policy π β ( a ∣ s ) \pi_\beta(a|s) πβ(as)收集的样本去估计 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) πθ(as)的样本

这些Importance Sampling比较成熟的用法4,可参考Impala: Scalable distributed deep-rl with importance weighted actor-learner architectures

1.4 总结(异常重要

自始至终都要明确一个目的:我们想评估当前的policy π θ ( a ∣ s ) \pi_\theta(a|s) πθ(as)的表现如何,然后用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) πθ(as) 或 behavior policy π β ( a ∣ s ) \pi_\beta(a|s) πβ(as),估计的对象是 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) πβ(as)的,因此需要计算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) πβ(as)收集的样本直接当作已有的offline dataset,那么important weight w t i w_t^i wti的估计会有很大的方差以及前后不一致性(因为这这些权重的计算是多项的乘积,在long horizon、complex state & action的场景下数值十分不稳定),仅能在 π β ( a ∣ s ) \pi_\beta(a|s) πβ(as) π θ ( a ∣ s ) \pi_\theta(a|s) πθ(as)相差不远的时候使用。

于是为了解决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 1i的共轭是 1 + i 1+i 1+i,只是这里换成了“函数对象" f f f的共轭是 f ∗ f^* f。那么共轭怎么理解?事物的一体两面,只看一面 1 − i 1-i 1i不够深刻,结合 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 (1i)(1+i)=2,(1i)+(1+i)=2来帮助深入理解事物数字对象 i i i的计数的本质。(后面就能理解为啥 f ∗ f^* f能帮助我们更深入认识 f f f,从而找到优化它的方法

2.1 Legendre变换

目的:寻找”连续可微单“变量函数 f ( x ) f(x) f(x)线性函数形式的表示方法

1
所以从上图可抽象出:
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)xf(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~:uc(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)=uxf(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>=ux

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)=xDsup{<u,x>f(x)}

仅举导数不唯一的 f ( x ) f(x) f(x)为例,如下图:

2

当斜率为 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)=xDsup{<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)的曲线信息。
3

更严谨的讨论推荐阅读:
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)=xDsup{<u,x>f(x)}f(u)uxf(x)

  • 性质一:Fenchel不等式
    f ( x ) + f ∗ ( u ) ≥ u ⊤ x f(x)+f^*(u)\geq u^\top x f(x)+f(u)ux这不等式不严谨理解为函数值 + 负截距 ≥ \geq 斜率为 u u u过原点的直线值。很自然地,有了原问题的,带有其共轭函数的下界:
    f ( x ) ≥ u ⊤ x − f ∗ ( u ) f(x)\geq u^\top x-f^*(u) f(x)uxf(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)=ufsupxuf(u)=xfsupxuxfsup(xuf(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)的一个凸闭包,如下图:
4
这样就给了一个非凸函数 f ( x ) f(x) f(x)一个天然的凸闭包下界,凸的特性使其下界更好优化。

总结一下这里:对于一个原函数 f ( x ) f(x) f(x)

  1. 如果知道它的共轭函数 f ∗ ( x ) f^*(x) f(x),根据Fenchel不等式其自然下界为:
    f ( x ) ≥ u ⊤ x − f ∗ ( u ) f(x)\geq u^\top x-f^*(u) f(x)uxf(u)
  2. 如果其为非凸,则优化其凸闭包的下界,即共轭的共轭。

最终要给出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) xDminJP(x)=xDminf(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) uDmaxJD(u)=uDmaxf(Au)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} xDminJP(x)=xDminf(x)+g(Ax)(1)=xDminf(x)+uDmaxuAxg(u)(2)=xDminuDmaxf(x)+uAxg(u)=uDmax(xDminf(x)+uAx)g(u) (minmax-maxmin)=uDmax(xDmaxf(x)uAx)g(u)=uDmaxf(Au)g(u)=uDmaxJD(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)=maxuDuxf(u)

若从对偶问题中解得 u ∗ u^* u,满足一定条件下,原问题的最优解为 x ∗ = f ∗ ′ ( − A ⊤ u ∗ ) x^*=f'_*(-A^\top u^*) x=f(Au)

值得一说的是,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} xRnminf(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=1kαici(x)+j=1lβ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)=α,β:αi0maxL(x,α,β)

所以有(要想清楚为啥 α i ≥ 0 \alpha_i \geq0 αi0呢?):

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α,β:αi0maxL(x,α,β)

对偶问题便是在约束 α i ≥ 0 \alpha_i\geq0 αi0下先优化原始变量 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=α,β:αi0maxJD(α,β)=α,β:αi0maxxminL(x,α,β)

它们的关系为:
d ∗ ≤ p ∗ d^*\leq p^* dp

等号成立的必要条件(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αici(x)=0ci(x)0hj(x)=0αi0(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=1kαixci(x)+j=1lβjxhj(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 αici(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} xRnminf(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) xDminJP(x)=xDminf(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) uDmaxJD(u)=uDmaxf(Au)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 Axb

拉格朗日对偶问题有:
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)+λ(bAx)s.t λ0

用Fenchel对偶前,先把原问题表述为 min ⁡ x ∈ D f ( x ) + g ( A x ) \min_{x\in D}f(x)+g(Ax) minxDf(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 xCotherwise

所以约束 A x ≥ b Ax\geq b Axb可以写成 δ R − ( b − A x ) \delta_{\mathbb R^-}(b-Ax) δR(bAx)需要仔细想想,想不通可以先看Linear Programming Duality
所以原问题表述为Fenchel原问题的形式 min ⁡ x ∈ D f ( x ) + g ( A x ) \min_{x\in D}f(x)+g(Ax) minxDf(x)+g(Ax)可以自己推导一下 δ R − ( b − A x ) \delta_{\mathbb R^-}(b-Ax) δR(bAx)的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 Axbxminf(x)+δR(bAx)

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} uDmaxf(Au)g(u)μ:μ0maxμbf(Aμ)=xminμ:μ0maxμbxAμ+f(x)=xminμ:μ0maxf(x)+μ(bAx)=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. xmincxs.t x0,Ax=b.

怎么表述这两个约束?从而让LP的原问题变成Fenchel Duality的原问题 min ⁡ x ∈ D f ( x ) + g ( A x ) \min_{x\in D}f(x)+g(Ax) minxDf(x)+g(Ax)

  1. x ≥ 0 x\geq 0 x0用函数 δ R + ( x ) \delta_{\mathbb R_+}(x) δR+(x)表述,当 x ∈ R + x\in \mathbb R_+ xR+时,值为0;即当 x x x满足约束时,对目标值 c ⊤ x c^\top x cx不产生影响;
  2. 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 cx连同它的约束可被重新表述为:
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) cx+δR+(x)+g(Ax) δ{b}(Ax)

查表知道共轭函数 f ∗ , g ∗ f^*,g^* f,g的形式:
5
通过Fenchel Duality的对偶形式 m a x u − f ∗ ( − A ⊤ u ) − g ∗ ( u ) \\max_{u}-f^*(-A^\top u)-g^*(u) maxuf(Au)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的重头戏,绝望了吗?


  1. Data-Efficient Off-Policy Policy Evaluation for Reinforcement Learning ↩︎

  2. Safe policy improvement with soft baseline bootstrapping ↩︎ ↩︎

  3. Off-policy actor-critic ↩︎

  4. Impala: Scalable distributed deep-rl with importance weighted actor-learner architectures ↩︎

  5. Reinforcement Learning via Fenchel-Rockafellar Duality ↩︎ ↩︎

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值