Offline Reinforcement Learning-背景介绍
离线强化学习主要分为两篇文章,本篇主要简述RL的发展主线,引出Offline RL的Problem Statement以及面临的难题。下篇对这些难题的解决方法探索,进行细述。
概述
文章定位:这是一篇关于Offline RL的整理,根据Sergey Levine大佬的Tutorial:Offline Reinforcement Learning: Tutorial, Review, and Perspectives on Open Problems结合多篇阅读过的Paper来深化下Offline RL的主线。
Offline RL的任务:在一个静态数据集
D
=
{
(
s
,
a
,
r
,
s
′
)
}
\mathcal D=\{(s,a,r,s')\}
D={(s,a,r,s′)}上学习一个较优策略(起码比supervised learning要好一点)
Offline RL的数据集:D4RL、NeoRL、RL unplugged
Offline RL评估标准:Online Interaction、Off-Policy Evaluation、Expert evaluate
补充说明:有环境simulator的话,将learned policy进行online interaction评估即可;但如果没有simulator或者online interaction的成本很高(healthcare、recommendation system),那只能用Off-policy evaluation(OPE)的方式去估计learned policy期望回报的大小来评估。(或者更直接,domain expert来肉眼对learned policy进行评估)
Offline RL的评估环境:在静态数据集 D \mathcal D D上训练一个learned policy,希望它在真实测试环境上表现得更好。(所以训练的效果不一定能反映测试的效果,根据OOD(Out-of-distribution)的理论,一取决于数据集的sufficient coverage,二取决于训练环境中提取到的invariance即learned policy能否泛化到测试环境)
Offline RL的制约因素:
- exploration 无法探索,所有性能的提升都取决于datasets中cover到的high reward region够不够(数据集 fundamental problem)
- 测试时,会遇到训练集中没有的状态即distributional shift
- RL都会遇到的问题,high-dimensional continuous的state与action怎么处理?Long horizon导致的compounding error怎么减轻即domain/task complexity
一、简述RL的发展主线
The reward function defines what an agent should do, and a reinforcement learning algorithm determines how to do it
- 最基础的是:MDP ( M = ( S , A , T , d 0 , r , γ ) ) (\mathcal {M=(S,A,T},d_0,r,\gamma)) (M=(S,A,T,d0,r,γ))、POMDP ( M = ( S , A , O , T , E , d 0 , r , γ ) ) (\mathcal {M=(S,A,O,T,E},d_0,r,\gamma)) (M=(S,A,O,T,E,d0,r,γ)),在 ( s t , a t ) (s_t,a_t) (st,at)上定义了Markov Chain1
- 由此定义出主要受策略 π ( a t ∣ s t ) \pi(a_t|s_t) π(at∣st)影响的trajectory distribution p π ( τ ) = d 0 ( s 0 ) ∏ t = 0 h π ( a t ∣ s t ) T ( s t + 1 ∣ s t , a t ) p_\pi(\tau)=d_0(s_0)\prod_{t=0}^h\pi(a_t|s_t)T(s_{t+1}|s_t,a_t) pπ(τ)=d0(s0)∏t=0hπ(at∣st)T(st+1∣st,at),在该 p π ( τ ) p_\pi(\tau) pπ(τ)上定义RL objective J ( π ) = E τ ∼ p π ( τ ) [ ∑ t = 0 H γ t r ( s t , a t ) ] J(\pi)=\mathbb E_{\tau\sim p_{\pi}(\tau)}\left[\sum_{t=0}^H\gamma^tr(s_t,a_t)\right] J(π)=Eτ∼pπ(τ)[∑t=0Hγtr(st,at)],可将 p π ( τ ) p_\pi(\tau) pπ(τ)分解成 d π ( s ) π ( a ∣ s ) d^\pi(s)\pi(a|s) dπ(s)π(a∣s) ,即将轨迹分布=状态分布 × \times ×策略分布
- d t π ( s t ) d^\pi_t(s_t) dtπ(st)是 d π ( s ) d^\pi(s) dπ(s)的观测统计量, π θ ( a ∣ s ) \pi_\theta(a|s) πθ(a∣s)是 π ( a ∣ s ) \pi(a|s) π(a∣s)的参数模型
- π θ ( a ∣ s ) \pi_\theta(a|s) πθ(a∣s)通过与经验相关的统计量控制的探索策略,形成behavior policy π β ( a ∣ s ) \pi_\beta(a|s) πβ(a∣s)与环境 M \mathcal M M交互得到experience,根据experience以某种学习机制更新 π θ ( a ∣ s ) \pi_\theta(a|s) πθ(a∣s)
- 为了优化RL objective J ( π ) J(\pi) J(π)有不同的学习机制:Policy Gradients、Value Learning (Dynamics Programming)、Actor-Critic、Model-based等四种主流方法
- 在每个主流方法中,因为horizon可变长、可有限、可无限,所以具体计算的方式各不相同,计算目标梯度 ∇ θ J ( π θ ) \nabla_\theta J(\pi_\theta) ∇θJ(πθ)而估计的对象(如Advantage、Q-function、Value function、trajectory return等)也各有差别,但信息的流向是一致的:人为定义的监督信息reward function r ( s t , a t ) → r(s_t,a_t)\rightarrow r(st,at)→ RL objective J ( π ) J(\pi) J(π)的折中处理 → \rightarrow →关于目标梯度 ∇ θ J ( π θ ) \nabla_\theta J(\pi_\theta) ∇θJ(πθ)的计算方式 → \rightarrow →计算 ∇ θ J ( π θ ) \nabla_\theta J(\pi_\theta) ∇θJ(πθ)所需对象的近似估计
接下来言简意赅地总结下这四个主流方法的主要思路:
评估策略
π
θ
\pi_\theta
πθ的好坏,自然是用它去和环境交互得到experience,根据自身得到的experience去更新,即on-policy objective:
J
(
π
θ
)
=
E
τ
∼
p
π
θ
(
τ
)
[
r
(
τ
)
]
=
E
τ
∼
p
π
θ
(
τ
)
[
∑
t
=
0
H
γ
t
r
(
s
t
,
a
t
)
]
(
0
)
=
∑
t
=
0
H
E
s
t
∼
d
t
π
θ
(
s
t
)
,
a
t
∼
π
θ
(
a
t
∣
s
t
)
[
γ
t
r
(
s
t
,
a
t
)
]
(
1
)
=
∑
t
=
0
H
E
(
s
t
,
a
t
)
∼
p
t
π
θ
(
s
,
a
)
[
γ
t
r
(
s
t
,
a
t
)
]
→
1
1
−
γ
E
s
∼
d
π
θ
(
s
t
)
,
a
∼
π
θ
(
a
∣
s
)
[
r
(
s
,
a
)
]
(
2
)
→
1
1
−
γ
E
(
s
t
,
a
t
)
∼
p
π
θ
(
s
,
a
)
[
r
(
s
t
,
a
t
)
]
\begin{aligned} J(\pi_\theta) & = \mathbb E_{\tau\sim p_{\pi_\theta}(\tau)}\left[r(\tau)\right]\\ & = \mathbb E_{\tau\sim p_{\pi_\theta}(\tau)}\left[\sum_{t=0}^H\gamma^tr(s_t,a_t)\right]\quad \quad \quad \quad \quad(0)\\ &=\sum_{t=0}^H\mathbb E_{s_t\sim d^{\pi_\theta}_t(s_t), a_t\sim \pi_\theta(a_t|s_t)}\left[\gamma^tr(s_t,a_t)\right]\quad (1)\\ &=\sum_{t=0}^H\mathbb E_{(s_t,a_t)\sim p^{\pi_\theta}_t(s,a)}\left[\gamma^tr(s_t,a_t)\right]\\ &\rightarrow\frac{1}{1-\gamma}\mathbb E_{s\sim d^{\pi_\theta}(s_t),a\sim \pi_\theta(a|s)}\left[r(s,a)\right]\quad \quad \text{ }\text{ }(2)\\ &\rightarrow \frac{1}{1-\gamma} \mathbb E_{(s_t,a_t)\sim p^{\pi_\theta}(s,a)}[r(s_t,a_t)] \end{aligned}
J(πθ)=Eτ∼pπθ(τ)[r(τ)]=Eτ∼pπθ(τ)[t=0∑Hγtr(st,at)](0)=t=0∑HEst∼dtπθ(st),at∼πθ(at∣st)[γtr(st,at)](1)=t=0∑HE(st,at)∼ptπθ(s,a)[γtr(st,at)]→1−γ1Es∼dπθ(st),a∼πθ(a∣s)[r(s,a)] (2)→1−γ1E(st,at)∼pπθ(s,a)[r(st,at)]
整个On-Policy Objective是用来评估策略 π θ \pi_\theta πθ的:
- (0)构建的方式:被 π θ \pi_\theta πθ决定的trajectory distribution p π θ ( τ ) p_{\pi_\theta}(\tau) pπθ(τ)下,策略的好坏由trajectory return r ( τ ) r(\tau) r(τ)进行评估。具体计算用 π θ ( a ∣ s ) \pi_\theta(a|s) πθ(a∣s)与环境交互 p ( s t + 1 ∣ s t , a t ) p(s_{t+1}|s_t,a_t) p(st+1∣st,at)序列长度为 H H H的轨迹,然后得到的n个轨迹 { τ i } i = 1 n \{\tau_i\}_{i=1}^n {τi}i=1n,每个 τ i \tau_i τi计算一个return,平均得到trajectory return的估计
- (1)构建的方式:当Horizon是有限的情况下,按时间的角度对收集的n个轨迹 { τ i } i = 1 n \{\tau_i\}_{i=1}^n {τi}i=1n进行划分,从中(experience)统计每个时间刻t的状态分布 d t π θ ( s t ) d_t^{\pi_\theta}(s_t) dtπθ(st),从 π θ \pi_\theta πθ采样一些action丢进人为设计的reward function,得到策略 π θ \pi_\theta πθ在当前时刻t的期望奖励 E s t ∼ d t π θ ( s t ) , a t ∼ π θ ( a t ∣ s t ) [ γ t r ( s t , a t ) ] \mathbb E_{s_t\sim d^{\pi_\theta}_t(s_t), a_t\sim \pi_\theta(a_t|s_t)}\left[\gamma^tr(s_t,a_t)\right] Est∼dtπθ(st),at∼πθ(at∣st)[γtr(st,at)]后将其累积
- (2)构建的方式,当Horizon是无限的情况下,不断用策略 π θ \pi_\theta πθ与环境交互收集transitions ( s , a , r , s ′ ) (s,a,r,s') (s,a,r,s′),从这些experience中统计状态的稳态分布 d π θ ( s ) d^{\pi_\theta}(s) dπθ(s),在该稳态分布上采样策略 π θ ( a ∣ s ) \pi_\theta(a|s) πθ(a∣s)丢进reward function进行评估。
1. 1 Policy Gradients2
对policy的评估,采用自身,只参数化Policy,on-policy目标梯度推导后:
∇
θ
J
(
π
θ
)
=
∑
t
=
0
H
E
s
t
∼
d
t
π
(
s
t
)
,
a
t
∼
π
θ
(
a
t
∣
s
t
)
[
γ
t
∇
θ
log
π
θ
(
a
t
∣
s
t
)
A
^
(
s
t
,
a
t
)
]
\nabla_{\theta} J\left(\pi_{\theta}\right)=\sum_{t=0}^{H} \mathbb{E}_{\mathbf{s}_{t} \sim d_{t}^{\pi}\left(\mathbf{s}_{t}\right), \mathbf{a}_{t} \sim \pi_{\theta}\left(\mathbf{a}_{t} \mid \mathbf{s}_{t}\right)}\left[\gamma^{t} \nabla_{\theta} \log \pi_{\theta}\left(\mathbf{a}_{t} \mid \mathbf{s}_{t}\right) \hat{A}\left(\mathbf{s}_{t}, \mathbf{a}_{t}\right)\right]
∇θJ(πθ)=t=0∑HEst∼dtπ(st),at∼πθ(at∣st)[γt∇θlogπθ(at∣st)A^(st,at)]
后续关键就是怎么估计这个Advantage,可以用Monte-Carlo estimator,可以用TD error或GAE等方式从experience中拟合估计得到。后续的改进如结合policy distribution的约束的induced与enforced得到的TRPO、PPO等,可参考之前的文章CS285 le5-le9
1.2 Value Learning 3
对于某个策略
π
\pi
π的值评估方式(Bellman Operator):
Q
π
(
s
t
,
a
t
)
=
r
(
s
t
,
a
t
)
+
γ
E
s
t
+
1
∼
T
(
s
t
+
1
∣
s
t
,
a
t
)
,
a
t
+
1
∼
π
(
a
t
+
1
∣
s
t
+
1
)
[
Q
π
(
s
t
+
1
,
a
t
+
1
)
)
]
\left.Q^{\pi}\left(\mathbf{s}_{t}, \mathbf{a}_{t}\right)=r\left(\mathbf{s}_{t}, \mathbf{a}_{t}\right)+\gamma \mathbb{E}_{\mathbf{s}_{t+1} \sim T\left(\mathbf{s}_{t+1} \mid \mathbf{s}_{t}, \mathbf{a}_{t}\right), \mathbf{a}_{t+1} \sim \pi\left(\mathbf{a}_{t+1} \mid \mathbf{s}_{t+1}\right)}\left[Q^{\pi}\left(\mathbf{s}_{t+1}, \mathbf{a}_{t+1}\right)\right)\right]
Qπ(st,at)=r(st,at)+γEst+1∼T(st+1∣st,at),at+1∼π(at+1∣st+1)[Qπ(st+1,at+1))]
Value learning将policy选择为 π ( a t ∣ s t ) = δ ( a t = arg max Q ( s t , a t ) ) \pi(a_t|s_t)=\delta(a_t=\argmax Q(s_t,a_t)) π(at∣st)=δ(at=argmaxQ(st,at)),只参数化一个值函数 Q ϕ ( s , a ) Q_\phi(s,a) Qϕ(s,a)来逼近最优策略 π ∗ \pi^* π∗对应的值函数 Q ∗ ( s , a ) Q^*(s,a) Q∗(s,a),对于最优策略的Q满足(Bellman Optimality operator):
Q ∗ ( s t , a t ) = r ( s t , a t ) + γ E s t + 1 ∼ T ( s t + 1 ∣ s t , a t ) [ max a t + 1 Q ∗ ( s t + 1 , a t + 1 ) ] (*) Q^*(s_t,a_t)=r(s_t,a_t)+\gamma\mathbb E_{s_{t+1}\sim T(s_{t+1}|s_t,a_t)}\left[\max_{a_{t+1}}Q^*(s_{t+1},a_{t+1})\right]\tag{*} Q∗(st,at)=r(st,at)+γEst+1∼T(st+1∣st,at)[at+1maxQ∗(st+1,at+1)](*)
把这个(*)式当作
Q
ϕ
(
s
,
a
)
Q_\phi(s,a)
Qϕ(s,a)的Objective,把左边与右边选MSE loss进行优化:(这里关于环境的期望
s
t
+
1
∼
T
(
s
t
+
1
∣
s
t
,
a
t
)
s_{t+1}\sim T(s_{t+1}|s_t,a_t)
st+1∼T(st+1∣st,at)被一个样本近似了)
[
Q
ϕ
(
s
,
a
)
−
(
r
i
+
γ
max
a
′
Q
ϕ
(
s
′
,
a
′
)
]
2
\left[Q_\phi(s,a)-(r_i+\gamma \max_{a'}Q_\phi(s',a')\right]^2
[Qϕ(s,a)−(ri+γa′maxQϕ(s′,a′)]2
1.3 Actor-Critic4
Value learning是选择好policy的形式的,然后参数化的Q函数来逼近最优策略的Q函数。
而Actor-Critic则既参数化policy
π
θ
\pi_\theta
πθ,又参数化value function
Q
ϕ
(
s
,
a
)
Q_\phi(s,a)
Qϕ(s,a),只不过这个value function是用来拟合并评估当前策略的即
Q
π
(
s
,
a
)
Q^\pi(s,a)
Qπ(s,a),拟合好的
Q
π
(
s
,
a
)
Q^\pi(s,a)
Qπ(s,a)来给policy
π
θ
\pi_\theta
πθ的更新提供指导:
Q
π
(
s
t
,
a
t
)
=
r
(
s
t
,
a
t
)
+
γ
E
s
t
+
1
∼
T
(
s
t
+
1
∣
s
t
,
a
t
)
,
a
t
+
1
∼
π
θ
(
a
t
+
1
∣
s
t
+
1
)
[
Q
π
(
s
t
+
1
,
a
t
+
1
)
]
Q^{\pi}\left(\mathbf{s}_{t}, \mathbf{a}_{t}\right)=r\left(\mathbf{s}_{t}, \mathbf{a}_{t}\right)+\gamma \mathbb{E}_{\mathbf{s}_{t+1} \sim T\left(\mathbf{s}_{t+1} \mid \mathbf{s}_{t}, \mathbf{a}_{t}\right), \mathbf{a}_{t+1} \sim \pi_{\theta}\left(\mathbf{a}_{t+1} \mid \mathbf{s}_{t+1}\right)}\left[Q^{\pi}\left(\mathbf{s}_{t+1}, \mathbf{a}_{t+1}\right)\right]
Qπ(st,at)=r(st,at)+γEst+1∼T(st+1∣st,at),at+1∼πθ(at+1∣st+1)[Qπ(st+1,at+1)]
1.4 Model-based RL
上面三个要么参数化policy,要么参数化value,现在对环境的transition/dynamics model进行参数化,即 T ( s t + 1 ∣ s t , a t ) → T ψ ( s t + 1 ∣ s t , a t ) T(s_{t+1}|s_t,a_t)\rightarrow T_\psi(s_{t+1}|s_t,a_t) T(st+1∣st,at)→Tψ(st+1∣st,at)
从收集的experience中 D = { ( s , a , s ′ ) } \mathcal D= \{(s,a,s')\} D={(s,a,s′)}来训练得到一个 T ψ ( s t + 1 ∣ s t , a t ) T_\psi(s_{t+1}|s_t,a_t) Tψ(st+1∣st,at):
- T ψ ( s t + 1 ∣ s t , a t ) T_\psi(s_{t+1}|s_t,a_t) Tψ(st+1∣st,at)结合planning algorithms在测试进行使用(trajectory optimization)
- T ψ ( s t + 1 ∣ s t , a t ) T_\psi(s_{t+1}|s_t,a_t) Tψ(st+1∣st,at)通过back propagation through time来更新learned policy π θ ( a t ∣ s t ) \pi_\theta(a_t|s_t) πθ(at∣st) (BPTT)
- T ψ ( s t + 1 ∣ s t , a t ) T_\psi(s_{t+1}|s_t,a_t) Tψ(st+1∣st,at)通过生成样本,来对 D \mathcal D D做数据增强后使用model-free algorithms(Dyna-style)
1.5 总结
- Policy Gradient 根据On-Policy Objective J ( π θ ) J(\pi_\theta) J(πθ)计算目标梯度 ∇ θ J ( π θ ) \nabla_\theta J(\pi_\theta) ∇θJ(πθ)直接对Policy π θ \pi_\theta πθ进行更新
- ∇ θ J ( π θ ) \nabla_\theta J(\pi_\theta) ∇θJ(πθ)的计算中要求 A ^ ( s t , a t ) \hat A(s_t,a_t) A^(st,at),该玩意从on-policy得到的trajectory experience中估计来(MC、TD、value-fitting)
- 因此PG需要考量的是policy的结构richer与否,objective、regularization的设定是否与问题结构相符,信息流(梯度流)的计算是否准确(unbiased consistent estimator),有哪些约束能帮助policy更快找到optimal region
- Value Learning显示选择了policy的结构为 δ ( a = arg max a Q ϕ ( s , a ) ) \delta(a=\argmax_a Q_\phi(s,a)) δ(a=aargmaxQϕ(s,a)),然后参数化值函数 Q ϕ ( s , a ) Q_\phi(s,a) Qϕ(s,a)来逼近最优策略的值函数 Q ∗ ( s , a ) Q^*(s,a) Q∗(s,a)。
- Value Learning根据Bellman Optimality Operator计算MSE目标的梯度,对Q值进行更新
- 因此Value-based需要考量的是policy选择 ϵ \epsilon ϵ-greedy这种结构是否expressive,Q-value的learning是否accurate且robust,Q-function class的结构richer与否,Bellman Optimality Objective、regularization的设定是否满足问题结构
- Actor-Critic扩展了Policy结构的richness π θ ( a ∣ s ) \pi_\theta(a|s) πθ(a∣s)即actor、也融入了对actor指导的value learning的Q值结构 Q π ( s , a ) Q^\pi(s,a) Qπ(s,a)即critic
- 因此Actor-Critic需要同时考虑Actor、Critic的结构、objective、regularzation、Optimization的方式是否符合问题结构
具体看看Algorithm1、Algorithm2、Algorithm3的流程图中policy objective与value objective计算方式的不一样。
趁机总结一波的原因是Offline RL只不过是在一个静态数据集用上面的方法(model-free,model-based记为modern RL),modern RL方法与Offline RL的主要区别是additional interaction with environment。仅此而已。
但因为Offline RL不能与环境交互,就导致了一些学错的策略,无法根据环境的反馈进行纠正,这些error就在long horizon的情况下不断放大,导致learned policy比behavior cloning得到的imitated policy还要差。
因此,在非常熟悉modern RL方法的情况下,Offline RL主要解决的问题是distribution shift,即out-of-distribution的内容。下篇文章的主旨便是Offline RL为了解决distribution shift所做的努力与尝试。
二、Offline RL问题建模
In offline RL, the whole point is to learn a policy that does something differently (presumably better) from the pattern of behavior observed in the dataset D
已有:静态数据集
D
=
{
(
s
t
i
,
a
t
i
,
s
t
+
1
i
,
r
t
i
)
}
i
=
1
n
\mathcal D=\{(s^i_t,a_t^i,s_{t+1}^i,r_t^i)\}_{i=1}^n
D={(sti,ati,st+1i,rti)}i=1n中状态分布为
d
π
β
(
s
)
d^{\pi_\beta}(s)
dπβ(s),策略分布为
π
β
(
a
∣
s
)
\pi_\beta(a|s)
πβ(a∣s),联合分布为
d
π
β
(
s
,
a
)
d^{\pi_\beta}(s,a)
dπβ(s,a)
目的:在静态数据集
D
\mathcal D
D上训练一个learned policy
π
(
a
∣
s
)
\pi(a|s)
π(a∣s),希望
π
(
a
∣
s
)
\pi(a|s)
π(a∣s)在真实测试环境上表现得更好。(所以训练的效果不一定能反映测试的效果,根据OOD(Out-of-distribution)的理论,一取决于数据集的sufficient coverage,二取决于训练环境中提取到的invariance即learned policy能否泛化到测试环境)
目前假设上述从数据中的量已知,对Offline RL的问题进行建模。(叨叨一波:很多问题的建模本质都是在学习分布与分布之间的映射,学习该映射需要分布的目标、分布的度量、分布的结构,从具体计算的角度,却只有样本。而分布约束的施加一般在分布的supports或是分布的density上)
样本与分布的鸿沟,是现实与理想的差距。
这里有一些问题需要自我思考(实则非常重要,每一个已知都是道坎):
- 如果状态是多维连续的,怎么计算 d π β ( s ) d^{\pi_\beta}(s) dπβ(s)?怎么统计呢?
- 如果动作是连续的,那在连续的状态下,怎么计算 π β ( a ∣ s ) \pi_\beta(a|s) πβ(a∣s)?
- 然后又是怎么算得 d π β ( s , a ) d^{\pi_\beta}(s,a) dπβ(s,a)的?
在已知数据集 D \mathcal D D的情况下,Offline RL的目标可以设定为:
- On-Policy Objective
J ( π θ ) = ∫ p π θ ( τ ) r ( τ ) d τ = ∫ p π β ( τ ) p π θ ( τ ) p π β ( τ ) r ( τ ) d τ = E τ ∼ p π β ( τ ) [ p π θ ( τ ) p π β ( τ ) r ( τ ) ] = E τ ∼ p π β ( τ ) [ 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 ( τ ) ] = E τ ∼ p π β ( τ ) [ ( ∏ t = 0 H π θ ( a t ∣ s t ) π β ( a t ∣ s t ) ) ∑ t = 0 H γ t r ( s t , a t ) ] \begin{aligned} J(\pi_\theta)&=\int p_{\pi_\theta}(\tau)r(\tau)d\tau\\ &=\int p_{\pi_\beta}(\tau)\frac{p_{\pi_\theta(\tau)}}{p_{\pi_\beta(\tau)}}r(\tau)d\tau\\ &=\mathbb E_{\tau\sim p_{\pi_\beta(\tau)}}\left[\frac{p_{\pi_\theta(\tau)}}{p_{\pi_\beta(\tau)}}r(\tau)\right]\\ &=\mathbb E_{\tau\sim p_{\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]\\ &=E_{\tau\sim p_{\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^tr(s_t,a_t)\right] \end{aligned} J(πθ)=∫pπθ(τ)r(τ)dτ=∫pπβ(τ)pπβ(τ)pπθ(τ)r(τ)dτ=Eτ∼pπβ(τ)[pπβ(τ)pπθ(τ)r(τ)]=Eτ∼pπβ(τ)[d0(s0)∏t=0Hπβ(at∣st)p(st+1∣st,at)d0(s0)∏t=0Hπθ(at∣st)p(st+1∣st,at)r(τ)]=Eτ∼pπβ(τ)[(t=0∏Hπβ(at∣st)πθ(at∣st))t=0∑Hγtr(st,at)] - Off-Policy Objective (Biased)
J π β ( π θ ) = E s ∼ d π β [ V π θ ( s ) ] = E s ∼ d π β [ E a ∼ π θ ( a ∣ s ) [ Q π θ ( s , a ) ] ] = E s ∼ d π β [ E a ∼ π θ ( a ∣ s ) [ r ( s , a ) + γ E s ′ ∼ d π β [ V π θ ( s ′ ) ] ] ] \begin{aligned} J_{\pi_\beta}(\pi_\theta)&=\mathbb E_{s\sim d^{\pi_\beta}}\left[V^{\pi_\theta}(s)\right]\\ &=\mathbb E_{s\sim d^{\pi_\beta}}\left[\mathbb E_{a\sim \pi_\theta(a|s)}[Q^{\pi_\theta}(s,a)]\right]\\ &=\mathbb E_{s\sim d^{\pi_\beta}}\left[\mathbb E_{a\sim \pi_\theta(a|s)}[r(s,a)+\gamma \mathbb E_{s'\sim d^{\pi_\beta}}[V^{\pi_\theta}(s')]]\right] \end{aligned} Jπβ(πθ)=Es∼dπβ[Vπθ(s)]=Es∼dπβ[Ea∼πθ(a∣s)[Qπθ(s,a)]]=Es∼dπβ[Ea∼πθ(a∣s)[r(s,a)+γEs′∼dπβ[Vπθ(s′)]]]
两个Objective是不一样的,具体细节的经典论述论文可参考5
- 状态、动作是离散的话,只需要一个Q table就能从 D \mathcal D D中统计得到 d π β ( s , a ) d^{\pi_\beta}(s,a) dπβ(s,a), d π β ( s ) d^{\pi_\beta}(s) dπβ(s), π β ( a ∣ s ) \pi_\beta(a|s) πβ(a∣s)
- 状态是连续的,动作是离散的,简单的话,将状态中每一个连续的维度分区间离散化,组成Q table;复杂的话,需要在 D \mathcal D D中对所有状态通过生成模型拟合一个 d ϕ ( s ) d_\phi(s) dϕ(s)即function approximator当作 d π β ( s ) d^{\pi_\beta}(s) dπβ(s),然后在一个可接受的范围内,统计离散动作的出现频率即 π β ( a ∣ s ) \pi_\beta(a|s) πβ(a∣s),通过归一化 D \mathcal D D中所有(s,a)的概率值,得到 d π β ( s , a ) d^{\pi_\beta}(s,a) dπβ(s,a)
- 状态是离散的,动作是连续的,原理同上
- 状态是连续的,动作是连续的,直接的话,生成模型拟合得 d ϕ ( s ) d_\phi(s) dϕ(s)当作 d π β ( s ) d^{\pi_\beta}(s) dπβ(s),再用一个判别模型拟合得 π ψ ( a ∣ s ) \pi_\psi(a|s) πψ(a∣s)当作 π β ( a ∣ s ) \pi_\beta(a|s) πβ(a∣s),归一化后得 d π β ( s , a ) d^{\pi_\beta}(s,a) dπβ(s,a);间接的话,直接建模 d π β ( s , a ) d^{\pi_\beta}(s,a) dπβ(s,a),从状态动作对的角度去计算。(直觉上来说,在不是海量数据的条件下,拟合一个模型总比拟合两个模型要准确得多)
为什么这个是潜在的问题?每拟合一个模型,都不可避免要问“数据的数量、质量够吗?模型结构符合吗?优化算法优化好了吗?”,这些问题导致的误差会在Offline RL接下来解决方法中被利用,经过long horizon的积累,boom!而现实场景往往都是long horizon,complex state&action的。
下一篇文章focus在两个Objective上的计算细节主要通过Importance Sampling、Dynamics Programming两类主流方法 + 具体针对distributional shift的约束来实现Offline RL的