目录:
1. 引言
-
专栏知识结构
-
从AlphaGo看深度强化学习
2. 强化学习基础知识
-
强化学习问题
-
马尔科夫决策过程
-
最优价值函数和贝尔曼方程
3. 有模型的强化学习方法
-
价值迭代
-
策略迭代
4. 无模型的强化学习方法
-
蒙特卡洛方法
-
时序差分学习
-
值函数近似
-
策略搜索
5. 实战强化学习算法
-
Q-learning 算法
-
Monte Carlo Policy Gradient 算法
-
Actor Critic 算法
6. 深度强化学习算法
-
Deep Q-Networks(DQN)
-
Deep Deterministic Policy Gradient(DDPG)
7. 专栏小结
DeepMind团队在2013年的神经信息处理系统大会(Conference and Workshop on Neural Information Processing Systems,简称NIPS)上发表了一篇名为 “Playing Atari with Deep Reinforcement Learning”的论文,在这篇论文中,深度强化学习(Deep Reinforcement Learning)被正式提出。在论文中,DeepMind团队提出了Deep Q-Networks(DQN)算法,并且将该算法应用在了7个Atari 2600游戏中,希望让程序通过自己学习,去玩Atari游戏。其中的三个游戏,这个智能程序可以玩得比人类玩家还好!在这之后,DeepMind就被Google收购,再后来就有了那个打败李世石的AlphaGo。
2015年,DeepMind团队在Nature杂志上发表了一篇文章名为“Human-level control through deep reinforcement learning”的论文,在这篇论文中,他们提出了DQN算法的改进版本,他们将改进的算法应用到49种不同的Atari 2600游戏中,并且其中的一半实现了超过人类玩家的性能。现在,深度强化学习已经成为了人工智能(Artificial Intelligence,简称AI)领域最前沿的研究方向,在各个应用领域也是备受推崇,如同David Silver认为的那样,未来的人工智能一定是深度学习(Deep Learning)和强化学习(Reinforcement Learning)的结合。
在本专栏内容里,我们首先介绍一下强化学习的基础知识,接着介绍几种强化学习算法,并实现用强化学习算法去玩几个入门级的小游戏,最后介绍种深度强化学习算法。
1 引言
1.1 本专栏知识结构
近年来,强化学习的应用和研究越来越受到大家的关注,强化学习和深度学习一样,都是机器学习研究的重要分支,纵观强化学习的发展,它有着自己的一套理论和方法,尤其将深度学习和强化学习结合之后,其内容则被更加丰富了。虽然目前强化学习已经逐渐应用于人工智能、任务调度以及工业控制等领域,并展现出了其潜在的巨大应用价值,但是由于现实环境的复杂性,导致仍然有很多问题需要解决。
本专栏是一本实战类的书籍,所以不便花大量的篇幅去介绍强化学习的理论知识,在本专栏的前两节内容里,我们会简单的介绍一下强化学习的基础知识;在第三节和第四节内容里,我们会学习一些最基础的强化学习算法,帮助读者快速入门;第五节内容是三个强化学习算法的项目实战,通过几个小的项目帮助读者加深对算法的理解;第六节内容里会结合实战项目介绍三个深度强化学习算法,实现这三个深度强化学习算法是以前面所有内容为基础的;另外,如果读者有兴趣深入研究强化学习和深度强化学习的知识,推荐读者去学习本专栏小结里给出的推荐学习资料。本专栏主要内容结构如下:
图1 本专栏主要内容结构框架
1.2 从AlphaGo看深度强化学习
2016年上半年,李世石和AlphaGo(关于AlphaGo的更多信息以及最新进展,可以访问DeepMind的官方网站https://deepmind.com/)的“人机大战”掀起了一波“人工智能”的浪潮,也引起了大家对于“人工智能”的热烈讨论。虽然真正意义上的“人工智能”离我们人类还有很远,但是 AlphaGo的成功已经是一个不小的进步。在本小节的内容里,我们借助AlphaGo的例子带着读者一起粗略的了解一下,什么是深度强化学习。
要想搞清楚什么是深度强化学习,我们还得先了解一下什么是强化学习。一个强化学习问题通常包涵如下几个要素:
-
动作空间(Action space):A
-
状态空间(State space):S
-
奖励(Reward):R
-
状态转移概率矩阵(Transition):P
强化学习问题中有一个主体,我们称之为智能体(agent),例如AlphaGo就是一个智能主体,我们也可以认为智能主体就是指我们的计算机。动作空间(Action space)指的是智能主体可以采取的所有合法动作的集合,对AlphaGo来说,这个动作空间就是它能采取的所有合法的落子情况。对于AlphaGo来说&