本书作者通过阅读大量文献,并对文献做梳理,将教学内容与学生反馈相结合,写成本书。本书面向的对象是有一定机器学习基础的学生,特别是有志从事科研工作的研究生。阅读本书,相当于阅读多篇经典论文,并掌握其中的核心思想和数学原理。本书作者没有照搬论文内容,而是提取论文的主要思想,再按照本书整体思路和结构重新做推导、表述。与原始论文相比,本书在细节方面予以简化、甚至纠正。读者如果发现本书内容在细节上与原始论文有出入,不必感到疑惑,也不必质疑本书的正确性。
现在市面上已有多本强化学习的教材,那么本书与其他教材的区别在哪里呢?传统的强化学习书籍知识体系完整,但其中多数内容在今天已经不太重要,而当今最重要的技术却没有被囊括。较新的深度强化学习教材几乎都偏重编程实践,而对方法和原理的解释比较欠缺,对数学推导采用完全回避的态度;这是情有可原的,因为想把代码讲解清楚容易,而想把方法和原理讲解清楚却很困难。本书的独特之处在于有系统地讲解深度强化学习,不回避数学原理,而是用通俗的语言解释数学原理。为了将方法和原理解释清楚,作者精心制作了超过一百张插图,让模型和数学变得直观。本书尽量剔除一切不必要的概念,只保留最有用的内容,争取做到每一个章节都值得阅读。
为了降低阅读的难度,本书尽量避免一切不必要的数学公式,可是书中仍然有大量的公式。强化学习方法几乎都来自于严格的数学推导,每种方法的本质往往在于一两个数学公式。不完全理解数学公式,不可能彻底深入理解强化学习方法。如果你理解每个公式是怎么来的,那么算法的流程就一目了然。本书不会绕开必要数学公式,但会尽量解释清楚,绝对不会“空降公式”。
本书假设读者完全不懂强化学习,但是要求读者了解机器学习的基础知识,比如优化、目标函数、正则、梯度等基本概念。读者可以不熟悉深度学习的技术细节,但是应当知晓深度学习的“常识”,知道神经网络的全连接层、卷积层、Sigmoid 激活函数、Softmax激活函数的用途。如果读者几乎不懂深度学习,也可以阅读本书,但是会在一定程度上影响阅读和理解。
市面上讲解深度强化学习代码的书籍已经很多,本书就不花大量篇幅讲解编程实现,而是给出伪代码。再者,有的读者熟悉 TensorFlow,而有的读者偏好 PyTorch,一本书没有办法同时照顾两个群体。用TensorFlow 和 PyTorch 讲解深度强化学习的书籍在市面上都能找到,不论读者喜欢哪种,都能找到相应书籍,对本书起补充作用。读者并没有必要阅读讲解源代码的书籍,因为源代码及其讲解都很容易在互联网上搜索到。比如,要是读者想要搜索 DDPG(深度确定策略梯度方法)的 TensorFlow 实现,只需要在互联网上搜索“DDPG+TensorFlow”,就能找到源代码及其讲解。有了本书的基础知识,读者可以轻松看懂源代码。
王树森 2021 年 3 月 9 日