论文笔记

一.基本信息
标题:Playing Atari with Deep Reinforcement Learning
时间:
出版源:
领域分类:AI Deep Reinforcement Learning
论文概述:
本篇论文提出了将深度学习和强化学习结合起来的模型,利用强化学习成功地从高维感官输入中学习控制策略的深度学习模型,该模型是用Q-learning的变体训练的卷积神经网络,其输入是原始像素,输出是估计未来奖励的估值函数。通过作者此方法训练的神经网络来玩7个Atari 2600游戏,我们发现,它在6款游戏上的表现优于之前所有的方法,并在其中3款游戏上超过了人类专家。
研究背景
问题定义:

Our goal is to create a single neural network agent that is able to successfully learn to play as many of the games as possible.
一方面,强化学习在从视觉和语言等高维感官输入中学习如何控制agent是存在一定困难的。大多数成功的RL,都依赖基于人工特征的策略或者值函数。显然,这使得学习算法的效果在很大程度上依赖于特征的标注质量。
另一方面,深度学习在视觉和语音领域取得了极大的成就,神经网络在提取高维特征方面有着极大的优势,在此方面使用神经网络来结合强化学习看起来是一种很自然的技术。
所以说,作者想要将深度学习与强化学习结合起来,使得强化学习能够直接从高维数据来学习到游戏操作策略

难点:

第一:迄今为止,大多数成功的深度学习应用程序都需要大量的手工标记训练数据。
第二:RL算法必须能够从频繁稀疏、噪声和延迟的标量奖励信号中学习。监督学习中:输入与目标之间是直接联系的。因此,action与reward之间的延迟(可能长达数千步)是个棘手的问题。
第三:大多数深度学习算法假设数据样本是独立的,而在强化学习中,通常会遇到高度相关的序列。
第四:在RL中,随着算法不断学习新的action,“agent根据action探索得到的数据”的分布也会发生变化。这对于“假设一个固定的底层分布”的深度学习来说是有问题的。

相关工作:

此前已经有人提出过将深度学习和增强学习相结合的方法了。TD-gammon算法将Q-Learning与一个单隐层的神经网络相结合,但是并不具备通用性,并且人们发现model-free方法与非线性拟合相结合很容易造成Q-Network不收敛。目前,神经网络主要被用于为环境建模,为估值函数建模和为奖赏建模。
另外一个与我们相似的工作是使用神经拟合Q-learning (NFQ)。它使用的批更新具有“每次迭代的计算成本都与数据集的大小成正比”这一特点。它使用纯视觉输入,首先使用深度自动编码器来学习任务的低维度表示,然后将NFQ应用到这个低纬度表示中。

Q-Learning算法学习:
强化学习通过Agent与环境的交互来不断学习最优的策略,Agent的目标就是获取最大奖赏。
定义在时刻未来能获得的回报为:,即回报随着时间会有一定的衰减。
最优的动作-值函数为:。
比较基本的方法是采用动态规划的方法计算最优的Q值,因为序列符合MDP,我们得到如下的迭代公式:

带迭代次数趋于无穷时,Q逼近与Q*。
然而这种方法在实际应用中是完全不可行的,因为每个序列的值函数是单独估计的,没有任何普遍性。另外,当状态-动作空间太大时,使用Q-Table更新是不现实的。所以通常的做法是把Q值的更新看作是一个函数拟合问题,通过参数拟合来逼近最优函数:。如果我们想要拟合一个非线性函数,那么神经网络无疑是非常合适的选择。利用SGD算法最小化损失函数:来训练。这种算法是无模型的,而且是off-policy的,因为它通过e-greedy来选择动作。

二.创新方法

  1. 本文通过使用一个CNN网络和Q-Learning算法结合的方法来解决这些问题,采用随机梯度下降的优化算法,同时采用了一种名为experience replay mechanism的经验重播机制方法来解决数据分布不均衡的问题。
  2. DQN采用了经验回放机制,将的经验存入一个固定大小的数据集中,之后的训练中随机从经验池中选区minbatch个数据集用于训练。因为数据选取的随机性而有效避免了训练样本高度相关性的问题,解决了训练问题,同时,经验的每一步都可能用于许多权重更新,从而提高数据效率。 并且,通过使用经验重放,在许多以前的状态下对行为分布进行平均,避免参数的振荡或发散,避免陷入糟糕的局部最小值。同时算法仅保存最新的N个经验样本解决了内存问题。
    3.算法流程:

