【干货总结】| Deep Reinforcement Learning 深度强化学习
在机器学习中,我们经常会分类为有监督学习和无监督学习,但是尝尝会忽略一个重要的分支,强化学习。有监督学习和无监督学习非常好去区分,学习的目标,有无标签等都是区分标准。如果说监督学习的目标是预测,那么强化学习就是决策,它通过对周围的环境不断的更新状态,给出奖励或者惩罚的措施,来不断调整并给出新的策略。简单来说,就像小时候你在不该吃零食的时间偷吃了零食,你妈妈知道了会对你做出惩罚,那么下一次就不会犯同样的错误,如果遵守规则,那你妈妈兴许会给你一些奖励,最终的目标都是希望你在该吃饭的时候吃饭,该吃零食的时候吃零食,而不是在不合适的时间吃零食。同样,曾经风靡过一段时间的Flappy bird,很多玩家在短时间内达到了高分,是怎么做到的呢?除了非常厉害的玩家是真的自己手动玩的高分,其实很多高分是通过我们用强化学习的方法来训练一个模型,让小鸟自己学习如何不碰到障碍物一直往前飞,获得最高分。此外,大家熟知的Alpha Go,其实也是强化学习训练的模型,不过是深度强化学习。
2013年DeepMind发表了一篇Playing Atari with Deep Reinforcement Learning 文章之后,深度强化学习便慢慢走入人们的视野。后来,在2015年,DeepMind又发表了一篇Human Level Control through Deep Reinforcement Learning,使得深度强化学习得到了广泛的关注,当年涌现了很多学术成果。我们熟知深度强化学习应该在16~17年的时候,尤其是Alpha Go出现后,很多公司和研究人员开始大量关注深度强化学习,并尝试将其应用在各个不同的应用场景。
关于深度强化学习,我整理了一些资料,如果感兴趣的可以学习一下:
【论文】
- 《深度强化学习》英文版(150页),是上一版(70页)的加强版:https://arxiv.org/abs/1810.06339
- 经典书籍:Reinforcement Learning: An Introduction (2nd Edition)
- 论文集,覆盖面比较广,需要一定基础:Reinforcement Learning: State-of-the-Art
- 两个非常全的论文资料集合:
【博客】
- yuxili: https://medium.com/@yuxili
- Guest Post (Part I): Demystifying Deep Reinforcement Learning
- Guest Post (Part II): Deep Reinforcement Learning with Neon
- Blog Post (Part III): Deep Reinforcement Learning with OpenAI Gym
- Andrej Karpathy blog: Deep Reinforcement Learning: Pong from Pixels
【文章】
- 南京大学俞杨博士:强化学习前言(强化学习的完整介绍)https://www.leiphone.com/news/201705/uO8nd09EnR77NBRP.html
【课程】
- 零基础入门:莫烦python:https://morvanzhou.github.io/tutorials/machine-learning/reinforcement-learning/
- David Silver的增强学习课程(有视频和ppt),2015年的,需要一定基础: http://www0.cs.ucl.ac.uk/staff/D.Silver/web/Teaching.html
- 最好的增强学习教材,可以结合David Silver的课程一起看:Sutton & Barto Book: Reinforcement Learning: An Introduction
- 斯坦福CS234:http://web.stanford.edu/class/cs234/index.html
- 伯克利CS294:http://rll.berkeley.edu/deeprlcourse/
- Pieter Abbeel 的AI课程(包含增强学习,使用Pacman实验):Artificial Intelligence
- Pieter Abbeel 的深度增强学习课程:CS 294 Deep Reinforcement Learning, Fall 2015
- Nando de Freitas的深度学习课程 (有视频有ppt有作业):Machine Learning
- Michael Littman的增强学习课程:https://www.udacity.com/course/reinforcement-learning–ud600
- 最新机器人专题课程Penn(2016年开课):Specialization
- Deep Learning Summer School:pptsvideos
【学习网站】
- openAI GYM Reinforcement Learning toolkits: https://gym.openai.com
- 强化学习示例演示:https://qqiang00.github.io/reinforce/javascript/demo_iteration.html
- karpathy的各种强化学习的演示:https://cs.stanford.edu/people/karpathy/reinforcejs/index.html
- MIT的强化学习在线学习网站:http://web.mst.edu/~gosavia/rl_website.html
【Github】
- Awesome-RL: https://github.com/aikorea/awesome-rl
- Flappybird:https://github.com/yenchenlin/DeepLearningFlappyBird
- Deep Reinforcement Learning in Tensorflow:https://github.com/carpedm20/deep-rl-tensorflow
- https://github.com/ShangtongZhang/reinforcement-learning-an-introduction
- GitHub - songrotek/DeepTerrainRL: terrain-adaptive locomotion skills using deep reinforcement learning
- GitHub - songrotek/async-rl: An attempt to reproduce the results of "Asynchronous Methods for Deep Reinforcement Learning" (http://arxiv.org/abs/1602.01783)
- GitHub - songrotek/rllab: rllab is a framework for developing and evaluating reinforcement learning algorithms.
- GitHub - songrotek/DRL-FlappyBird: Playing Flappy Bird Using Deep Reinforcement Learning (Based on Deep Q Learning DQN using Tensorflow)
- GitHub - songrotek/DeepMind-Atari-Deep-Q-Learner: The original code from the DeepMind article + my tweaks
【会议】