From:

http://wanghaitao8118.blog.163.com/blog/static/13986977220153811210319/

accessed 2016-03-10

深度强化学习(Deep Reinforcement Learning)的资源

Google的Deep Mind团队2013年在NIPS上发表了一篇牛x闪闪的文章,亮瞎了好多人眼睛,不幸的是我也在其中。前一段时间收集了好多关于这方面的资料,一直躺在收藏夹中,目前正在做一些相关的工作(希望有小伙伴一起交流)。

一、相关文章

关于DRL,这方面的工作基本应该是随着深度学习的爆红最近才兴起的,做这方面的研究的一般都是人工智能领域的大牛。最早(待定)的一篇可以追溯到2010年,Lange[1]做的相关工作。 提出了Deep auto-encoder用于基于视觉的相关控制,和目前的架构其实已经很相似了。接下来,在2011年,Cuccu等人[2](Jurgen Schmidhuber课题组的),做了一些相关的工作(有和DRL靠近的意思)。关于这位瑞士的大牛Jurgen先生,他去年写了一篇关于DL的综述,这不是关键,关键是这货引用了888篇参考文献,这货必定受了中国高人指点(因为中国人很喜欢的),事实上他也做中文识别(我都惊呆了)。还是2011年,Abtahi等人[3]用DBN替代传统的强化学习中的逼近器(做RL的人是不是很亲切,和Deep mind就差一点儿额!有木有觉得很可惜,几乎都摸到Nature的门上了), 。2012年的时候,Lange[4]这人更进一步开始做应用了,提出Deep Fitted Q学习做车辆控制,不过效果不咋地。后来2012年的时候,就有人开始写深度强化学习的相关应用前景和综述了,比如Arel[5](大牛们还是看的比较远的)的。然后时间就到了2013年,Deep Mind团队在nips上发表了他们的文章[6],业界都惊呆了,(RL和DL还可以这样玩儿)。但是,刚出来的时候,他们不给代码,各路牛人震惊之余开始搞逆向工程,最后真有一帮人把代码写出来了(囧啊!我为什么写不出来呢?)后来更给力的就是Deep mind[7]居然又更进一步发到nature上去了。 反正我当时知道后都惊呆了,人工智能领域的人开始狂欢了,各种摇旗呐喊的人,然后现在这东西开始变得炙手可热,不知道会不会像Google眼镜一样。关于DRL的发展就是这个样子,接下来就看看那些个人怎么给呐喊的吧!
 
二、科学评论

看看人家外国人怎么说吧!

还有很多很多就不一一列举了。

三、相关代码

