其他分享
首页 > 其他分享> > GAE&reward shaping

GAE&reward shaping

作者:互联网

策略算法(如TRPO,PPO)是一种流行的on-policy方法。它可以提供无偏差的(或近似无偏差)梯度估计,但同时会导致高的方差。而像Q-learning 和离线的actor-critic(如DDPG)等off-policy方法则可以用离线的样本来替代。它们可以使用其他学习过程产生的样本。这样的方法大大提高了采样的效率。不过并不能保证非线性函数逼近能够收敛。

"介于回合更新与单步更新之间的算法"

GAE 它既可以被看做使用off-policy的评价过程来减小策略梯度方法带来的方差,又被看作使用on-policy蒙特卡洛方法来修正评价梯度方法带来的偏差。 0 <λ<1的广义优势估计量在偏差和方差之间折衷,由参数λ控制。\(\lambda=0\)时方差低,偏差大,\(\lambda=1\)时方差高,偏差低。

1、TD($\lambda $)

Monte Carlo算法需要运行完整的episode,利用所有观察到的真是的reward(奖励值)来更新算法。Temporal Difference(TD)算法仅当前时刻采样的reward(奖励值)进行value function的估计。一个折中的方法就是利用n步的reward(奖励进行估计)。

n步返回的定义:\(R_t^{n} \doteq r_{t+1}+\gamma r_{t+2}+\cdots+\gamma^{n-1} r_{t+n}+\gamma^{n} \hat{v}\left(S_{t+n}, \mathrm{w}_{t+n-1}\right), \quad 0 \leq t \leq T-n\)

加上权重值后:\(R_{t}^{\lambda } \doteq(1-\lambda) \sum_{n=1}^{\infty} \lambda^{n-1} R_t^{n}\)

第一列实际上是TD(1)方法,其权重为1-λ,第二列是TD(2),权重为(1-λ)λ…,直到最后一个TD(n)的权重为\(λ^{T-t-1})\)( T是episode的长度)。权重随n的增加而衰减,总和为1。因为\(\sum_{n=1}^{\infty} \lambda^{n-1}=\sum_{n=0}^{\infty} \lambda^{n}=\frac{1}{1-\lambda}\)

image-20200109114837649

2、$\gamma $-just

定义1 估计量\[ \hat{A}_{t} \]是γ-just的,当:
\[ \underset{s_{0} ; \infty \atop a_{0: \infty}}{\mathbb{E}}\left[\hat{A}_{t}\left(s_{0: \infty}, a_{0: \infty}\right) \nabla_{\theta} \log \pi_{\theta}\left(a_{t} | s_{t}\right)\right]=\underset{s_{0: \infty} \atop a_{0: \infty}}{\mathbb{E}}\left[A^{\pi, \gamma}\left(s_{t}, a_{t}\right) \nabla_{\theta} \log \pi_{\theta}\left(a_{t} | s_{t}\right)\right] \]

找到 \(A^{\pi, \gamma}\) 的一个估计 \(\widehat{A}_{t}\) ,使得用这个估计来计算得到的梯度估计期望不变。

命题1 假设\[ \hat{A}_{t} \]可以写成
\[ \hat{A}_{t}\left(s_{0: \infty}, a_{0: \infty}\right)=Q_{t}\left(s_{t: \infty}, a_{t: \infty}\right)- b_{t}\left(s_{0: t}, a_{0: t-1}\right) \]
这样对于所有\[ \left(s_{t}, a_{t}\right), \quad \mathbb{E}_{s_{t+1}: \infty, a_{t+1: \infty}} |_{s_{t}, a_{t}}\left[Q_{t}\left(s_{t: \infty}, a_{t: \infty}\right)\right]=Q^{\pi, \gamma}\left(s_{t}, a_{t}\right) \],\[ \hat{A}_{t} \]是γ-just的

【证明(附录b)?】