3.1. 初始化经验池D
3.2. 随机初始化网络权重
3.3 对于每一个episode,获取预处理的图像输入
3.4. 根据e-greedy算法,选择下一次的动作。计算下一帧图形和reward
3.5. 将得到的数据存入经验池D
3.6. 从经验池中随机选取数据,计算网络的输出y
3.7. 使用SGD(随机梯度下降)算法来更新网络的权重

四.实验
实验对象:

我们已经在七款流行的雅达利游戏上做了实验——Beam Rider, Breakout,Enduro, Pong, Q*bert, Seaquest, Space Invaders.我们在所有7款游戏中使用了相同的网络架构、学习算法和超参数设置。

要探究的问题:
探究这种方法让agent学习玩雅达利游戏的效果,与以往的RL方法以及人类游戏专家比是否能够玩得更好。

实验结果:

结论:
DQN在7个Atari 2600游戏上的得分有6个胜过了以往最好方法,有3个游戏超过了人类专家。
五.结论
作者的总结:

本文介绍了一种新的用于强化学习的深度学习模型,并展示了它对雅达利2600游戏机学习复杂控制策略的能力。我们还提出了一种在线Q-learning算法的变体,它将随机的minibatch与replay memory相结合,以方便RL的深层网络训练。我们的方法没有对网络架构或超参数进行调整,在测试的7个游戏中有6个得到了最优秀的结果。其中在有3个游戏中效果超过了人类游戏专家。

自己的评价:

看完这篇论文后,我再一次认同我之前的观点,我们在某一个领域学到的知识,要把学到的知识融会贯通,应用到以后碰到的问题上。即知识的迁移和融会贯通很重要。
作者在强化学习中碰到的一些无法解决的问题,采用深度学习的思路来解决,当然作者也考虑到了两者不适用的地方,所以对于模型方便进行了一定的改进。比如文中所采用的Experience Replay 方法使得数据满足独立分布,并且打破了数据之间的关联性。使得能够较好的把深度学习和强化学期运用到一起。并且作者提出想法后,通过做实验的方法论证了,自己的方法能够取得一个很好地效果。优于目前已有的一些方法。

改进的方案:
对于改进的方案来说,我有几个设想:

第一:从作者的解决方案来看,其实作者想到的就是从高维的图像数据入手,先用一个cnn再用Q-learning来进行训练。这样来看cnn主要提取出了图像中重要的信息,然后再用Q-learning的方式来获得一个很好的策略。但是这样忽视了一点,即我们玩游戏也是一个连续的过程,即前一步的操作,或者是前k帧的操作之间的联系。所以我觉得可能在cnn网络模型之后再加上一层rnn的模型,进行一个过往信息的汇总,然后再将信息进行Q-learning的操作。可能这样做,考虑到时间维度上图片之间的信息。能够让机器获得更多的信息,进而学到更好的效果。

第二:这个改进的点不是我自己想出来的。也是我之前学习q-learning就了解到。我们可以采用一种叫Fixed Q-targets的机制。如果使用 fixed Q-targets, 我们就会在 DQN 中使用到两个结构完全相同但参数不同的神经网络 (有时差), 预测 Q 估计的神经网络 (evaluate net) 具备最新的参数, 而预测Q 现实的神经网络 (target net) 使用的参数则是很久以前的。这种方法一定程度降低了当前Q值和目标Q值的相关性,提高了算法稳定性。

第三:同样在别人的文章的思想下,对于experience replay 这个方法来说,随机的抽取过去的数据,没有区分它们之间的重要性,这样做的效率会比较低,可以考虑 prioritized sweeping的解决方案,也就是不再是完全随机抽取,而是考虑到不同数据之间的重要性,然后再做一个抽取操作。

参考链接:
https://blog.csdn.net/qq_30615903/article/details/80744083
https://www.jianshu.com/p/3bd1eba0a0f7
https://zhuanlan.zhihu.com/p/137880325
https://www.cnblogs.com/hhh5460/p/10154874.html
https://blog.csdn.net/weixin_40523230/article/details/83142223//翻译
https://blog.csdn.net/qq_37141382/article/details/88309771//笔记
https://juejin.im/post/6844903985611014152#heading-7
https://zhuanlan.zhihu.com/p/97856004