这部分应该是大家最关心的,我想大部分看到文章的第一想法是代码呢!擦,其实我也是这么想的,谁叫自己的coding能力不够呢!没办法,本人在网上(github.com)深挖了好久,没想到大牛真的好多好多啊!

  1. 排在第一的当然是google自己公布的代码啊!真是业界良心啊!https://sites.google.com/a/deepmind.com/dqn/ 。可惜注释好少。。。。。是基于Torch 7的代码,本人又硬着头皮学了lua。话说我这几个月我就在和各种脚本语言打交道,都是泪啊!备注,deep mind的git地址https://github.com/deepmind 。话说没有GPU的电脑真心不要跑了,我跑了13个小时才跑了大概1/20~~~建议在ubuntu下面跑,最好版本高一些;
  2. 然后就是各路人马(大牛们)的逆向工程。https://github.com/spragunr/deep_q_rl ,作者Spragunr公布的基于python各种工具的代码,这位大牛利用外界工具的能力真实吊炸天,好多工具啊!opencv、cython、rl-glue、theano等等。我表示在ubuntu14.04LTS上面配置了好久,发现电脑没有GPU,跑不起来,整个人都不好了,还有一个貌似是其学生的https://github.com/brian473/neural_rl ,里面也需要配置python的库,theano之类的,步骤比较多~不过大牛的学生都是大牛。
  3. https://github.com/kristjankorjus/Replicating-DeepMind ,这里Kristjankorjus大牛基于convnet的东东,发布了这一代码,也是基于python的,我表示没有跑过,不清楚状况,貌似也要GPU,也要配置一堆库。
  4. Stanford的Karpathy等人复现了DQN,但是是用的js,开始真是吓尿了,在浏览器里面跑额!https://github.com/karpathy/convnetjs ,这个demo不错,可惜只能show一下没啥价值,网页可见http://cs.stanford.edu/people/karpathy/convnetjs/ 。还有一点,这人学生更牛,直接用Torch 7给实现了,(阅读了代码之后发现结构和Google给的几乎一模一样,而且注释相当详细),https://github.com/fangzai/DeepQLearning 。忘了源地址在哪儿了,我把这个到我的git上了,有点儿对不起原作者了。
  5. 也有人用caffe实现了,是个日本人。目前有两个地址,https://github.com/chiggum/AI/tree/master/rl/atari_agent,和https://github.com/muupan/dqn-in-the-caffe 第二个是日本人写的(还真牛)。好多人喜欢用caffe,不过貌似是没有torch 7方便,有一个好处就是直接是C++,效率比较高。不过,这两个程序我都没有跑过,看作者给的结果,挺不错的。
  6. 上面说的搞逆向的人爱沙尼亚Ilya Kuzovkin的关于google源码的改进,还有相关电脑的配置信息。https://github.com/kuz/DeepMind-Atari-Deep-Q-Learner 。这里跟一下他们的报告https://courses.cs.ut.ee/MTAT.03.291/2014_spring/uploads/Main/Replicating%20DeepMind.pdf ,赶脚特别专业,和这个作者联系过,人特别很nice。
  7. 还有一些基本都是他们的fork出来改进的,读者自己去挖吧!

基本上重要的就是这么多了,然后外围的关于Torch 7和其他东西的安装就不提了。

三、论坛

这是google上的一个小组,里面有不少人讨论DQN的算法以及代码使用心得,有兴趣的可以加入。

https://groups.google.com/forum/#!topic/deep-q-learning

最后用Deep Mind的主页镇楼http://deepmind.com/ 。

四、补充

在跑Deep Mind的程序的时候,可能会遇到一些问题

问题1

在convnet.lua的22行中报错,返回nill value,这个地方对于torch的设置有问题,请看如下网址。

http://stackoverflow.com/questions/29564360/bug-encountered-when-running-googles-deep-q-network-code

  PS:欢迎各位大小牛牛补充~~~

[1] S. Lange and M. Riedmiller, "Deep auto-encoder neural networks in reinforcement learning," in IJCNN, 2010, pp. 1-8.

[2] G. Cuccu, M. Luciw, J. Schmidhuber, and F. Gomez, "Intrinsically motivated neuroevolution for vision-based reinforcement learning," in Development and Learning (ICDL), 2011 IEEE International Conference on, 2011, pp. 1-7.

[3] F. Abtahi and I. Fasel, "Deep belief nets as function approximators for reinforcement learning," RBM, vol. 2, p. h3, 2011.

[4] S. Lange, M. Riedmiller, and A. Voigtlander, "Autonomous reinforcement learning on raw visual input data in a real world application," in Neural Networks (IJCNN), The 2012 International Joint Conference on, 2012, pp. 1-8.

[5]  I. Arel, "Deep Reinforcement Learning as Foundation for Artificial General Intelligence," in Theoretical Foundations of Artificial General Intelligence, ed: Springer, 2012, pp. 89-102.

[6] V. Mnih, K. Kavukcuoglu, D. Silver, A. Graves, I. Antonoglou, D. Wierstra, et al., "Playing Atari with deep reinforcement learning,"arXiv preprint arXiv:1312.5602, 2013.

[7] V. Mnih, K. Kavukcuoglu, D. Silver, A. A. Rusu, J. Veness, M. G. Bellemare, et al., "Human-level control through deep reinforcement learning," Nature, vol. 518(7540), pp. 529-533, 2015.