首先,我们可以将期望分解为涉及Q和b的项,
\[ \begin{array}{l} {\mathbb{E}_{s_{0: \infty}, a_{0: \infty}}\left[\nabla_{\theta} \log \pi_{\theta}\left(a_{t} | s_{t}\right)\left(Q_{t}\left(s_{0: \infty}, a_{0: \infty}\right)-b_{t}\left(s_{0: t}, a_{0: t-1}\right)\right)\right]} \\ {\quad=\mathbb{E}_{s_{0: \infty}, a_{0: \infty}}\left[\nabla_{\theta} \log \pi_{\theta}\left(a_{t} | s_{t}\right)\left(Q_{t}\left(s_{0: \infty}, a_{0: \infty}\right)\right)\right]} \\ {\quad-\mathbb{E}_{s_{0: \infty}, a_{0: \infty}}\left[\nabla_{\theta} \log \pi_{\theta}\left(a_{t} | s_{t}\right)\left(b_{t}\left(s_{0: t}, a_{0: t-1}\right)\right)\right]} \end{array} \]
依次考虑带有Q和b的项。
\[ \begin{array}{l} {\mathbb{E}_{s_{0}: \infty}, a_{0: \infty}\left[\nabla_{\theta} \log \pi_{\theta}\left(a_{t} | s_{t}\right) Q_{t}\left(s_{0: \infty}, a_{0: \infty}\right)\right]} \\ {\quad=\mathbb{E}_{s_{0: t}, a_{0: t}}\left[\mathbb{E}_{s_{t+1: \infty}, a_{t+1 ; \infty}}\left[\nabla_{\theta} \log \pi_{\theta}\left(a_{t} | s_{t}\right) Q_{t}\left(s_{0: \infty}, a_{0: \infty}\right)\right]\right]} \\ {=\mathbb{E}_{s_{0: t}, a_{0: t}}\left[\nabla_{\theta} \log \pi_{\theta}\left(a_{t} | s_{t}\right) \mathbb{E}_{s_{t+1}: \infty, a_{t+1: \infty}}\left[Q_{t}\left(s_{0: \infty}, a_{0: \infty}\right)\right]\right]} \\ {=\mathbb{E}_{s_{0: t}, a_{0: t-1}}\left[\nabla_{\theta} \log \pi_{\theta}\left(a_{t} | s_{t}\right) A^{\pi}\left(s_{t}, a_{t}\right)\right]} \end{array} \]
接着
\[ \begin{array}{l} {\mathbb{E}_{s_{0: \infty}, a_{0: \infty}}\left[\nabla_{\theta} \log \pi_{\theta}\left(a_{t} | s_{t}\right) b_{t}\left(s_{0: t}, a_{0: t-1}\right)\right]} \\ {\quad=\mathbb{E}_{s_{0: t}, a_{0: t-1}}\left[\mathbb{E}_{s_{t+1: \infty}, a_{t: \infty}}\left[\nabla_{\theta} \log \pi_{\theta}\left(a_{t} | s_{t}\right) b_{t}\left(s_{0: t}, a_{0: t-1}\right)\right]\right]} \\ {\quad=\mathbb{E}_{s_{0: t}, a_{0: t-1}}\left[\mathbb{E}_{s_{t+1: \infty}, a_{t: \infty}}\left[\nabla_{\theta} \log \pi_{\theta}\left(a_{t} | s_{t}\right)\right] b_{t}\left(s_{0: t}, a_{0: t-1}\right)\right]} \\ {=\mathbb{E}_{s_{0: t}, a_{0: t-1}}\left[0 \cdot b_{t}\left(s_{0: t}, a_{0: t-1}\right)\right]} \\ {=0} \end{array} \]
若有\[ V=V^{\pi, \gamma} \],该估计器γ-just,实际上还是\(A^{\pi, \gamma}\)的无偏估计,否则它将产生有偏的策略梯度估计。

当\(\hat{A}_{t}=\delta_{t}^{V}=r_{t}+\gamma V\left(s_{t+1}\right)-V\left(s_{t}\right)\)若有\[ V=V^{\pi, \gamma} \],该估计器γ-just,否则它将产生有偏的策略梯度估计,,实际上还是\(A^{\pi, \gamma}\)的无偏估计,:

\(\begin{aligned} E_{s_{t+1}}\left[\hat{A}_{t}\right] &=E_{s_{t+1}}\left[r_{t}+\gamma V^{\pi, \gamma}\left(s_{t+1}\right)-V^{\pi, \gamma}\left(s_{t}\right)\right] \\ &=E_{s_{t+1}}\left[Q^{\pi, \gamma}\left(s_{t}, a_{t}\right)-V^{\pi, \gamma}\left(s_{t}\right)\right]=A^{\pi, \gamma}\left(s_{t}, a_{t}\right) \end{aligned}\)

