强化学习—— Target Network & Double DQN(解决高估问题,overestimate)

1TD算法

  1. TD Target: y t = r t + m a x a Q ( s t + 1 , a ; W ) y_t = r_t +\mathop{max}\limits_{a}Q(s_{t+1},a;W) yt=rt+amaxQ(st+1,a;W)
  2. SGD: W ← W − α ⋅ ( Q ( s t , a t ; W ) − y t ) ⋅ ∂ Q ( s t , a t ; W ) ∂ W W\gets W-\alpha \cdot (Q(s_t,a_t;W)-y_t)\cdot \frac{\partial Q(s_t,a_t;W)}{\partial W} WWα(Q(st,at;W)yt)WQ(st,at;W)
    TD Target中的部分基于Q,并用于更新Q自身。

2. 高估问题

使用TD 算法进行学习使得DQN出现高估问题(overestiamte),两个主要原因为:

  1. TD Target比真实的动作价值更大(Maximization)。
  2. Bootstrapping
    在这里插入图片描述

2.1 Maximization

2.1.1 数学解释

  1. 观测到实数: x 1 , x 2 , . . . , x n x_1,x_2,...,x_n x1,x2,...,xn
  2. 对实数x增加均值为0的噪音,得到: Q 1 , Q 2 , . . . , Q n Q_1,Q_2,...,Q_n Q1,Q2,...,Qn
  3. 均值为0的噪音并不影响增加前后的均值: E [ m e a n i ( Q i ) ] = E [ m e a n i ( x i ) ] E[mean_i(Q_i)]=E[mean_i(x_i)] E[meani(Qi)]=E[meani(xi)]
  4. 添加均值为0的噪音会增加添加后的最大值: E [ m a x i ( Q i ) ] ≥ E [ m a x i ( x i ) ] E[max_i(Q_i)]≥E[max_i(x_i)] E[maxi(Qi)]E[maxi(xi)]
  5. 添加均值为0的噪音会减小添加后的最小值: E [ m i n i ( Q i ) ] ≤ E [ m i n i ( x i ) ] E[min_i(Q_i)]≤E[min_i(x_i)] E[mini(Qi)]E[mini(xi)]

2.1.2 动作价值函数的高估

  1. 真实的动作价值为 x ( a 1 ) , x ( a 2 ) , . . . , x ( a n ) x(a_1),x(a_2),...,x(a_n) x(a1),x(a2),...,x(an)
  2. 通过DQN得到有噪音的动作价值估计: Q ( s 1 , a 1 ; W ) , Q ( s 2 , a 2 ; W ) , . . . , Q ( s n , a n ; W ) Q(s_1,a_1;W),Q(s_2,a_2;W),...,Q(s_n,a_n;W) Q(s1,a1;W),Q(s2,a2;W),...,Q(sn,an;W)
  3. 假设为无偏估计: m e a n a x ( a ) = m e a n a Q ( s , a ; W ) \mathop{mean}\limits_{a}x(a)=\mathop{mean}\limits_{a}Q(s,a;W) ameanx(a)=ameanQ(s,a;W)
  4. 则会产生如下高估: q = m a x a Q ( s , a ; W ) ≥ m a x a x ( a ) q=\mathop{max}\limits_{a}Q(s,a;W)≥\mathop{max}\limits_{a}x(a) q=amaxQ(s,a;W)amaxx(a)
  5. t+1时刻真实动作价值函数的高估为: q = m a x a Q ( s t + 1 , a ; W ) q=\mathop{max}\limits_{a}Q(s_{t+1},a;W) q=amaxQ(st+1,a;W)
  6. 则TD Target为高估: y t = γ ⋅ q t + 1 y_t=\gamma \cdot q_{t+1} yt=γqt+1
  7. 更新后的Q朝向TD Target,仍为高估。

2.2 Bootstrapping

自举:using an estimated value in the update step for the same kind of estimated value

  1. 假设DQN已经高估了动作价值
  2. 则t+1时刻的动作价值已经为高估: Q ( s t + 1 , a ; W ) Q(s_{t+1},a;W) Q(st+1,a;W)
  3. 则t+1时刻的最优动作价值为进一步的高估: q t + 1 = m a x a Q ( s t + 1 , a , W ) q_{t+1}=\mathop{max}\limits_{a}Q(s_{t+1},a,W) qt+1=amaxQ(st+1,a,W)
  4. 当t+1时刻的最优动作价值在用于更新Q网络时,则DQN的高估被进一步加剧。

