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

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

    transition ( s t , a t , r t , s t + 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为超参数,通常设置在 1 0 5 − 1 0 6 10^5-10^6 105106之间。

  • TD with Experience Relay

    • 目标函数: L ( w ) = 1 T ∑ t = 1 T δ t 2 2 L(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 ( s 1 , a i , r i , s i + 1 ) (s_1,a_i,r_i,s_{i+1}) (s1,ai,ri,si+1)

      计算TD error δ i \delta_i δi

      随机梯度: g i = ∂ δ i 2 / 2 ∂ w = δ i ⋅ ∂ Q ( S i a i ; w ) ∂ w g_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 − α ⋅ g i w\leftarrow w-\alpha·g_i wwαgi

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

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

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

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

  • Importance Sampling

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

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

    • Option 2:抽样概率 p t ∝ 1 r a n k ( t ) p_t\propto \frac{1}{rank(t)} ptrank(t)1

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

  • Scaling Learning Rate

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

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

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

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

      对于非均匀抽样, p t p_t pt越大,学习率越小。

  • 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更新参数 w w w。TD target中使用到了 s t + 1 s_{t+1} st+1,说明为了更新DQN在 t t t时刻的估计,需使用到DQN在 t + 1 t+1 t+1时刻的预测。

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

    • Maximization:计算TD target时使用了最大化计算 max ⁡ a Q ( s t + 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时使用到了 q t + 1 = max ⁡ a Q ( s t + 1 , a ; w ) q_{t+1}=\max_a Q(s_{t+1},a;w) qt+1=maxaQ(st+1,a;w),并使用其更新 Q ( s t , a t ; w ) Q(s_t,a_t;w) Q(st,at;w)

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

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

  • Why is overestimation a shortcoming?

    均匀高估不会影响决策,不均匀高估影响决策。由于每个二元组 ( s t , a t ) (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, y t = r t + γ ⋅ max ⁡ a Q ( s t + 1 , a ; w − ) y_t=r_t+\gamma·\max_a Q(s_{t+1},a;w^-) yt=rt+γmaxaQ(st+1,a;w)

  • 使用一个transition对 w w w进行参数更新的过程:
    • 观测得到transition s t , a t , r t , s t + 1 s_t,a_t,r_t,s_{t+1} st,at,rt,st+1
    • TD target: y t = r t + γ ⋅ max ⁡ a Q ( s t + 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 ( s t , a t ; w ) − y t \delta_t=Q(s_t,a_t;w)-y_t δt=Q(st,at;w)yt
    • SGD: w ← w − α ⋅ δ t ⋅ ∂ Q ( s t , a t ; w ) ∂ w w\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 − ← w w^-\leftarrow w ww
    • 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 ⁡ a Q ( s t + 1 , a ; w ) y t = r t + γ ⋅ Q ( s t + 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 ⁡ a Q ( s t + 1 , a ; w − ) y t = r t + γ ⋅ Q ( s t + 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 ⁡ a Q ( s t + 1 , a ; w ) y t = r t + γ ⋅ Q ( s t + 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 ⁡ a Q ( s t + 1 , a ; w ) a^*=\arg\max_a Q(s_{t+1},a;w) a=argmaxaQ(st+1,a;w)

    Evaluation using target network: y t = r t + γ ⋅ Q ( s t + 1 , a ∗ ; w − ) y_t=r_t+\gamma\cdot Q(s_{t+1},a^*;w^-) yt=rt+γQ(st+1,a;w)
    Q ( s t + 1 , a ∗ ; w − ) ≤ max ⁡ a Q ( s t + 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实际上不是 Q Q Q值最大的动作,以部分避免高估。

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 ⁡ a Q ∗ ( s , a ) V^*(s)=\max_a Q^*(s,a) V(s)=maxaQ(s,a)
    A ∗ ( s , a ) = Q ∗ ( s , a ) − V ∗ ( s ) max ⁡ a A ∗ ( s , a ) = max ⁡ a Q ∗ ( 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 ) − m a x a A ∗ ( 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 ) − m a x a A ∗ ( 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 ; w A ) A(s,a;w^A) A(s,a;wA)

    image-20221019112916736

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

    image-20221019112939121

  • Dueling Network

    根据Theorem 2,得到对动作价值函数的近似(与DQN相同):
    Q ∗ ( s , a ; w A , w V ) = V ∗ ( s ; w V ) + A ∗ ( s , a ; w A ) − m a x a A ∗ ( s , a ; w A ) 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 = ( w A , w V ) 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 ) − m a x a A ∗ ( 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 , V A,V A,V两个网络存在反向的波动,二者相加后的输出呈现稳定,但是实际上 A , V A,V A,V两个网络训练效果都不好。

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值