大家都知道,深度强化学习(Deep Reinforcement Learning,DRL)就是应用了神经网络的强化学习。而强化学习是机器学习的一个分支,研究如何基于对环境的观测做出决策,以最大化长期回报。从 20 世纪 80 年代至今,强化学习一直是机器学习领域的热门研究方向。大家耳熟能详的经典强化学习方法——Q 学习、REINFORCE、actor-critic——就是 20 世纪 80 年代提出的,一直沿用至今。而经验回放、SARSA、蒙特卡洛树搜索等重要工作是 20 世纪 90 年代和 21 世纪初提出的。最近十年,随着深度学习的发展,强化学习也取得了突破性的进展,并诞生了深度强化学习这一分支。
2012年,卷积神经网络 AlexNet 打赢了 ImageNet 挑战赛,开启了深度学习时代。2013 年诞生了首个深度强化学习方法——深度 Q 网络(DQN),它在 Atari 电子游戏上的表现遥遥领先已有的机器学习方法,但跟人类仍有较大差距。2015 年,改进版的 DQN 在 Atari 电子游戏上的表现大幅领先人类专业玩家,学术界由此认识到了深度强化学习的巨大潜力。2015 年发生了一件更为轰动的事件——AlphaGo 在围棋比赛中以 5:0 击败职业棋手樊麾——这为深度强化学习带来了空前的关注。随后几年深度强化学习取得了许多重要进展,新的方法如雨后春笋般出现,在各种任务上不断刷新纪录。
图片来自:Wired
从尝试做视频到视频意外成为“爆款”
2017 年我在加州大学伯克利分校做博士后的时候,周围的人总在讨论强化学习,甚至 RISELab 正在开发的新一代机器学习系统 Ray 几乎就是为强化学习量身定制的。虽然当时我的研究方向不是强化学习,但我对它很着迷,并下定决心要学会它。我自认为数学功底和自学能力都很强,花点儿时间应该能学会,可我却在实际学习过程中吃尽苦头,花了几年时间才形成完整的强化学习知识体系。
大家都说 Richard Sutton 和他的老师 Andrew Barto 合著的 Reinforcement Learning: An Introduction 是强化学习领域的“圣经”,是初学者必读的书,于是我就从这本书开始入门。可当我读完一大半的时候,发现自己还是听不懂那些研究强化学习的人在说什么,仿佛大家说的“强化学习”与书中所讲的不是一种东西。这时我意识到自己走了弯路,于是及时止损,改读 DQN、DDPG、A3C 等的代码,这回学习效果显著,我逐渐能听懂强化学习的报告了。但靠读代码学习有很大的缺点,知识碎片化严重,我只是略懂具体的一些点,而这些点串不起来。结果就是,我既看不到领域的前沿方向,也读不懂知识背后的原理——感觉自己仍然是个门外汉,没有真正掌握强化学习。
既然没有优质的教材,读代码又过于肤浅,那么可行的路就只有一条——把近几年重要的论文挨个读一遍,把论文里的核心公式推导一遍。这的确是一条正道,通过阅读论文和梳理知识体系,我最终“大彻大悟”——发现深度强化学习的所有方法背后不过就是几个公式的变换而已。读论文虽然是一条正道,但是见效很慢,而且只适合我这样有科研经验的学者,并不适用于初学者。
从视频 Reinforcement Learning 到猫书《深度强化学习》
2020年,我本来计划在大学里再开一门“深度强化学习”的课程,于是花了很多时间仔细梳理这个领域的知识点,做了大量笔记和课件。但后来我打算去工业界发展,只能打消了开新课的念头。只是,长时间精心准备的教学材料就这么浪费了未免太可惜,我心里想:“不如整理出来,写成一本书,或许对初学者很有帮助。”于是,我花三个月整理好了笔记,在 2021 年初发到了 GitHub 上。但这份初稿与我眼中的优质教材还相距甚远。之后,我和我的导师张志华、师弟黎彧君用了一年多的时间对初稿进行修改,到了 2022 年才交付给出版社的编辑。
写作目标:愿你看懂代码、读懂论文、听懂报告
深度强化学习是当前学术界最热门的研究领域之一,而且有潜力在工业界落地应用。然而深度强化学习的数学原理深奥,知识体系和发展脉络复杂,入门的难度远高于机器学习其他分支。即便是我这样精通机器学习的博士,初期的学习进度也异常缓慢,付出相当大的代价才构建了完整的知识体系。本书的价值在于学习它能够避免初学者重复我走过的弯路,不走“从理论到理论”和“看代码学算法”这两个极端。
本书面向的受众是有一定深度学习基础的学生和算法工程师。本书假设读者完全不懂强化学习,但具备深度学习的基础知识,比如优化、目标函数、正则、梯度等基本概念;不熟悉深度学习的技术细节和背后理论,但知晓基本常识,比如神经网络的全连接层、卷积层、sigmoid 激活函数、softmax 激活函数的用途。如果你几乎不懂深度学习,也可以阅读本书,但是在理解上会有一定困难。
本书的目标是解释清楚深度强化学习背后的原理,而非简单地描述算法或推导公式。通过学习本书,读者能在短时间内构建完整的知识体系,避免知识碎片化。预计读者在学完本书之后,能轻松看懂深度强化学习的代码,读懂该领域的论文、听懂学术报告,具备进一步自学和深挖的能力。
这本书为何特别:内容新+真.易懂
前面提到,强化学习最经典的教材非 Reinforcement Learning: An Introduction 莫属。它是学术泰斗 Richard Sutton 和 Andrew Barto 所著,被誉为强化学习的“圣经”。这本书的知识体系完整,但其中很多内容在今天已经不太重要了,而当今最重要的深度强化学习技术却没有囊括其中。如果你是初学者,而有人建议你通过阅读这本书入门,那大概率是在“坑”你,或许他自己压根就没读过这本书。如果你的数学功底够强,咬着牙读完此书,你会发现自己仍然不懂深度强化学习,对最近 10 年的技术突破缺乏基本了解,跟不上学术界的前沿。此书正是当年我入门强化学习读的第一本书,算我当年走过的弯路。如果你有志于做强化学习的科研,不妨先读读我们这本书,之后再读 Sutton 和 Barto 的书补充理论知识。
本书与 Sutton 和 Barto 的书有类似之处,都是从方法和原理出发讲解强化学习,但是本书有三大优势。第一,内容很新,主要内容是最近 10 年的深度强化学习方法,比如 DQN、A3C、TRPO、DDPG、AlphaGo 等技术。第二,力求实用,本书的写作出发点是“有用”且“精简”,剔除了一切不必要的概念和公式,只保留必要的内容,尽量做到每一个章节都值得阅读。第三,清晰易懂,为了让方法和原理容易理解,我们花了大量时间在文字和绘图上,相信本书在“完读率”方面有显著优势。
当前市面上偏重编程实践的教材很多,这类图书通过讲解代码帮助读者入门深度强化学习。从实践出发不失为一条入门的捷径,但这些书欠缺对方法和原理的解释,同时对数学推导采取回避的态度。这也情有可原,毕竟把代码讲解清楚相对容易,而把方法和原理讲解清楚却很困难!本书的独特之处在于系统地讲解深度强化学习,不回避数学原理,而是用通俗的语言和插图将其解释清楚。如果读者对某些深度强化学习方法有不理解之处,相信可以从本书中找到解答。
对于初学者来说,从方法和原理开始入门,或是从编程实践开始入门,都是合理的选择,主要取决于你想要在这个领域挖多深、走多远。如果你的目标是能看懂代码、“会用”深度强化学习,那么从编程实践入门是很好的选择;如果你的目标是深入理解代码背后的原理、看懂前沿论文甚至从事科研工作,那么建议选择本书。
我们三位作者都有博士学位,都是机器学习领域的学者。当我和黎彧君还是学生的时候,就在张志华老师的要求下阅读了超过 10 本机器学习领域的经典教材,我们深知什么样的书是好书。而且我们都有多年的学术写作经验,每个人都在机器学习顶会、顶刊上发表过多篇论文。此外,我和张志华老师都有丰富的教学经验,有能力把复杂的方法和原理解释清楚,在严谨的前提下做到通俗易懂。
根据我的教学和写作经验,教学和写作最大的难点不是“大而全”,而是如何把话说明白,让受众以最小的代价听得懂、记得住。假如只是简单罗列知识点、堆公式、堆代码,那么教学和写作的难度非常小。以我的效率,如果按低标准去备一门课或是写一本书,一个暑假绰绰有余;但从开始整理笔记到最终成书,这本书前后用了两年,投入远大于预期。写这本书的过程中,我的精力主要用于确保内容结构清晰、原理与公式易于理解。为了让模型和数学变得直观,我原创了 140 多张简洁精美的插图——有时绘制一张插图就要花费几个小时。回过头来,很难想象,我曾经会以如此大的投入写一本书,期待它能最大限度地降低大家入门深度强化学习的门槛。
Hi,你在学 DRL 时遇到过怎样的困难?你是如何克服的呢?
你目前学习的领域有没有遇到和作者王树森老师一样的困难:找不到合适的书?
与本文相关的话题,欢迎留言和大家聊聊!
目前评论及回复功能已开启,我们会从中选出 3 位幸运的小伙伴,包邮送上这本“猫书”,《深度强化学习》你值得拥有哦,快来参与吧!
活动截止日期:2022年12月9日,我会在这天回复中奖的小伙伴哦~
返回搜狐,查看更多
责任编辑: