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,这方面的工作基本应该是随着深度学习的爆红最近才兴起的,做这方面的研究的一般都是人工智能领域的大牛。最早(待定)的一篇可以追溯到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的发展就是这个样子,接下来就看看那些个人怎么给呐喊的吧!
 
二、 科学评论
  • 先给中文的,这篇分析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)深挖了好久,没想到大牛真的好多好多啊!

  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. 

转载于:https://www.cnblogs.com/cslxiao/p/5263921.html

你可能感兴趣的:(repost: Deep Reinforcement Learning)