接下来考虑n步优势函数估计( 类比TD(\(\lambda\))的\(R_t^{n}\)后得\(R_t^\lambda\)的步骤):公式11-16
\[ \begin{aligned}&\hat{A}_{t}^{(1)}:=\delta_{t}^{V} \quad=-V\left(s_{t}\right)+r_{t}+\gamma V\left(s_{t+1}\right)\\&\hat{A}_{t}^{(2)}:=\delta_{t}^{V}+\gamma \delta_{t+1}^{V} \quad=-V\left(s_{t}\right)+r_{t}+\gamma r_{t+1}+\gamma^{2} V\left(s_{t+2}\right)\\&\hat{A}_{t}^{(3)}:=\delta_{t}^{V}+\gamma \delta_{t+1}^{V}+\gamma^{2} \delta_{t+2}^{V}=-V\left(s_{t}\right)+r_{t}+\gamma r_{t+1}+\gamma^{2} r_{t+2}+\gamma^{3} V\left(s_{t+3}\right)\\&\hat{A}_{t}^{(k)}:=\sum_{l=0}^{k-1} \gamma^{l} \delta_{t+l}^{V}=-V\left(s_{t}\right)+r_{t}+\gamma r_{t+1}+\cdots+\gamma^{k-1} r_{t+k-1}+\gamma^{k} V\left(s_{t+k}\right)\end{aligned}    (11-14)\\\hat{A}_{t}^{(\infty)}=\sum_{l=0}^{\infty} \gamma^{l} \delta_{t+l}^{V}=-V\left(s_{t}\right)+\sum_{l=0}^{\infty} \gamma^{l} r_{t+l}    (15)\\\begin{aligned}\hat{A}_{t}^{\mathrm{GAE}(\gamma, \lambda)} &:=(1-\lambda)\left(\hat{A}_{t}^{(1)}+\lambda \hat{A}_{t}^{(2)}+\lambda^{2} \hat{A}_{t}^{(3)}+\ldots\right) \\&=(1-\lambda)\left(\delta_{t}^{V}+\lambda\left(\delta_{t}^{V}+\gamma \delta_{t+1}^{V}\right)+\lambda^{2}\left(\delta_{t}^{V}+\gamma \delta_{t+1}^{V}+\gamma^{2} \delta_{t+2}^{V}\right)+\ldots\right) \\&=(1-\lambda)\left(\delta_{t}^{V}+\lambda\left(\delta_{t}^{V}+\lambda \delta_{t+1}^{V}\right)+\lambda^{2}\left(\delta_{t}^{V}+\gamma \delta_{t+1}^{V}+\gamma^{2} \delta_{t+2}^{V}\right)+\ldots\right) \\&=(1-\lambda)\left(\delta_{t}^{V}\left(1+\lambda+\lambda^{2}+\ldots\right)+\gamma \delta_{t+1}^{V}\left(\lambda+\lambda^{2}+\lambda^{2}+\ldots\right)\right.\\&\left.\quad+\gamma^{2} \delta_{t+2}^{V}\left(\lambda^{2}+\lambda^{3}+\lambda^{4}+\ldots\right)+\ldots\right) \\&=(1-\lambda)\left(\delta_{t}^{V}\left(\frac{1}{1-\lambda}\right)+\gamma \delta_{t+1}^{V}\left(\frac{\lambda}{1-\lambda}\right)+\gamma^{2} \delta_{t+2}^{V}\left(\frac{\lambda^{2}}{1-\lambda}\right)+\ldots\right) \\&=\sum_{l=0}^{\infty}(\gamma \lambda)^{l} \delta_{t+l}^{V}\end{aligned}     (16) \]
用\(\hat{A}_{t}^{(1)}\)来估计A是偏差最大的(因为只有一个“客观的部分rt”),但是方差是最小的(因为可能的不同情况最少);而与之相比,\(\hat{A}_{t}^{(2)}\)来估计A的偏差小一些,方差则大一些;越往后的\(\hat{A}_{t}^{(k)}\)则偏差越来越少,而方差越来越大。

