离线强化学习系列3(算法篇): AWR(Advantage-Weighted Regression)算法详解与实现

论文信息:Xue Bin Peng, Aviral Kumar, Grace Zhang, Sergey Levine: “Advantage-Weighted Regression: Simple and Scalable Off-Policy Reinforcement Learning”, 2020;
xbpeng.github.io/projects/AWR/2019_AWR.pdf

本篇论文由伯克利Sergey Levine团队的Xue Bin Peng以第一作者提出,投稿到ICLR 2020和ICLR 2021,尽管都被Reject了,但是论文的观点和方法实验还是很值得学习的。

摘要:Advantage-Weighted Regression (AWR),从名字上来看,就是Advantage版本的Reward-Weighted Regression (RWR)。AWR通过对RWR进行改进,包括两个标准的监督学习步骤,一个通过利用累积奖励的回归来训练价值函数基线,另一个通过加权回归来训练策略。核心思想是将策略优化过程看成是极大似然估计问题,在策略提升过程中,用优势函数进行权重似然估计。作者在Mujoco环境中和其他算法进行了比较,展现了算法的有效性。

1、预备知识

1.1 累计奖励

J ( π ) = E τ ∼ p π ( τ ) [ ∑ t = 0 ∞ γ t r t ] = E s ∼ d π ( s ) , a ∼ π ( a ∣ s ) [ r ( s , a ) ] J(\pi)=\mathbb{E}_{\tau \sim p_{\pi}(\tau)}\left[\sum_{t=0}^{\infty} \gamma^{t} r_{t}\right]=\mathbb{E}_{\mathbf{s} \sim d_{\pi}(\mathbf{s}), a \sim \pi(\mathbf{a} \mid \mathbf{s})}[r(\mathbf{s}, \mathbf{a})] J(π)=Eτpπ(τ)[t=0γtrt]=Esdπ(s),aπ(as)[r(s,a)]
策略 π \pi π的累计奖励的期望, r ( s , a ) r(s,a) r(s,a)换成 R ( s , a ) R(s,a) R(s,a)更好。

1.2 RWR

π k + 1 = arg ⁡ max ⁡ π E s ∼ d π k ( s ) E a ∼ π k ( a ∣ s ) [ log ⁡ π ( a ∣ s ) exp ⁡ ( 1 β R s , a ) ] \pi_{k+1}=\underset{\pi}{\arg \max } \mathbb{E}_{\mathbf{s} \sim d_{\pi_{k}}(\mathbf{s})} \mathbb{E}_{\mathbf{a} \sim \pi_{k}(\mathbf{a} \mid \mathbf{s})}\left[\log \pi(\mathbf{a} \mid \mathbf{s}) \exp \left(\frac{1}{\beta} \mathcal{R}_{\mathbf{s}, \mathbf{a}}\right)\right] πk+1=πargmaxEsdπk(s)Eaπk(as)[logπ(as)exp(β1Rs,a)]
通过使用当前策略 π k \pi_k πk生成数据,新策略 π k + 1 \pi_{k+1} πk+1(使用最大似然准则下的监督学习)拟合到给定状态的动作条件分布上,加权表示后返回。

2、AWR

2.1 策略评估

策略 ( π ) (\pi) (π)相对于策略 ( μ ) (\mu) (μ)的提升用下式来表示:
η ( π ) = J ( π ) − J ( μ ) \eta(\pi)=J(\pi)-J(\mu) η(π)=J(π)J(μ)
然后进行拟合,可以写成在策略 ( π ) (\pi) (π)下进行采样,对 ( μ ) (\mu) (μ)的优势函数计算期望
η ( π ) = E s ∼ d π ( s ) E a ∼ π ( a ∣ s ) [ R s , a μ − V μ ( s ) ] \eta(\pi)=\mathbb{E}_{\mathbf{s} \sim d_{\pi}(\mathbf{s})} \mathbb{E}_{\mathbf{a} \sim \pi(\mathbf{a} \mid \mathbf{s})}\left[\mathcal{R}_{\mathrm{s}, \mathbf{a}}^{\mu}-V^{\mu}(\mathbf{s})\right] η(π)=Esdπ(s)Eaπ(as)[Rs,aμVμ(s)]