Playing Atari with Deep Reinforcement Learning 学习笔记相关推荐

  1. 算法笔记:Playing Atari with Deep Reinforcement Learning

    Playing Atari with Deep Reinforcement Learning 比较尴尬,上篇文章不是DQN的来源,这篇才是.上篇Nature文章对于DQN做出的改进上次没读明白,查看其 ...

  2. 【强化学习】Playing Atari with Deep Reinforcement Learning (2013)

    Playing Atari with Deep Reinforcement Learning (2013) 这篇文章提出了第一个可以直接用强化学习成功学习控制policies的深度学习模型. 输入是r ...

  3. 深度强化学习篇2:从Playing Atari with Deep Reinforcement Learning 看神经网络的输入,学习的状态空间

    Introduction:学习直接从高维的感观输入(视觉,语音)去直接控制智能体是强化学习一个长期的挑战.一些成功的RL应用都是依赖于hand-crafted的特征.最近深度学习的进步使提取高水平的特 ...

  4. 论文笔记之:Playing Atari with Deep Reinforcement Learning

    Playing Atari with Deep Reinforcement Learning <Computer Science>, 2013 Abstract: 本文提出了一种深度学习方 ...

  5. [DQN] Playing Atari with Deep Reinforcement Learning

    论文链接:https://arxiv.org/abs/1312.5602 引用:Mnih V, Kavukcuoglu K, Silver D, et al. Playing atari with d ...

  6. RL论文阅读【一】Playing Atari with Deep Reinforcement Learning

    1 废话 开始要认真的读论文的,计划每天晚上回宿舍看一半,两天看完一篇,第三天写博客总结,虽然有点慢吧,但是积少成多嘛~ 今天先介绍第一篇,也是深度强化学习的开山之作. 2 动机 一般把这篇论文称作深 ...

  7. 【论文翻译】Playing Atari with Deep Reinforcement Learning

    摘要:我们第一个提出了"利用强化学习从高维输入中直接学习控制策略"的深度学习模型.该模型是一个卷积神经网络,经过Q-learning训练,输入为原始像素,输出为:"用来估 ...

  8. Paper Reading 1 - Playing Atari with Deep Reinforcement Learning

    来源:NIPS 2013 作者:DeepMind 理解基础: 增强学习基本知识 深度学习 特别是卷积神经网络的基本知识 创新点:第一个将深度学习模型与增强学习结合在一起从而成功地直接从高维的输入学习控 ...

  9. Playing Atari with Deep Reinforcement Learning

    背景 实践中,因为action-value公式对于每个序列是被分别估计的.所以作为替换,在强化学习,通常用一个 函数拟合器 来估计action-value函数,典型的是一个线性拟合器,但是有时候是一个 ...

  10. 【论文理解】DQN:Playing Atari with Deep Reinforcement Learning

    特点 强化学习和深度学习结合 使用原始的游戏画面作为输入,使用nn模型提取特征 使用深度网络输出作为选在动作a的价值. 使用内存空间来缓存历史行为,状态以及奖励值. 算法流程 对于转换状态的rewar ...

最新文章

  1. SpringBoot 自动解析参数:HandlerMethodArgumentResolver
  2. python使用fpdf生成发票格式的pdf文件包含:文字、图片logo、表格、条形码等;
  3. Java面试题,深入理解final关键字
  4. Mysql-ROW_FORMAT
  5. 调查HashDoS问题
  6. 键盘按钮keyCode大全
  7. 深挖 AI 价值与温度,AETA 地震预测 AI 算法大赛开启
  8. 大数据Python学习大纲
  9. Go微服务 - 第八部分 - 使用Viper和Spring Cloud Config进行集中配置
  10. Shell中的grep、awk和sed的常用命令和语法
  11. oracle 052 题库变了,oracle ocp题库变化,052新加的考试题收集整理-30
  12. 不可错过的效能利器「GitHub 热点速览 v.22.39」
  13. windows系统下,在iis管理器(无W3SVC/WAS服务)或网站IIS功能不全(无默认文档、模块、各种规则设置等)
  14. 什么是EJB?EJB到底是什么?
  15. 支付宝第三方应用代调用API关系说明
  16. 手把手教你刷github提交记录
  17. 【BZOJ 4892】DNA
  18. 我试过销声匿迹最后却无人问津(人生感悟)
  19. 考研倒计时自律神器计划便签
  20. Quartz-cron表达式

热门文章

  1. Spring Aop(十五)——Aop原理之Advised接口
  2. 文件下载中使用inputStream流获取文件大小
  3. 把ipa文件上传到App Store教程步骤
  4. google地址栏的代码是什么意思(转)
  5. BLOBS表空间数据查询
  6. SWUST OJ1132: 机器人收集硬币
  7. js实现手机摇一摇以及震动功能
  8. Python-100-Days学习笔记day11
  9. 华硕无线路由打印机服务器,华硕RT-AC86U路由器怎么共享打印机
  10. Element UI修改message控件显示的时间