要注意的是,GAE方法还有一个缺点,那就是我们要用到的训练集单位不再只是一步数据(s,a,r,s′),而是要用到连续多步的数据。这一定程度上会使得训练的灵活性下降。 policy gradient方法是一个“回合更新”的算法,训练集的基本单位是一条完整的轨道;而Actor-Critic是一个“单步更新”的算法,训练集的基本单位是一个transition(s,a,r,s′)。如果采用上述的方式去估计Aπ(s,a), 则相当于是一种“介于回合更新与单步更新之间的算法”,其训练集的基本单位也是介于一条完整轨道与一步之间。

图解:

image-20200109152420434

3、reward shaping

主要解决的问题:奖励稀疏,不是等到中止状态给奖励,而是每向目标靠近一步就给reward之外的奖励。

但是有可能会出现刷分的情况:
image-20200109102257877

在A和B之间循环走动,达到奖励值最大。

解决方案:引入势能函数\(\Phi(s)\) ,定义了一个状态的势能. 这个概念借鉴了物理学的势能概念。 当agent从一个高势能状态转移到第低势能转移时,它将获得额外地奖励(类似物理中的动力)。 反过来,如果agent从低势能状态到高势能状态,它将失去奖励(得到一个和上面相同但负的奖励),类似能量守恒。使用两个状态的势能差值\(\Phi\left(s^{\prime}\right)-\gamma \Phi(s)\)作为额外奖励可以保证不改变MDP的最优解。

\(R_{t}=r_{t+1}+\gamma r_{t+2}+\gamma^{2} r_{t+3}+\gamma^{3} r_{t+4}+\ldots=\sum_{k=0}^{\infty} \gamma^{k} r_{t+k+1}\)

\(V^{\pi}(s)=\mathbb{E}_{\pi}\left\lceil R_{t} | s_{t}=s\right]\)

\(Q^{\pi}(s, a)=E_{\pi}\left[R_{t} | s_{t}=s, a_{t}=a\right]\)

\(V_{M}^{\pi}(s)=\mathbb{E}\left[r_{1}+\gamma r_{2}+\gamma^{2} r_{3}+\ldots ; \pi, s\right]\), where \(r_{i}\) is the reward received on the \(i\) th step of following \(\pi\), starting from \(s\)

\(Q_{M}^{\pi}(s, a)=\mathbb{E}_{s^{\prime} \sim P_{sa}}\left[r\left(s, a, s^{\prime}\right)+\gamma V_{M}^{\pi}\left(s^{\prime}\right)\right]\)

Bellman最优原理

\(Q_{M}^{*}(s, a)=\mathbb{E}_{s^{\prime} \sim P_{s a}}\left[r\left(s, a, s^{\prime}\right)+\gamma \max _{a^{\prime} \in A} Q_{M}^{*}\left(s^{\prime}, a^{\prime}\right)\right]\)

reward shaping的结论:

【结论】If \(F\) is a potential-based shaping function, then every optimal policy in \(M^{\prime}=\langle S, A, T, \gamma, R+F\rangle\) will also be an optimal policy \(M=\langle S, A, T, \gamma, R>\)

如果F是基于势能函数的塑形函数,那么改变之后的reward function= r + F重新构成的马尔科夫过程的最优控制还是不变,跟原来一样,反之亦然。

【定义】

1) A shaping reward function \(F: S \times A \times S \rightarrow \mathbb{R}\) is potential-based if there exists \(\Phi: S \rightarrow \mathbb{R}\) s.t. \(F\left(s, a, s^{\prime}\right)=\gamma \Phi\left(s^{\prime}\right)-\Phi(s)\),\(r'=r+F=r+ \gamma \Phi\left(s^{\prime}\right)-\Phi(s)\)

2) \(\hat{Q}_{M^{\prime}}(s, a):=Q_{M}^{*}(s, a)-\Phi(s)\)

【证明】:

\(Q_{M}^{*}(s, a)=\mathbb{E}_{s^{\prime} \sim P_{s a}}\left[r\left(s, a, s^{\prime}\right)+\gamma \max _{a^{\prime} \in A} Q_{M}^{*}\left(s^{\prime}, a^{\prime}\right)\right]\)