为求得约束条件下的最优策略,可以采用拉格朗日乘数法进行求解,约束条件是策略 π \pi π和策略 μ μ μ尽可能相似,利用KL散度的概念进行表示:
arg ⁡ max ⁡ π ∫ s d μ ( s ) ∫ a π ( a ∣ s ) [ R s , a μ − V μ ( s ) ] d a d s  s.t.  ∫ s d μ ( s ) D K L ( π ( ⋅ ∣ s ) ∣ ∣ μ ( ⋅ ∣ s ) ) d s ≤ ϵ \begin{aligned} \arg \max _{\pi} & \int_{\mathbf{s}} d_{\mu}(\mathbf{s}) \int_{\mathbf{a}} \pi(\mathbf{a} \mid \mathbf{s})\left[\mathcal{R}_{\mathbf{s}, \mathbf{a}}^{\mu}-V^{\mu}(\mathbf{s})\right] d \mathbf{a} d \mathbf{s} \\ & \text { s.t. } \quad \int_{\mathbf{s}} d_{\mu}(\mathbf{s}) D_{\mathrm{KL}}(\pi(\cdot \mid \mathbf{s})|| \mu(\cdot \mid \mathbf{s})) d \mathbf{s} \leq \epsilon \end{aligned} argπmaxsdμ(s)aπ(as)[Rs,aμVμ(s)]dads s.t. sdμ(s)DKL(π(s)μ(s))dsϵ

构建拉格朗日方程,带入化简得:
L ( π , β ) = ∫ s d μ ( s ) ∫ a π ( a ∣ s ) [ R s , a μ − V μ ( s ) ] d a d s + β ( ϵ − ∫ s d μ ( s ) D K L ( π ( ⋅ ∣ s ) ∥ μ ( ⋅ ∣ s ) ) d s ) \mathcal{L}(\pi, \beta)=\int_{\mathbf{s}} d_{\mu}(\mathbf{s}) \int_{\mathbf{a}} \pi(\mathbf{a} \mid \mathbf{s})\left[\mathcal{R}_{\mathrm{s}, \mathbf{a}}^{\mu}-V^{\mu}(\mathbf{s})\right] d \mathbf{a} d \mathbf{s}+\beta\left(\epsilon-\int_{\mathbf{s}} d_{\mu}(\mathbf{s}) \mathrm{D}_{\mathrm{KL}}(\pi(\cdot \mid \mathbf{s}) \| \mu(\cdot \mid \mathbf{s})) d \mathbf{s}\right) L(π,β)=sdμ(s)aπ(as)[Rs,aμVμ(s)]dads+β(ϵsdμ(s)DKL(π(s)μ(s))ds)

p i pi pi求偏导得到的最优解是:
π ∗ ( a ∣ s ) = 1 Z ( s ) μ ( a ∣ s ) exp ⁡ ( 1 β ( R s , a μ − V μ ( s ) ) ) \pi^{*}(\mathbf{a} \mid \mathbf{s})=\frac{1}{Z(\mathbf{s})} \mu(\mathbf{a} \mid \mathbf{s}) \exp \left(\frac{1}{\beta}\left(\mathcal{R}_{\mathrm{s}, \mathbf{a}}^{\mu}-V^{\mu}(\mathbf{s})\right)\right) π(as)=Z(s)1μ(as)exp(β1(Rs,aμVμ(s)))

若要将其用神经网络的形式进行表示,也就是最优策略投影到策略网络上, π ∗ \pi^{*} π π ∗ \pi^{*} π的KL散度尽可能小,转换成优势函数回归的样式:

arg ⁡ min ⁡ π E s ∼ d μ ( s ) [ D K L ( π ∗ ( ⋅ ∣ s ) ∥ π ( ⋅ ∣ s ) ) ] = arg ⁡ min ⁡ π E s ∼ d μ ( s ) [ D K L ( 1 Z ( s ) μ ( a ∣ s ) exp ⁡ ( 1 β ( R s , a μ − V μ ( s ) ) ) ∣ ∣ π ( ⋅ ∣ s ) ) ] = arg ⁡ max ⁡ π E s ∼ d μ ( s ) E a ∼ μ ( a ∣ s ) [ log ⁡ π ( a ∣ s ) exp ⁡ ( 1 β ( R s , a μ − V μ ( s ) ) ) ] \begin{aligned}&\underset{\pi}{\arg \min } \mathbb{E}_{\mathbf{s} \sim d_{\mu}(\mathbf{s})}\left[\mathrm{D}_{\mathrm{KL}}\left(\pi^{*}(\cdot \mid \mathbf{s}) \| \pi(\cdot \mid \mathbf{s})\right)\right]\\ &=\underset{\pi}{\arg \min } \quad \mathbb{E}_{\mathrm{s} \sim d_{\mu}(\mathbf{s})}\left[\mathrm{D}_{\mathrm{KL}}\left(\frac{1}{Z(\mathbf{s})} \mu(\mathbf{a} \mid \mathbf{s}) \exp \left(\frac{1}{\beta}\left(\mathcal{R}_{\mathrm{s}, \mathbf{a}}^{\mu}-V^{\mu}(\mathbf{s})\right)\right)|| \pi(\cdot \mid \mathbf{s})\right)\right]\\ &=\underset{\pi}{\arg \max } \quad \mathbb{E}_{\mathbf{s} \sim d_{\mu}(\mathbf{s})} \mathbb{E}_{\mathbf{a} \sim \mu(\mathbf{a} \mid \mathbf{s})}\left[\log \pi(\mathbf{a} \mid \mathbf{s}) \exp \left(\frac{1}{\beta}\left(\mathcal{R}_{\mathbf{s}, \mathbf{a}}^{\mu}-V^{\mu}(\mathbf{s})\right)\right)\right]\end{aligned} πargminEsdμ(s)[DKL(π(s)π(s))]=πargminEsdμ(s)[DKL(Z(s)1μ(as)exp(β1(Rs,aμVμ(s)))π(s))]=πargmaxEsdμ(s)Eaμ(as)[logπ(as)exp(β1(Rs,aμVμ(s)))]

