强化学习笔记_6_价值学习高级技巧

本文详细介绍了深度强化学习中经验回放(Experience Replay)的重要性和优化方式,包括基本的经验回放、优先经验回放(Prioritized Experience Replay)以及如何通过目标网络和双DQN来减少过高估计问题。此外,还提到了决斗网络(Dueling Network)如何通过优势函数来改进Q学习的表示能力,以及如何克服非唯一性问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. Experience Relay 经验回放
1.1. shortcomings of original algorithms
  • Waste of Experience

    transition (st,at,rt,st+1)(s_t,a_t,r_t,s_{t+1})(st,at,rt,st+1),称从开始到结束所有的transition为经验,原始算法中每次使用一个transition后丢弃。

  • Correlated Updates

    原始算法中,相邻transition具有相关性,实验证明这种相关性不利于训练。

1.2. Experience Relay
  • replay buffer:可储存最新的n个transition,n为超参数,通常设置在105−10610^5-10^6105106之间。

  • TD with Experience Relay

    • 目标函数:L(w)=1T∑t=1Tδt22L(w)=\frac{1}{T}\sum_{t=1}^T\frac{\delta_t^2}{2}L(w)=T1t=1T2δt2

    • Stochastic gradient descent (SGD)

      每次从replay buffer中随机均匀抽取一个transition (s1,ai,ri,si+1)(s_1,a_i,r_i,s_{i+1})(s1,ai,ri,si+1)

      计算TD error δi\delta_iδi

      随机梯度:gi=∂δi2/2∂w=δi⋅∂Q(Siai;w)∂wg_i=\frac{\partial \delta_i^2/2}{\partial w}=\delta_i·\frac{\partial Q(S_ia_i;w)}{\partial w}gi=wδi2/2=δiwQ(Siai;w)

      SDG:w←w−α⋅giw\leftarrow w-\alpha·g_iwwαgi

    • 实际中常常随机抽取多个transition(一个batch),计算多个随机梯度,以平均值更新参数www

    • 打破了序列的相关性,可重复利用过去的经验。

1.3. Prioritized Experience Relay 优先经验回放
  • Basic Idea

    不是所有transition都有相同的重要性。可以用TD error的值判断重要性,绝对值越大,说明网络越不熟悉该场景,其重要性越大。

  • Importance Sampling

    使用非均匀抽样代替均匀抽样:

    • Option 1:抽样概率 pt∝∣δt∣+ϵp_t\propto|\delta_t|+\epsilonptδt+ϵϵ\epsilonϵ避免概率为0)

    • Option 2:抽样概率pt∝1rank(t)p_t\propto \frac{1}{rank(t)}ptrank(t)1

      rank(t)rank(t)rank(t)δt\delta_tδt的序号,δt\delta_tδt绝对值越大,序号就越小,抽样概率越大。

  • Scaling Learning Rate

    • 非均匀抽样,不同transiton得到的概率不同,会导致DQN的预测有偏差,应相应调整学习率以抵消偏差。

    • SGD:w←w−α⋅ww\leftarrow w-\alpha·wwwαw

    • 将学习率α\alphaα乘以(n⋅pt)−β(n\cdot p_t)^{-\beta}(npt)β,超参数β∈(0,1)\beta\in(0,1)β(0,1),起初较小,逐渐增大到1

      对于均匀抽样,p1=p2⋅⋅⋅=pn=1n,n⋅t=1p_1=p_2···=p_n=\frac{1}{n},n\cdotp_t=1p1=p2⋅⋅⋅=pn=n1,nt=1

      对于非均匀抽样,ptp_tpt越大,学习率越小。

  • Update TD Error

    • 为每一条transition计算TD error δt\delta_tδt
    • 对新收集到还未使用的transition,δt\delta_tδt未知,将其赋最大值,即拥有最高的优先级
    • 训练DQN的同时更新δt\delta_tδt,权重也随之
2.Target Network & Double DQN
2.1. Bootstrapping 自举

在强化学习中,指用一个估算去更新同类的估算:“using an estimated value in the update step for the same knid of estimated value.”

TD算法中,使用一个transition更新参数www。TD target中使用到了st+1s_{t+1}st+1,说明为了更新DQN在ttt时刻的估计,需使用到DQN在t+1t+1t+1时刻的预测。

