zoukankan      html  css  js  c++  java
  • 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} ight), 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} ight) abla_{ heta} log pi_{ heta}left(a_{t} | s_{t} ight) ight]=underset{s_{0: infty} atop a_{0: infty}}{mathbb{E}}left[A^{pi, gamma}left(s_{t}, a_{t} ight) abla_{ heta} log pi_{ heta}left(a_{t} | s_{t} ight) ight]

    [ 找到 $A^{pi, gamma}$ 的一个估计 $widehat{A}_{t}$ ,使得用这个估计来计算得到的梯度估计期望不变。 **命题1** 假设]

    hat{A}_{t}

    [可以写成 ]

    hat{A}{t}left(s{0: infty}, a_{0: infty} ight)=Q_{t}left(s_{t: infty}, a_{t: infty} ight)-
    b_{t}left(s_{0: t}, a_{0: t-1} ight)

    [这样对于所有]

    left(s_{t}, a_{t} ight), 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} ight) ight]=Q^{pi, gamma}left(s_{t}, a_{t} ight)

    [, ]

    hat{A}_{t}

    [是γ-just的 【证明(附录b)?】 首先,我们可以将期望分解为涉及Q和b的项, ]

    egin{array}{l}
    {mathbb{E}{s{0: infty}, a_{0: infty}}left[ abla_{ heta} log pi_{ heta}left(a_{t} | s_{t} ight)left(Q_{t}left(s_{0: infty}, a_{0: infty} ight)-b_{t}left(s_{0: t}, a_{0: t-1} ight) ight) ight]}
    {quad=mathbb{E}{s{0: infty}, a_{0: infty}}left[ abla_{ heta} log pi_{ heta}left(a_{t} | s_{t} ight)left(Q_{t}left(s_{0: infty}, a_{0: infty} ight) ight) ight]}
    {quad-mathbb{E}{s{0: infty}, a_{0: infty}}left[ abla_{ heta} log pi_{ heta}left(a_{t} | s_{t} ight)left(b_{t}left(s_{0: t}, a_{0: t-1} ight) ight) ight]}
    end{array}

    [依次考虑带有Q和b的项。 ]

    egin{array}{l}
    {mathbb{E}{s{0}: infty}, a_{0: infty}left[ abla_{ heta} log pi_{ heta}left(a_{t} | s_{t} ight) Q_{t}left(s_{0: infty}, a_{0: infty} ight) ight]}
    {quad=mathbb{E}{s{0: t}, a_{0: t}}left[mathbb{E}{s{t+1: infty}, a_{t+1 ; infty}}left[ abla_{ heta} log pi_{ heta}left(a_{t} | s_{t} ight) Q_{t}left(s_{0: infty}, a_{0: infty} ight) ight] ight]}
    {=mathbb{E}{s{0: t}, a_{0: t}}left[ abla_{ heta} log pi_{ heta}left(a_{t} | s_{t} ight) mathbb{E}{s{t+1}: infty, a_{t+1: infty}}left[Q_{t}left(s_{0: infty}, a_{0: infty} ight) ight] ight]}
    {=mathbb{E}{s{0: t}, a_{0: t-1}}left[ abla_{ heta} log pi_{ heta}left(a_{t} | s_{t} ight) A^{pi}left(s_{t}, a_{t} ight) ight]}
    end{array}

    [接着 ]

    egin{array}{l}
    {mathbb{E}{s{0: infty}, a_{0: infty}}left[ abla_{ heta} log pi_{ heta}left(a_{t} | s_{t} ight) b_{t}left(s_{0: t}, a_{0: t-1} ight) ight]}
    {quad=mathbb{E}{s{0: t}, a_{0: t-1}}left[mathbb{E}{s{t+1: infty}, a_{t: infty}}left[ abla_{ heta} log pi_{ heta}left(a_{t} | s_{t} ight) b_{t}left(s_{0: t}, a_{0: t-1} ight) ight] ight]}
    {quad=mathbb{E}{s{0: t}, a_{0: t-1}}left[mathbb{E}{s{t+1: infty}, a_{t: infty}}left[ abla_{ heta} log pi_{ heta}left(a_{t} | s_{t} ight) ight] b_{t}left(s_{0: t}, a_{0: t-1} ight) ight]}
    {=mathbb{E}{s{0: t}, a_{0: t-1}}left[0 cdot b_{t}left(s_{0: t}, a_{0: t-1} ight) ight]}
    {=0}
    end{array}

    [若有]

    V=V^{pi, gamma}

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

    V=V^{pi, gamma}

    [,该估计器γ-just,否则它将产生有偏的策略梯度估计,,实际上还是$A^{pi, gamma}$的无偏估计,: $egin{aligned} E_{s_{t+1}}left[hat{A}_{t} ight] &=E_{s_{t+1}}left[r_{t}+gamma V^{pi, gamma}left(s_{t+1} ight)-V^{pi, gamma}left(s_{t} ight) ight] \ &=E_{s_{t+1}}left[Q^{pi, gamma}left(s_{t}, a_{t} ight)-V^{pi, gamma}left(s_{t} ight) ight]=A^{pi, gamma}left(s_{t}, a_{t} ight) end{aligned}$ 接下来考虑n步优势函数估计( 类比TD($lambda$)的$R_t^{n}$后得$R_t^lambda$的步骤):公式11-16 ]

    egin{aligned}&hat{A}{t}{(1)}:=delta_{t}{V} quad=-Vleft(s{t} ight)+r_{t}+gamma Vleft(s_{t+1} ight)&hat{A}{t}{(2)}:=delta_{t}{V}+gamma delta{t+1}^{V} quad=-Vleft(s_{t} ight)+r_{t}+gamma r_{t+1}+gamma^{2} Vleft(s_{t+2} ight)&hat{A}{t}{(3)}:=delta_{t}{V}+gamma delta{t+1}{V}+gamma{2} delta_{t+2}^{V}=-Vleft(s_{t} ight)+r_{t}+gamma r_{t+1}+gamma^{2} r_{t+2}+gamma^{3} Vleft(s_{t+3} ight)&hat{A}{t}{(k)}:=sum_{l=0}{k-1} gamma^{l} delta{t+l}^{V}=-Vleft(s_{t} ight)+r_{t}+gamma r_{t+1}+cdots+gamma^{k-1} r_{t+k-1}+gamma^{k} Vleft(s_{t+k} ight)end{aligned}    (11-14)\hat{A}{t}{(infty)}=sum_{l=0}{infty} gamma^{l} delta{t+l}{V}=-Vleft(s_{t} ight)+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 ight) &=(1-lambda)left(delta_{t}{V}+lambdaleft(delta_{t}{V}+gamma delta_{t+1}{V} ight)+lambda{2}left(delta_{t}^{V}+gamma delta_{t+1}{V}+gamma{2} delta_{t+2}^{V} ight)+ldots ight) &=(1-lambda)left(delta_{t}{V}+lambdaleft(delta_{t}{V}+lambda delta_{t+1}{V} ight)+lambda{2}left(delta_{t}^{V}+gamma delta_{t+1}{V}+gamma{2} delta_{t+2}^{V} ight)+ldots ight) &=(1-lambda)left(delta_{t}{V}left(1+lambda+lambda{2}+ldots ight)+gamma delta_{t+1}{V}left(lambda+lambda{2}+lambda{2}+ldots ight) ight.&left.quad+gamma{2} delta_{t+2}{V}left(lambda{2}+lambda{3}+lambda{4}+ldots ight)+ldots ight) &=(1-lambda)left(delta_{t}^{V}left(frac{1}{1-lambda} ight)+gamma delta_{t+1}{V}left(frac{lambda}{1-lambda} ight)+gamma{2} delta_{t+2}{V}left(frac{lambda{2}}{1-lambda} ight)+ldots ight) &=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), 则相当于是一种“介于回合更新与单步更新之间的算法”,其训练集的基本单位也是介于一条完整轨道与一步之间。 图解: <img src="C:UsersscarlettzhuAppDataRoamingTypora ypora-user-imagesimage-20200109152420434.png" alt="image-20200109152420434" style="zoom:67%;" /> ### 3、reward shaping 主要解决的问题:奖励稀疏,不是等到中止状态给奖励,而是每向目标靠近一步就给reward之外的奖励。 但是有可能会出现刷分的情况: <img src="C:UsersscarlettzhuAppDataRoamingTypora ypora-user-imagesimage-20200109102257877.png" alt="image-20200109102257877" style="zoom:67%;" /> 在A和B之间循环走动,达到奖励值最大。 解决方案:引入势能函数$Phi(s)$ ,定义了一个状态的势能. 这个概念借鉴了物理学的势能概念。 当agent从一个高势能状态转移到第低势能转移时,它将获得额外地奖励(类似物理中的动力)。 反过来,如果agent从低势能状态到高势能状态,它将失去奖励(得到一个和上面相同但负的奖励),类似能量守恒。使用两个状态的势能差值$Phileft(s^{prime} ight)-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}leftlceil R_{t} | s_{t}=s ight]$ $Q^{pi}(s, a)=E_{pi}left[R_{t} | s_{t}=s, a_{t}=a ight]$ $V_{M}^{pi}(s)=mathbb{E}left[r_{1}+gamma r_{2}+gamma^{2} r_{3}+ldots ; pi, s ight]$, 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[rleft(s, a, s^{prime} ight)+gamma V_{M}^{pi}left(s^{prime} ight) ight]$ Bellman最优原理 $Q_{M}^{*}(s, a)=mathbb{E}_{s^{prime} sim P_{s a}}left[rleft(s, a, s^{prime} ight)+gamma max _{a^{prime} in A} Q_{M}^{*}left(s^{prime}, a^{prime} ight) ight]$ reward shaping的结论: 【结论】If $F$ is a potential-based shaping function, then every optimal policy in $M^{prime}=langle S, A, T, gamma, R+F angle$ 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 imes A imes S ightarrow mathbb{R}$ is potential-based if there exists $Phi: S ightarrow mathbb{R}$ s.t. $Fleft(s, a, s^{prime} ight)=gamma Phileft(s^{prime} ight)-Phi(s)$,$r'=r+F=r+ gamma Phileft(s^{prime} ight)-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[rleft(s, a, s^{prime} ight)+gamma max _{a^{prime} in A} Q_{M}^{*}left(s^{prime}, a^{prime} ight) ight]$ $egin{aligned} Q_{M}^{*}(s, a)-Phi(s) &=mathrm{E}_{s^{prime} sim P_{s a}}left[rleft(s, a, s^{prime} ight)+gamma max _{a^{prime} in A} Q_{M}^{*}left(s^{prime}, a^{prime} ight) ight]-Phi(s) \ &=mathbb{E}_{s^{prime} sim P_{s a}}left[rleft(s, a, s^{prime} ight)+gamma Phileft(s^{prime} ight)+gamma max _{a^{prime} in A}left(Q_{M}^{*}left(s^{prime}, a^{prime} ight)-Phileft(s^{prime} ight) ight) ight]-Phi(s) \ &=mathbb{E}_{s^{prime} sim P_{s a}}left[rleft(s, a, s^{prime} ight)+gamma Phileft(s^{prime} ight)-Phi(s)+gamma max _{a^{prime} in A}left(Q_{M}^{*}left(s^{prime}, a^{prime} ight)-Phileft(s^{prime} ight) ight) ight] end{aligned}$ 第一步到第二步是因为$Phi$只和s有关,和a是无关的,第二步到第三步是因$E(Phi(s))=Phi(s)$ 因为$Fleft(s, a, s^{prime} ight)=gamma Phileft(s^{prime} ight)-Phi(s)$,$hat{Q}_{M^{prime}}(s, a):=Q_{M}^{*}(s, a)-Phi(s)$ 得到 ]

    egin{aligned} hat{Q}{M^{prime}}(s, a) &=mathbb{E}{s^{prime} sim P_{s a}}left[rleft(s, a, s^{prime} ight)+Fleft(s, a, s^{prime} ight)+gamma max {a^{prime} in A}left(hat{Q}{M{prime}}left(s{prime}, a^{prime} ight) ight) ight] &=mathbb{E}{s^{prime} sim P{s a}}left[r^{prime}left(s, a, s^{prime} ight)+gamma max {a^{prime} in A}left(hat{Q}{M{prime}}left(s{prime}, a^{prime} ight) ight) ight] 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](C:UsersscarlettzhuAppDataRoamingTypora ypora-user-imagesimage-20200109144024001.png)]

  • 相关阅读:
    xutils 上传文件 ,暂时
    UIView.FRAMEWORK
    2016.11.7
    2016.11.6新阶段开始
    远程推送
    xcode8 导入 dylib
    bugly使用
    anelife
    心阶段
    新阶段
  • 原文地址:https://www.cnblogs.com/lin-kid/p/12180356.html
Copyright © 2011-2022 走看看