2.3 高估是否有害

  1. 均匀高估没有影响。因为关注相对大小,不关注绝对大小
  2. 非均匀高估则会产生影响。
    DQN为非均匀高估:
  • 使用一个transition去更新W: ( 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 高 估 了 Q ⋆ ( s t , a t ) y_t高估了Q^\star(s_t,a_t) ytQ(st,at)
  • 梯度更新使得: Q ( s t , a t ; W ) 朝 向 y t Q(s_t,a_t;W)朝向y_t Q(st,at;W)yt
  • 因此: Q ( s t , a t ; W ) 高 估 了 Q ⋆ ( s t , a t ) Q(s_t,a_t;W)高估了Q^\star(s_t,a_t) Q(st,at;W)Q(st,at)
  • 而(s,a)在replay buffer中的频率不一样,(s,a)的频率越高,则: Q ( s , a ; W ) 会 更 多 的 高 估 Q ⋆ ( s , a ) Q(s,a;W)会更多的高估Q^\star(s,a) Q(s,a;W)Q(s,a)

3. 高估的解决方案

3.1 Target Network

使用一个target 网络去计算TD targets,可以解决bootstrapping引起的高估问题。

3.1.1 Target Network的结构

Q ( s , a , W − ) Q(s,a,W^-) Q(s,a,W)
网络结构与DQN一致,但参数不一样:
W ≠ W − W\neq W^- W=W

3.1.2 学习方式

  • 使用 DQN控制agent和收集经验: Q ( s , a ; W ) f o r ( s t , a t , r t , s t + 1 ) Q(s,a;W) for {(s_t,a_t,r_t,s_{t+1})} Q(s,a;W)for(st,at,rt,st+1)
  • 使用Target Network计算TD Target: y t = r t + γ ⋅ m a x a Q ( s t + 1 , a , W − ) y_t = r_t+\gamma \cdot \mathop{max}\limits_{a}Q(s_{t+1},a,W^-) yt=rt+γamaxQ(st+1,a,W)
  • TD error 为: δ t = Q ( s t , a , W ) − y t \delta_t = Q(s_{t},a,W)-y_t δt=Q(st,a,W)yt
  • SGD 更新网络参数: W ← W − α ⋅ ( Q ( s t , a t ; W ) − y t ) ⋅ ∂ Q ( s t , a t ; W ) ∂ W W\gets W-\alpha \cdot (Q(s_t,a_t;W)-y_t)\cdot \frac{\partial Q(s_t,a_t;W)}{\partial W} WWα(Q(st,at;W)yt)WQ(st,at;W)
    Target Network的参数需要定期更新(periodically update)
  1. 方法一: W ← W − W\gets W^- WW
  2. 方法二: W ← η ⋅ W + ( 1 − η ) ⋅ W − W\gets \eta \cdot W + (1-\eta) \cdot W^- WηW+(1η)W
    仍然无法避免高估

3.2 Double DQN

解决最大化造成的高估。

  • 选择最优动作时使用DQN: a ⋆ = a r g m a x a Q ( s t + 1 , a ; W ) a^\star=\mathop{argmax}\limits_{a}Q(s_{t+1},a;W) a=aargmaxQ(st+1,a;W)
  • 评估动作价值时使用 Target Network: y t = r t + γ ⋅ Q ( s t + 1 , a ⋆ ; W − ) y_t = r_t + \gamma \cdot Q(s_{t+1},a^\star;W^-) yt=rt+γQ(st+1,a;W)
  • Double DQN更好的原因: Q ( s t + 1 , a ⋆ ; W − ) ≤ m a x a Q ( s t + 1 , a ; W − ) Q(s_{t+1},a^\star;W^-)≤\mathop{max}\limits_{a}Q(s_{t+1},a;W^-) Q(st+1,a;W)amaxQ(st+1,a;W)

4. 总结

  • 最大化导致真实的动作价值被高估
  • bootstrapping造成正反馈循环,导致高估
  • Target Network能部分避免bootstrapping: W − 依 赖 于 W W^-依赖于W WW
  • Double DQN避免最大化造成的高估
网络学习方式动作选择价值评估
原始方式DQNDQN
Target NetworkTarget NetworkTarget Network
Double DQNDQNTarget Network

本文内容为参考B站学习视频书写的笔记!

by CyrusMay 2022 04 10

我们在小孩和大人的转角
盖一座城堡
——————五月天(好好)——————

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值