【导读】昨天 Google DeepMind在Nature上发表最新论文,介绍了迄今最强最新的版本AlphaGo Zero,不使用人类先验知识,使用纯强化学习,将价值网络和策略网络整合为一个架构,3天训练后就以100比0击败了上一版本的AlphaGo。Alpha Zero的背后核心技术是深度强化学习,为此,专知有幸邀请到叶强博士根据DeepMind AlphaGo的主要研究人员David Silver《深度强化学习》视频公开课进行创作的中文学习笔记,在专知发布推荐给大家!
随着DeepMind公司开发的AlphaGo Zero横空出世,无师自通,其背后应用的强化学习思想受到了广泛关注,也吸引了我想一探究竟为什么强化学习的威力这么大。早在2015年,DeepMind就在youtube上发布了围棋程序master的主要作者David Silver主讲的一套强化学习视频公开课,较为系统、全面地介绍了强化学习的各种思想、实现算法。其一套公开课一共分为十讲,每讲平均为100分钟。其中既包括扎实的理论推导,也有很多有趣的小例子帮助理解,对于理解强化学习来说是一套非常好的教程。我在跟随这套教程学习的过程中一边听讲、一边笔记,最后编写代码实践,终于算是对强化学习的概念终于有了初步的认识,算是入门了吧。为了巩固加深自己的理解,同时也能为后来的学习者提供一些较为系统的中文学习资料,我萌生了把整个公开课系统整理出来的想法。
本学习笔记力求尽可能还原David Silver的视频演讲,力求用通俗的语言、丰富的示例讲解来深入浅出的解释强化学习中的各种概念算法。对于其中重要概念的英文词汇的翻译,力求能尽可能符合其实际含义,同时保留英文原文。限于水平,其中难免有理解偏颇甚至错误的地方,希望同行能够不吝指出,在此先表谢意。
David Silver的这套视频公开课可以在youtube上找到,其链接地址如下:https://www.youtube.com/watch?v=2pWv7GOvuf0&list=PL7-jPKtc4r78-wCZcQn5IqyuWhBZ8fOxT 。不知道国内的视频网站有没有原版视频。同时David也公开了它视频里所使用的讲义pdf,讲义内容与视频内容在某些地方有细微差别,应该是讲义更新些。我把这些转到百度网盘,地址是:https://pan.baidu.com/s/1nvqP7dB。 同样在这个地址还有David在公开课第一讲里推荐阅读的两篇关于强化学习的教材。
目前用于强化学习编程实践的常用手段是使用OpenAI推出的gym库,该库支持python语言。其官方网站在这里: OpenAI Gym: A toolkit for developing and comparing reinforcement learning algorithms。 正如其描述的一样,它是一个开发、比较各种强化学习算法的工具库,提供了不少内置的环境,是学习强化学习不错的一个平台,gym库的一个很大的特点是可以可视化,把强化学习算法的人机交互用动画的形式呈现出来,这比仅依靠数据来分析算法有意思多了。我自己也设计了与gym兼容的、针对讲义内容中提到的格子世界环境类和其它一些有意思的类。
这里还介绍一个网站给大家:Gridworld with Dynamic Programming。它是人工智能领域的青年专家Karpathy用javascript结合d3可视化的几个强化学习的Demo,非常有趣,我也借鉴了不少他的ReinforceJS库中的代码。不过Python将会是我结合公开课进行编码的主要编程语言。在早期,我将在尽可能不适用任何库的情况下实践一些简单的算法思想,在后期,由于涉及到一些函数的近似,需要使用一些深度学习的算法,会使用到Tensorflow或Pytorch。
总体来说,学习强化学习、理解其算法不需要特别深的数学和编程知识,但一定的微积分、矩阵、概率统计知识还是需要的。对于编程来说,Python已经使得编程变得非常容易。相信跟随这套笔记,任何想了解强化学习的人都能对其有比较深刻的理解。
序言就写到这里吧,敬请期待David Silver的《强化学习》学习笔记包括以下:
以及包括也叶博士独家创作的强化学习实践系列!
敬请关注专知公众号,以及专知网站www.zhuanzhi.ai, 第一时间得到的《强化学习》第一讲 简介!
作者简介:
叶强,眼科专家,上海交通大学医学博士,现从事医学+AI相关的研究工作。