2.2 伪代码


AWR算法利用Off-policy获取的数据队列D,每次迭代包括以下步骤:

  • 使用策略 π k \pi_{k} πk对一系列轨迹进行采样,将其存储在回放缓冲区 D D D中,采样得到的数据以先进先出队列的形式进行储存。
  • D D D中对数据进行采样,利用数据去拟合一个V函数。
  • 使用优势加权回归在相同的缓冲区内来拟合新策略,进行策略优化,其中缓冲区中的状态动作对根据指数优势函数进行加权,并对其进行拟合。

2.3 off policy

on policy的采样效率很低,每次迭代中收集到的数据在一次更新迭代之后会被丢弃,为了充分提升样本的利用效率,算法利用了Off-policy思想,最新策略 π k \pi_{k} πk收集到的数据存储到缓冲区 D D D中。对V函数进行拟合和策略改进时,采样策略为之前的策略或者其他不同策略共同组成的一个复合策略。

2.3.1 样本分布

经验池 D D D是之前的策略采集的数据,轨迹分布、状态动作分布和状态分布如下:

μ ( τ ) = ∑ i = 1 k w i d π i ( τ ) , μ ( s , a ) = ∑ i = 1 k w i d π i ( s ) π i ( a ∣ s ) , d μ ( s ) = ∑ i = 1 k w i d π i ( s ) \mu(\tau)=\sum_{i=1}^{k} w_{i} d_{\pi_{i}}(\tau), \quad \mu(\mathbf{s}, \mathbf{a})=\sum_{i=1}^{k} w_{i} d_{\pi_{i}}(\mathbf{s}) \pi_{i}(\mathbf{a} \mid \mathbf{s}), \quad d_{\mu}(\mathbf{s})=\sum_{i=1}^{k} w_{i} d_{\pi_{i}}(\mathbf{s}) μ(τ)=i=1kwidπi(τ),μ(s,a)=i=1kwidπi(s)πi(as),dμ(s)=i=1kwidπi(s)

2.3.2 策略提升

