各种DQN
来源:互联网 发布:淘宝客贷入口 编辑:程序博客网 时间:2024/05/16 07:19
Q-learning
DQN
论文:Human-level control through deep reinforcement learning
DQN其实就是将深度学习与Q-learning结合起来了,建立了卷积神经网络来估计Q值。
建立了Q network,Q target network(
论文中说将Q估计跟Q target分开是因为更stable,但是具体证明并没有给。
Double DQN
论文:Deep Reinforcement Learning with Double Q-learning
Double Q-learning的想法就是将选择和评估action的网络分开,这样可以减轻overestimate.Double DQN将Double Q-learning和DQN结合起来。
Double Q-learning
在double Q-learning中有两个value function,参数分别为
在选择policy时,利用的是最近更新的
Double DQN
将Double Q-learning和DQN结合起来
Prioritized Experience Replay
论文:Prioritized Experience Replay
上面的方法都用到了replay memory来保存之前的experience,一是为了将之前有用的经历保存下来,二是连续的动作的动作不符合独立同分布,而梯度下降是要求数据独立同分布的,从memory中随机采样可以破坏数据之间的联系。但是之前的做法都是从memory中随机抽样,这样导致一些有用的样本被抽到的次数可能很少,而且存储数据的空间有限,当空间存满之后,每一次放入一个experience就要丢弃先前的一个experience.要解决这些问题有两条路,一是选择哪些experience被保存,二是选择哪些reperience被replay.这篇论文主要解决的是后者。
Prioritizing with TD-error
第一种方法是将每一步的TD-error保存下来,每次更新时,从memory中选择有较大TD-error的sample.这种方法有一些限制,首先,为了避免消耗太多资源遍历整个memory,我们只为那些被replay的experience更新TD-error;其次,如果一开始就被赋予一个很低的TD-error,在很长一段时间内可能都不会被replay;
Stochastic Prioritization
定义抽取i样本的概率为
First Variant – Proportional Variant
Second Variant – Rank-based Variant
Implementation
对于Proportional Variant,可以建立一个二叉堆来减少时间复杂度,传统的二叉堆,越往上,节点的优先级越高,而在这里,叶子节点存储transiton priority,父节点存储所有孩子节点的priorities的和。(然后怎么抽样的看不太懂,看懂之后再来修改。。)
对于Rank-based Variant,根据rank的排列计算累计密度,如果batch_size取k,则将累计密度等分为k份,从每一份中抽取一个样本。
Annealing the Bias
为了矫正偏差,加入一个权重
Dueling DQN
论文:Dueling Network Architectures for Deep Reinforcement Learning
对比前面的方法,Dueling DQN的创新之处在于将网络结构改成two stream.一条计算state value function
Advantage
- Q和V的计算同步更新,state-value function的学习更有效率
- 对于同一个状态的不同动作计算Advantage function,state-value stream都要计算一次,意味着value stream的更新频率更高了
可以有效减少Q值与V值之间尺度差异所产生的噪声(表述有待商榷)
- 各种DQN
- DQN
- DQN
- 深度增强学习(DQN)的各种改进(一)
- DeepMind为明年的AAAI,准备了一份各种DQN的混血
- DQN实战
- DQN改进
- DQN 以及 DQN的扩展
- DQN学习日记1
- double dqn report
- Reinforcement Learning (DQN) tutorial
- DQN算法分析
- 理解DQN算法
- 强化学习之DQN
- Deep Q Network (DQN)
- DQN 原理(二):理解 DQN 中的“Q”
- DQN 原理(三):DQN 训练代码实现
- DQN 从入门到放弃1 DQN与增强学习
- UIViewController小结
- 周末记录--2017.11.19
- 计算机图形学入门
- POJ2976-01分数规划&二分-Dropping tests
- 20171018
- 各种DQN
- 直接用Socket TCP开发网络游戏(三)
- JsonSerializerSettings
- 【Java】MyEclipse中复制项目或修改项目名字出现问题
- PAT Basic 1018
- Javascript获取select下拉框选中的的值,select中指定option选中触发事件
- 一招搞定苹果数据线破皮
- 在tensorboard中创建日志目录
- OpenH323开发入门