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. CLR Exception---E0434F4D

    什么是CLR Exception---E0434F4D 就是公共语言运行时(CLR)异常,异常代码为0xE0434F4D.因此任何托管异常,如NullReferenceException.invali ...

  2. diffy 方便的bug 以及流量测试系统

    diffy 是twiiter 开源的流量以及bug 查找系统 参考使用图 几点说明 使用diffy我们需要三个角色 candidate instance 候选实例,运行新的代码 primary ins ...

  3. cf 1179 C

    目录 A B C A 模拟出A不是最大值的情况,存起来. 最多有n个.当A为最大值的时候,后面n-1个数开始循环. 查询分两种情况讨论就行了 #include <bits/stdc++.h> ...

  4. web前端开发高级

    前端高效开发框架技术与应用 Vue 基础Vue 框架简介 MVX 模式介绍Vue 框架概述如何使用 Vue.js 基础语法 实例对象生命周期模板语法计算属性Methods 方法 渲染 列表渲染条件渲染 ...

  5. 第08组 Alpha冲刺(3/6)

    队名:955 组长博客:https://www.cnblogs.com/cclong/p/11872693.html 作业博客:https://edu.cnblogs.com/campus/fzu/S ...

  6. FZU Monthly-201906 tutorial

    FZU Monthly-201906 tutorial 题目(难度递增) easy easy-medium medium medium-hard hard 思维难度 AE B DG CF H A. X ...

  7. EventHandler

    表示将处理不包含事件数据的事件的方法 作用:这句话的意思就是把这两个事放在一起了,意思就是叫你吃完饭了喊我一声.我委托你吃完饭了,喊我一声.这样我就不用过一会就来看一下你吃完了没有了,已经委托你了.

  8. abp中使用同步方法调用异步方法

    var result= AsyncHelper.RunSync(()=>{   return  _service.GetUserAsync();   });

  9. R3300L Android相关的记录

    在寻找高版本Android固件的过程中遇到一个Android6.0的固件, 刷上去之后发现没有Root. 因为原发布者设置了收费的QQ群, 固件开机图上就是QQ群号, 满以为交了钱之后应该能有Root ...

  10. Data truncation: Out of range value for column 'quanity' at row 问题解决方案

    由于之前在自己电脑上搭建了mysql 5.6的数据库,但是在服务器上搭建的是mysql 5.7的环境,在运行过程中出现了如下错误: Data truncation: Out of range valu ...