添加策略权重
η ( π ) = J ( π ) − J ( μ ) = J ( π ) − ∑ i = 1 k w i J ( π i ) = ∑ i = 1 k w i ( J ( π ) − J ( π i ) ) = ∑ i = 1 k w i ( E s ∼ d π ( s ) , a ∼ π ( a ∣ s ) [ A π i ( s , a ) ] ) \begin{aligned}\eta(\pi) &=J(\pi)-J(\mu) \\ &=J(\pi)-\sum_{i=1}^{k} w_{i} J\left(\pi_{i}\right) \\ &=\sum_{i=1}^{k} w_{i}\left(J(\pi)-J\left(\pi_{i}\right)\right) \\ &=\sum_{i=1}^{k} w_{i}\left(\mathbb{E}_{\mathbf{s} \sim d_{\pi}(\mathbf{s}), \mathbf{a} \sim \pi(\mathbf{a} \mid \mathbf{s})}\left[A^{\pi_{i}}(\mathbf{s}, \mathbf{a})\right]\right)\end{aligned} η(π)=J(π)J(μ)=J(π)i=1kwiJ(πi)=i=1kwi(J(π)J(πi))=i=1kwi(Esdπ(s),aπ(as)[Aπi(s,a)])
构建拉格朗日方程:
L ( π , β , α ) = ( ∑ i w i E s ∼ d π i ( s ) E a ∼ π ( a ∣ s ) [ R s , a π i − V π i ( s ) ] ) + β ( ϵ − E s ∼ d μ ( s ) D K L ( π ( ⋅ ∣ s ) ∥ ∑ i = 1 k w i d π i ( s ) π i ( ⋅ ∣ s ) ∑ j = 1 k w j d π j ( s ) ) + ∫ α s ( 1 − ∫ π ( a ∣ s ) d a ) d s , \begin{aligned}\mathcal{L}(\pi, \beta, \alpha)=&\left(\sum_{i} w_{i} \mathbb{E}_{\mathbf{s} \sim d_{\pi_{i}}(\mathbf{s})} \mathbb{E}_{\mathbf{a} \sim \pi(\mathbf{a} \mid \mathbf{s})}\left[\mathcal{R}_{\mathbf{s}, \mathbf{a}}^{\pi_{i}}-V^{\pi_{i}}(\mathbf{s})\right]\right) \\ &+\beta\left(\epsilon-\mathbb{E}_{\mathbf{s} \sim d_{\mu}(\mathbf{s})} \mathrm{D}_{\mathrm{KL}}\left(\pi(\cdot \mid \mathbf{s}) \| \frac{\sum_{i=1}^{k} w_{i} d_{\pi_{i}}(\mathbf{s}) \pi_{i}(\cdot \mid \mathbf{s})}{\sum_{j=1}^{k} w_{j} d_{\pi_{j}}(\mathbf{s})}\right)\right.\\ &+\int \alpha_{\mathbf{s}}\left(1-\int \pi(\mathbf{a} \mid \mathbf{s}) d \mathbf{a}\right) d \mathbf{s},\end{aligned} L(π,β,α)=(iwiEsdπi(s)Eaπ(as)[Rs,aπiVπi(s)])+β(ϵEsdμ(s)DKL(π(s)j=1kwjdπj(s)i=1kwidπi(s)πi(s))+αs(1π(as)da)ds,

求解得到的结果:
arg ⁡ max ⁡ π ∑ i = 1 k w i E s ∼ d π i ( s ) E a ∼ π i ( a ∣ s ) [ log ⁡ π ( a ∣ s ) exp ⁡ ( 1 β ( R s , a π i − ∑ j w j d π j ( s ) V π j ( s ) ∑ j w j d π j ( s ) ) ) ] \underset{\pi}{\arg \max } \sum_{i=1}^{k} w_{i} \mathbb{E}_{\mathbf{s} \sim d_{\pi_{i}}(\mathbf{s})} \mathbb{E}_{\mathbf{a} \sim \pi_{i}(\mathbf{a} \mid \mathbf{s})}\left[\log \pi(\mathbf{a} \mid \mathbf{s}) \exp \left(\frac{1}{\beta}\left(\mathcal{R}_{\mathbf{s}, \mathbf{a}}^{\pi_{i}}-\frac{\sum_{j} w_{j} d_{\pi_{j}}(\mathbf{s}) V^{\pi_{j}}(\mathbf{s})}{\sum_{j} w_{j} d_{\pi_{j}}(\mathbf{s})}\right)\right)\right] πargmaxi=1kwiEsdπi(s)Eaπi(as)[logπ(as)exp(β1(Rs,aπijwjdπj(s)jwjdπj(s)Vπj(s)))]

2.3.3 价值函数

设置baseline,在 D D D中采样数据进行拟合得到价值函数:
V ˉ = arg ⁡ min ⁡ V ∑ i w i E s , ∼ d π i ( s ) , a ∼ π i ( a ∣ s ) [ ∥ R s , a π i − V ( s ) ∥ 2 ] \bar{V}=\underset{V}{\arg \min } \sum_{i} w_{i} \mathbb{E}_{\mathbf{s}, \sim d_{\pi_{i}}}(\mathbf{s}), \mathbf{a} \sim \pi_{i}(\mathbf{a} \mid \mathbf{s})\left[\left\|\mathcal{R}_{\mathrm{s}, \mathbf{a}}^{\pi_{i}}-V(\mathbf{s})\right\|^{2}\right] Vˉ=VargminiwiEs,dπi(s),aπi(as)[Rs,aπiV(s)2]

3、实验

在mujoco、Humanoid和Dog上实验

和其他算法进行比较

AWR在某些环境上表现很好

AWR相对于RWR有了明显提升

时间更短,可以更快的收敛

在静态数据集上效果也不错

Github
结构很清楚,而且比较简单

参考文献

[1]. Xue Bin Peng,Aviral Kumar,Grace Zhang,Sergey Levine: “Advantage-Weighted Regression: Simple and Scalable Off-Policy Reinforcement Learning”, 2019; xbpeng.github.io/projects/AWR/2019_AWR.pdf7.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值