2.2. Problem of Overestimation
  • TD算法导致DQN高估行动价值action-value,原因:

    • Maximization:计算TD target时使用了最大化计算max⁡aQ(st+1,a;w)\max_a Q(s_{t+1},a;w)maxaQ(st+1,a;w),导致高估

      image-20221019104451417

      image-20221019104526927

      image-20221019104607173

    • Bootstrapping:用自己的估计更新自己,高估会一步步叠加(正反馈)

      计算TD target时使用到了qt+1=max⁡aQ(st+1,a;w)q_{t+1}=\max_a Q(s_{t+1},a;w)qt+1=maxaQ(st+1,a;w),并使用其更新Q(st,at;w)Q(s_t,a_t;w)Q(st,at;w)

      如果DQN高估行动价值,则Q(st+1,at;w)Q(s_{t+1},a_t;w)Q(st+1,at;w)是高估的,maximization导致其进一步高估。

      更新参数,导致被更新参数高估Q(st,at;w)Q(s_t,a_t;w)Q(st,at;w)

  • Why is overestimation a shortcoming?

    均匀高估不会影响决策,不均匀高估影响决策。由于每个二元组(st,at)(s_t,a_t)(st,at)在replay buffer中的概率不同,故高估的程度不同。

  • Solution:target network(解决bootstrapping),double DQN(解决maximization)

2.3. target network

target network: Q(s,a;w−)Q(s,a;w^-)Q(s,a;w),与DQN网络Q(s,a;w)Q(s,a;w)Q(s,a;w)结构相同,参数不同。

使用Q(s,a;w)Q(s,a;w)Q(s,a;w)控制agent并收集经验transitions;

使用Q(s,a;w−)Q(s,a;w^-)Q(s,a;w)计算TD target,yt=rt+γ⋅max⁡aQ(st+1,a;w−)y_t=r_t+\gamma·\max_a Q(s_{t+1},a;w^-)yt=rt+γmaxaQ(st+1,a;w)

  • 使用一个transition对www进行参数更新的过程:
    • 观测得到transition st,at,rt,st+1s_t,a_t,r_t,s_{t+1}st,at,rt,st+1
    • TD target: yt=rt+γ⋅max⁡aQ(st+1,a;w−)y_t=r_t+\gamma·\max_a Q(s_{t+1},a;w^-)yt=rt+γmaxaQ(st+1,a;w)
    • TD error: δt=Q(st,at;w)−yt\delta_t=Q(s_t,a_t;w)-y_tδt=Q(st,at;w)yt
    • SGD: w←w−α⋅δt⋅∂Q(st,at;w)∂ww\leftarrow w-\alpha·\delta_t·\frac{\partial Q(s_t,a_t;w)}{\partial w}wwαδtwQ(st,at;w)
  • Periodically update w−w^-w
    • Option1: w−←ww^-\leftarrow www
    • Option2: w−←τ⋅w+(1−τ⋅w−)w^-\leftarrow \tau\cdot w+(1-\tau\cdot w^-)wτw+(1τw)

由于使用了另一个网络计算TD error,使用target network可以一定程度减小bootstrapping导致DQN高估的程度,但依然无法解决maximization导致的高估。同时,由于target network的参数依赖于DQN网络,故bootstrapping依然存在。

2.4. double DQN
  • 计算TD target的方法:

    DQN:
    a∗=arg⁡max⁡aQ(st+1,a;w)yt=rt+γ⋅Q(st+1,a∗;w) \begin{aligned} a^*&=\arg\max_a Q(s_{t+1},a;w) \\y_t&=r_t+\gamma\cdot Q(s_{t+1},a^*;w) \end{aligned} ayt=argamaxQ(st+1,a;w)=rt+γQ(st+1,a;w)
    target network:
    a∗=arg⁡max⁡aQ(st+1,a;w−)yt=rt+γ⋅Q(st+1,a∗;w−) \begin{aligned} a^*&=\arg\max_a Q(s_{t+1},a;w^-) \\y_t&=r_t+\gamma\cdot Q(s_{t+1},a^*;w^-) \end{aligned} ayt=argamaxQ(st+1,a;w)=rt+γQ(st+1,a;w)
    double DQN:
    a∗=arg⁡max⁡aQ(st+1,a;w)yt=rt+γ⋅Q(st+1,a∗;w−) \begin{aligned} a^*&=\arg\max_a Q(s_{t+1},a;w) \\y_t&=r_t+\gamma\cdot Q(s_{t+1},a^*;w^-) \end{aligned} ayt=argamaxQ(st+1,a;w)=rt+γQ(st+1,a;w)
    image-20221019111548672

    大幅提升性能,虽然不能彻底消除高估,但是高估不太严重。

  • Why does double DQN work better?

    Selection using DQN: a∗=arg⁡max⁡aQ(st+1,a;w)a^*=\arg\max_a Q(s_{t+1},a;w)a=argmaxaQ(st+1,a;w)

    Evaluation using target network: yt=rt+γ⋅Q(st+1,a∗;w−)y_t=r_t+\gamma\cdot Q(s_{t+1},a^*;w^-)yt=rt+γQ(st+1,a;w)
    Q(st+1,a∗;w−)≤max⁡aQ(st+1,a;w−) Q(s_{t+1},a^*;w^-)\leq\max_aQ(s_{t+1},a;w^-) Q(st+1,a;w)amaxQ(st+1,a;w)
    上式左侧Double DQN选择的a∗a^*a实际上不是QQQ值最大的动作,以部分避免高估。

