repost: Deep Reinforcement Learning
From:
http://wanghaitao8118.blog.163.com/blog/static/13986977220153811210319/
accessed 2016-03-10
深度强化学习(Deep Reinforcement Learning)的资源
Google的Deep Mind团队2013年在NIPS上发表了一篇牛x闪闪的文章,亮瞎了好多人眼睛,不幸的是我也在其中。前一段时间收集了好多关于这方面的资料,一直躺在收藏夹中,目前正在做一些相关的工作(希望有小伙伴一起交流)。
一、相关文章
- 先给中文的,这篇分析DRL比较客观,推荐指数3星http://www.infoq.com/cn/articles/atari-reinforcement-learning。不过这里面其实也只是说了一个皮毛,真正的要看内容的话还是去看人家论文把
- 纯科普的http://36kr.com/p/220012.html和http://36kr.com/p/217570.html ,两篇都是36kr报道的,算是国内比较有良心的了,推荐指数2星。
看看人家外国人怎么说吧!
- 这个优点类似综述,适合搞学术的人看看,而且还有demo和教程呢!有些视频得FQhttp://nextbigfuture.com/2014/12/deep-learning-and-deep-reinforcement.html。推荐指数5星。
- http://arstechnica.com/science/2015/02/ai-masters-49-atari-2600-games-without-instructions/,这个就是一个科普,有视频,比国内的科普强点儿,推荐指数3星。
- 还有一个overview, 基本上把deep mind文章的重点部分挑出来说了一下,适合有一定ML基础的人去看看,推荐指数3星。http://artent.net/2014/12/10/a-review-of-playing-atari-with-deep-reinforcement-learning/ 。
- Nature上还采访了一个做逆向的深度强化学习的东欧的一个学者科学家,他们还给出了DRL算法的一个缺陷,一个中文翻译的http://www.7huoxing.com/?p=13035 。推荐指数2星,适合科普。
还有很多很多就不一一列举了。
三、相关代码
这部分应该是大家最关心的,我想大部分看到文章的第一想法是代码呢!擦,其实我也是这么想的,谁叫自己的coding能力不够呢!没办法,本人在网上(github.com)深挖了好久,没想到大牛真的好多好多啊!
- 排在第一的当然是google自己公布的代码啊!真是业界良心啊!https://sites.google.com/a/deepmind.com/dqn/ 。可惜注释好少。。。。。是基于Torch 7的代码,本人又硬着头皮学了lua。话说我这几个月我就在和各种脚本语言打交道,都是泪啊!备注,deep mind的git地址https://github.com/deepmind 。话说没有GPU的电脑真心不要跑了,我跑了13个小时才跑了大概1/20~~~建议在ubuntu下面跑,最好版本高一些;
- 然后就是各路人马(大牛们)的逆向工程。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之类的,步骤比较多~不过大牛的学生都是大牛。
- https://github.com/kristjankorjus/Replicating-DeepMind ,这里Kristjankorjus大牛基于convnet的东东,发布了这一代码,也是基于python的,我表示没有跑过,不清楚状况,貌似也要GPU,也要配置一堆库。
- 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上了,有点儿对不起原作者了。
- 也有人用caffe实现了,是个日本人。目前有两个地址,https://github.com/chiggum/AI/tree/master/rl/atari_agent,和https://github.com/muupan/dqn-in-the-caffe 第二个是日本人写的(还真牛)。好多人喜欢用caffe,不过貌似是没有torch 7方便,有一个好处就是直接是C++,效率比较高。不过,这两个程序我都没有跑过,看作者给的结果,挺不错的。
- 上面说的搞逆向的人爱沙尼亚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。
- 还有一些基本都是他们的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.