admin 管理员组文章数量: 887017
DQN的几个变种以及各自解决的问题
文章目录
- 前言
- 0. DQN存在的问题
- 1. Target Network
- 2. Double DQN
- 3. Dueling DQN
- 4. Prioritized Experience Reply
- 5. Distributional Q-function
- 6. Rainbow
- multi-step learning
- noisy net
- Rainbow算法
- 参考资料
前言
本文收录于强化学习工作准备专栏,回答了深度强化学习面试题汇总的第2题。
0. DQN存在的问题
强化学习中bootstrapping,定义如下:
In RL, bootstrapping means “using an estimated value in the update step for the same kind of estimated value”
中文一般称为自举,即左脚踩右脚上天。DQN会有高估的问题,原因主要来自于:
1.最大化: y t = r t + γ ⋅ max a Q ( s t + 1 , a ; w ) y_t=r_t+\gamma\cdot\max \limits_{a}Q(s_{t+1},a;w) yt=rt+γ⋅amaxQ(st+1,a;w),当具有误差时,最大化会导致高估。
2.Bootstrapping:如果当前时刻高估了Q值,则进行更新时,会用高估的值更新Q值,导致高估更严重。
为了解决过估计问题,DQN提出了多个变种:
1. Target Network
DQN原团队为了解决高估问题,又添加了Target Network结构。即训练两个Q网络:原有Q网络和Target Q network,原Q网络参数为 w w w,Target Q network的参数为 w − w^- w−。在计算原有Q网络的更新目标时采用Target Q network,更新公式 y t = r t + γ ⋅ max a Q ( s t + 1 , a ; w − ) y_t=r_t+\gamma\cdot\max \limits_{a}Q(s_{t+1},a;w^-) yt=rt+γ⋅amaxQ(st+1,a;w−),而Target Q network则隔一段时间更新一次,更新方式:
1. w − ← w w^-\leftarrow w w−←w,
2. w − ← τ ⋅ w + ( 1 − τ ) ⋅ w − w^- \leftarrow\tau\cdot w+(1-\tau)\cdot w^- w−←τ⋅w+(1−τ)⋅w−
Target network 避免了自举,减缓高估程度,但无法避免高估。因为仍然存在最大化操作,以及Target network和原Q网络仍有一定联系,不能完全避免bootstrapping。
2. Double DQN
为了解决过估计问题,Double DQN也采用两套Q网络进行网络参数更新,Q网络负责选择动作,参数为 w w w;Target Q网络负责计算更新目标值,参数为 w − w^- w−。
动作选择采取Q网络中值最大的动作
a ∗ = arg max a Q ( s t + 1 , a ; w ) a^*=\argmax\limits_{a}Q(s_{t+1},a;w) a∗=aargmaxQ(st+1,a;w)
动作值评估采用Target Q网络
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−)
相比于Target network直接选择Target Q网络中值最大的动作来计算更新目标,Double DQN中Q网络中值最大的动作不一定时Target Q网络中值最大的动作,所以能够更加有效的缓解过估计的问题。
3. Dueling DQN
Dueling DQN改变了网络的架构,网络的输出从 Q ( s , a ) Q(s,a) Q(s,a)改成了 V ( s ) + A ( s , a ) V(s)+A(s,a) V(s)+A(s,a)
A(s,a)需要添加一定的约束,如每列的和为0,A(s,a)需要进行一定的归一化操作,如:A=A-mean(A)。
将传统的Q值分解为V值和优势函数A(s,a),可以区分哪些是状态引起的奖励,哪些是动作得到的奖励。由于A有约束,所以网络通常会优先更新V值,再调整A值。
4. Prioritized Experience Reply
DQN中的experience Replay采用的Buffer采用的是队列结构,先进先出,容量满后丢弃最早的轨迹,并且从整个Buffer中均匀分布选择轨迹训练模型。
Prioritized Experience Replay对Buffer中的样本进行排序,依据TD-error的大小,TD-error越大表示该样本越重要,具有更高的优先级。优先级概率有两种计算方法:
然后根据总体概率进行采样:
5. Distributional Q-function
Q(s,a)是对(s,a)的累计奖励的分布算期望(平均值),所以同一个Q值可能对应多种分布。Distributional Q-function直接输出Q的分布,把每个Q(s,a)的可能值拆成多个堆(bin)。
6. Rainbow
multi-step learning
将MC和TD结合,采用多步的奖励来估计当前的Q值,得到更加准确的估计,当然复杂性也随之提高。
noisy net
为了让模型更具有探索性,还可以在Q网络的参数上加上高斯噪声,每次sample noise的时候是在episode开始的时候,一个episode之后才会重新选取noise。同一个episode中,noise是固定的。
在action上加Noise,会导致动作的不确定;在参数上加noise可以得到确定的策略。虽然进行了explore,但还是保持一致性。
Rainbow算法
Rainbow将doube DQN、Prioritized Replay Buffer、Dueling DQN、Multi-step learning、Distributional Q-function、noisy net组合起来进行实验。
排列组合的实验效果:
消融实验(去掉某种方法后的实验效果):
参考资料
李宏毅深度强化学习课程:=7
深度强化学习课程:=11
知乎专栏:
本文标签: DQN的几个变种以及各自解决的问题
版权声明:本文标题:DQN的几个变种以及各自解决的问题 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1732361898h1535454.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论