3.Dueling Network
3.1. Advantage Function
  • Definations

    Optimal action-value function: Q∗(s,a)=max⁡πQπ(s,a)Q^*(s,a)=\max_\pi Q_\pi(s,a)Q(s,a)=maxπQπ(s,a)

    Optimal state-value function: V∗(s)=max⁡πVπ(s)V^*(s)=\max_\pi V_\pi(s)V(s)=maxπVπ(s)

    Optimal advantage function(优势函数): A∗(s,a)=Q∗(s,a)−V∗(s)A^*(s,a)=Q^*(s,a)-V^*(s)A(s,a)=Q(s,a)V(s)

  • Properties of Advantage Function

    Theorem 1: V∗(s)=max⁡aQ∗(s,a)V^*(s)=\max_a Q^*(s,a)V(s)=maxaQ(s,a)
    A∗(s,a)=Q∗(s,a)−V∗(s)max⁡aA∗(s,a)=max⁡aQ∗(s,a)−V∗(s)=0 \begin{aligned} A^*(s,a)&=Q^*(s,a)-V^*(s) \\\max_a A^*(s,a)&=\max_a Q^*(s,a)-V^*(s)=0 \end{aligned} A(s,a)amaxA(s,a)=Q(s,a)V(s)=amaxQ(s,a)V(s)=0
    将进行如下变换:
    A∗(s,a)=Q∗(s,a)−V∗(s)Q∗(s,a)=V∗(s)+A∗(s,a)−maxaA∗(s,a) \begin{aligned} A^*(s,a)&=Q^*(s,a)-V^*(s) \\Q^*(s,a)&=V^*(s)+A^*(s,a)-max_a A^*(s,a) \end{aligned} A(s,a)Q(s,a)=Q(s,a)V(s)=V(s)+A(s,a)maxaA(s,a)
    Theorem 2: Q∗(s,a)=V∗(s)+A∗(s,a)−maxaA∗(s,a)Q^*(s,a)=V^*(s)+A^*(s,a)-max_a A^*(s,a)Q(s,a)=V(s)+A(s,a)maxaA(s,a)

3.2. Dueling Network
  • Approximation Advantage Function A(s,a;wA)A(s,a;w^A)A(s,a;wA)

    image-20221019112916736

  • Approximation State-Value Function V(s;wV)V(s;w^V)V(s;wV)

    image-20221019112939121

  • Dueling Network

    根据Theorem 2,得到对动作价值函数的近似(与DQN相同):
    Q∗(s,a;wA,wV)=V∗(s;wV)+A∗(s,a;wA)−maxaA∗(s,a;wA) Q^*(s,a;w^A,w^V)=V^*(s;w^V)+A^*(s,a;w^A)-max_a A^*(s,a;w^A) Q(s,a;wA,wV)=V(s;wV)+A(s,a;wA)maxaA(s,a;wA)
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xe0bBddO-1672473344043)(null)]

    Dueling Network与DQN的输入输出均相同,但是网络结构不同。

  • Training

    学习参数w=(wA,wV)w=(w^A,w^V)w=(wA,wV),训练过程与DQN相同,也可以应用其他高级技巧。

3.3. Overcome Non-identifiability
  • Problem of Non-identifiability

    Equation 1: Q∗(s,a)=V∗(s)+A∗(s,a)Q^*(s,a)=V^*(s)+A^*(s,a)Q(s,a)=V(s)+A(s,a)

    Equation 2: Q∗(s,a)=V∗(s)+A∗(s,a)−maxaA∗(s,a)Q^*(s,a)=V^*(s)+A^*(s,a)-max_a A^*(s,a)Q(s,a)=V(s)+A(s,a)maxaA(s,a)

    Equation 1中,无法通过学习Q∗Q^*Q唯一确定V∗,A∗V^*,A^*V,A,如果A∗A^*A增加10,V∗V^*V减小10,得到的输出Q∗Q^*Q不变。若A,VA,VA,V两个网络存在反向的波动,二者相加后的输出呈现稳定,但是实际上A,VA,VA,V两个网络训练效果都不好。

    Equation 2解决了不唯一性,如果A∗A^*A增加10,V∗V^*V减小10,得到的结果减小10。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值