\(\begin{aligned} Q_{M}^{*}(s, a)-\Phi(s) &=\mathrm{E}_{s^{\prime} \sim P_{s a}}\left[r\left(s, a, s^{\prime}\right)+\gamma \max _{a^{\prime} \in A} Q_{M}^{*}\left(s^{\prime}, a^{\prime}\right)\right]-\Phi(s) \\ &=\mathbb{E}_{s^{\prime} \sim P_{s a}}\left[r\left(s, a, s^{\prime}\right)+\gamma \Phi\left(s^{\prime}\right)+\gamma \max _{a^{\prime} \in A}\left(Q_{M}^{*}\left(s^{\prime}, a^{\prime}\right)-\Phi\left(s^{\prime}\right)\right)\right]-\Phi(s) \\ &=\mathbb{E}_{s^{\prime} \sim P_{s a}}\left[r\left(s, a, s^{\prime}\right)+\gamma \Phi\left(s^{\prime}\right)-\Phi(s)+\gamma \max _{a^{\prime} \in A}\left(Q_{M}^{*}\left(s^{\prime}, a^{\prime}\right)-\Phi\left(s^{\prime}\right)\right)\right] \end{aligned}\)

第一步到第二步是因为\(\Phi\)只和s有关,和a是无关的,第二步到第三步是因\(E(\Phi(s))=\Phi(s)\)

因为\(F\left(s, a, s^{\prime}\right)=\gamma \Phi\left(s^{\prime}\right)-\Phi(s)\),\(\hat{Q}_{M^{\prime}}(s, a):=Q_{M}^{*}(s, a)-\Phi(s)\)

得到
\[ \begin{aligned} \hat{Q}_{M^{\prime}}(s, a) &=\mathbb{E}_{s^{\prime} \sim P_{s a}}\left[r\left(s, a, s^{\prime}\right)+F\left(s, a, s^{\prime}\right)+\gamma \max _{a^{\prime} \in A}\left(\hat{Q}_{M^{\prime}}\left(s^{\prime}, a^{\prime}\right)\right)\right] \\ &=\mathbb{E}_{s^{\prime} \sim P_{s a}}\left[r^{\prime}\left(s, a, s^{\prime}\right)+\gamma \max _{a^{\prime} \in A}\left(\hat{Q}_{M^{\prime}}\left(s^{\prime}, a^{\prime}\right)\right)\right] \end{aligned} \]
\(\hat{Q}_{M^{\prime}}\)满足Bellman最优方程,所以\(\hat{Q}_{M^{\prime}}=Q_{M^{\prime}}^{*}\)。所以这里说明M中的最优策略也是M'中的最优策略.

$       Q_{M^{\prime}}^{}(s, a)=Q_{M}^{}(s, a)-\Phi(s) \quad       V_{M^{\prime}}^{}=V_{M}^{}(s)-\Phi(s)$

reward shaping 不改变最优策略。

【优点】可以加速强化学习

【应用】可以在具有修改后的奖励函数的MDP上学习策略,然后在原始MDP上使用策略。可以作为一个插入人类先验知识的入口。 在许多任务中, 人类总结了大量的次优(大概对, 不是100%对, 基本上符合经验)启发式的规则。设\(a_{h}\)为根据启发规则在状态s下得到的启发行为,用agent选择的action是不是和启发式规则一致作为势能函数,若一致,则具有高势能。

势能函数的本质,就是Q函数的初始化状态。 一般我们使用全0 Q-value作为初始Q-value,通过更新Q-value最终收敛到最优值. 势能函数改变Q-value的初始状态。好的势能函数一定程度上接近最优Q-value, 可以减少一些早期学习从而加速学习过程。 试想一下,如果势能函数完全等于最优Q-value, 当前状态仅仅学习一步满足Bellman方程。

https://www.teach.cs.toronto.edu/~csc2542h/fall/material/csc2542f16_reward_shaping.pdf

https://zhuanlan.zhihu.com/p/56425081

4、Reward shaping和GAE的关系

image-20200109144024001

标签:prime,infty,right,lambda,GAE,reward,shaping,gamma,left
来源: https://www.cnblogs.com/lin-kid/p/12180356.html