repost: Deep Reinforcement Learning的更多相关文章

  1. (转) Playing FPS games with deep reinforcement learning

    Playing FPS games with deep reinforcement learning 博文转自:https://blog.acolyer.org/2016/11/23/playing- ...

  2. (zhuan) Deep Reinforcement Learning Papers

    Deep Reinforcement Learning Papers A list of recent papers regarding deep reinforcement learning. Th ...

  3. Learning Roadmap of Deep Reinforcement Learning

    1. 知乎上关于DQN入门的系列文章 1.1 DQN 从入门到放弃 DQN 从入门到放弃1 DQN与增强学习 DQN 从入门到放弃2 增强学习与MDP DQN 从入门到放弃3 价值函数与Bellman ...

  4. (转) Deep Reinforcement Learning: Playing a Racing Game

    Byte Tank Posts Archive Deep Reinforcement Learning: Playing a Racing Game OCT 6TH, 2016 Agent playi ...

  5. 论文笔记之:Dueling Network Architectures for Deep Reinforcement Learning

    Dueling Network Architectures for Deep Reinforcement Learning ICML 2016 Best Paper 摘要:本文的贡献点主要是在 DQN ...

  6. getting started with building a ROS simulation platform for Deep Reinforcement Learning

    Apparently, this ongoing work is to make a preparation for futural research on Deep Reinforcement Le ...

  7. (转) Deep Reinforcement Learning: Pong from Pixels

    Andrej Karpathy blog About Hacker's guide to Neural Networks Deep Reinforcement Learning: Pong from ...

  8. 论文笔记之:Asynchronous Methods for Deep Reinforcement Learning

    Asynchronous Methods for Deep Reinforcement Learning ICML 2016 深度强化学习最近被人发现貌似不太稳定,有人提出很多改善的方法,这些方法有很 ...

  9. 论文笔记之:Deep Reinforcement Learning with Double Q-learning

    Deep Reinforcement Learning with Double Q-learning Google DeepMind Abstract 主流的 Q-learning 算法过高的估计在特 ...

随机推荐

  1. 文本编辑器vim——三种模式、显示行号、插入命令、行快速定位、行内定位

    1.vim的三种工作模式: (1)利用vim命令新建文件: 点击entre键执行命令后,开始向文本中输入想要写入的内容: (2)命令行模式(ESC): 不管用户处于何种模式,只要单击Esc键,即可进入 ...

  2. npm link 的用法

    npm link 的用法 先到对应的自定义包下执行 npm link 会读取对应的 packagejson 中的名称 然后到对应的目录下执行 npm link your/own/npm/name 就会 ...

  3. 【AtCoder】 ARC 101

    link 搬来了曾经的题解 C-Candles 题意:数轴上有一些点,从原点开始移动到达这些点中的任意\(K\)个所需要的最短总路程 \(K\)个点必然是一个区间,枚举最左边的就行了 #include ...

  4. python:UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)

    # 将默认编码设为utf-8 # 否则会报错: # UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ...

  5. 分析WordPress数据表之分类标签表(功能篇)

    数据表分析 wp_terms(分类标签表) 表字段如下:term_id(分类或标签ID)name(分类或标签名)slug(别名)term_group(分类标签组,我想应该是用于排序分组) wp_ter ...

  6. [技术博客]django连接mysql数据库的方法及部分问题的解决方法

    配置机器介绍 操作系统:Ubuntu 18.04.2 LTS 64位 python版本:Python 3.6.7 Django版本:Django 2.2 MySql版本:5.7.26 数据库选择 我们 ...

  7. [技术博客]nginx 部署 apt 源

    [技术博客] nginx 部署 apt 源 出于各种各样的原因, 有时需要自己配置apt源, 比如发布自己编写的debian软件包, 内网中只有一台电脑可以访问外网,或者在本地配置自己的apt源.我们 ...

  8. 运行时异常RuntimeException捕获的小测试

    public class ExceptionTest { public static void main(String[] args) throws InterruptedException { ne ...

  9. 自动创建Kibana索引

    参考 https://www.cnblogs.com/dance-walter/p/10471950.html 参考 https://www.elastic.co/guide/en/kibana/cu ...

  10. 修改Jupyter Notebook默认文件存储路径(已安装Anaconda)

    https://blog.csdn.net/weixin_44799144/article/details/91823079 修改Jupyter Notebook默认文件存储路径首先,安装好Anaco ...