[DQN] Playing Atari with Deep Reinforcement Learning

Posted 超级超级小天才

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[DQN] Playing Atari with Deep Reinforcement Learning相关的知识,希望对你有一定的参考价值。

论文链接:https://arxiv.org/abs/1312.5602
引用:Mnih V, Kavukcuoglu K, Silver D, et al. Playing atari with deep reinforcement learning[J]. arXiv preprint arXiv:1312.5602, 2013.

概述

Deep Reinforcement Learning (DQN) 是一个 model-free、off-policy 的强化学习算法,使用深度神经网络作为非线性的函数估计,是一个“端到端”训练的算法。Deep Q-network 直接接受RGB三通道图片作为输入,输入为N个动作对应的Q值,即 Q ( s , a ) Q(s,a) Q(s,a),论文的实验主要基于七个Atari游戏。

算法

DQN 算法

主要的创新点

  • 引入了一个replay buffer,用于存储采样,即一个四元组: [ s t a t e t , a c t i o n t , r e w a r d t , s t a t e t + 1 ] [state_t,action_t,reward_t,state_{t+1}] [statet,actiont,rewardt,statet+1],每次梯度更新需要从buffer中随机抽取一批数据来进行梯度下降,由于buffer本身有大小限制,所以新进来的数据会顶替旧的数据(按队列规则,先进先出),这样的好处在于:可以减少每个sample之间的关联性,减少方差,(因为训练时假设每个sample都是iid的,也就是 independently and identically distributed,但是如果直接使用按照时间序列依次采样得到的sample来训练,显然他们是不符合iid的),并且可以使用batch训练来充分利用硬件资源。
  • 使用了target network和policy network,采样时使用target network来取得数据,但是训练时更新policy network的参数,在一定的步骤数后,将policy network的参数再拷贝给target network。
  • 由于有一个replay buffer,而且batch size要远远大于1,而每一步都会采样更新,所以几乎每个sample都会被使用好多次,所以是 data efficient 的。
  • 可以端到端训练,因为输入时直接使用游戏界面的RGB图像,输出时Q值。
  • 网络底层对RGB图片进行了一定的预处理,将其转换成了灰度图,且裁剪出中间的一个游戏的主体部分

其他的点

  • 实验所测试的所有Atari游戏均采用了同一套网络结构和超参数(很强的适应性)
  • 在进行evaluation的时候,除了传统的使用累计奖赏或平均奖赏外,还使用了一些state对应的Q值变化来进行评估,更能体现出算法的稳定性

以上是关于[DQN] Playing Atari with Deep Reinforcement Learning的主要内容,如果未能解决你的问题,请参考以下文章

[DQN] Playing Atari with Deep Reinforcement Learning

Playing Atari with Deep Reinforcement Learning:打响DRL的第一枪

Playing Atari with Deep Reinforcement Learning

Paper Reading 1 - Playing Atari with Deep Reinforcement Learning

用Tensorflow基于Deep Q Learning DQN 玩Flappy Bird

论文研读强化学习入门之DQN