强化学习怎么入门?
强化学习(reinforcementlearning,RL)讨论的问题是智能体(agent)怎么在复杂、不确定的环境(environment)中最大化它能获得的奖励。如图1.1所示,强化学习由两部分组成:智能体和环境。在强化学习过程中,智能体与环境一直在交互。智能体在环境中获取某个状态后,它会利用该状态输出一个动作(action),这个动作也称为决策(decision)。然后这个动作会在环境中被执行,环境会根据智能体采取的动作,输出下一个状态以及当前这个动作带来的奖励。智能体的目的就是尽可能多地从环境中获取奖励。
所以,我们认为数学很重要。但正如编辑所指出的那样,在出版界有一个常见的说法,“书中每出现一个公式,读者就减少一半”,这可能确实有几分道理。除非你是整天读、写数学公式的专业数学家,否则在解复杂的数学方程时,必然要费一番功夫。我们想要呈现对深度强化学习严谨的阐述以给读者带来一流的理解,同时又想惠及尽可能多的人,为此采用了自认为是《深度强化学习实战》一个显著特点的工具。事实证明,即使是专业的数学家,也可能对传统的包含大量符号的数学公式感到厌倦。在高等数学一个名为范畴论(categorytheory)的特定分支中,数学家们已经开发出一种名为线图(stringdiagram)的图形语言。线图看起来非常像流程图和电路图,相当直观,但像主要基于希腊和拉丁字母的传统数学符号一样严谨和精确。图1.14所示的是某种线图的一个简单例子,它从宏观上描述了一个包含两层神经网络的线图。机器学习(特别是深度学习)涉及大量的矩阵和向量操作,而线图尤其适合图形化描述这种类型的操作。线图也非常适合描述复杂过程,因为我们可以在不同的抽象层次上描述过程。图1.14的上半部分展示了表示神经网络两个网络层的两个矩形,但我们可以“放大”(深入盒子内部)第一层,以更详细地查看其内部操作,如图1.14下半部分所示。
图1.14包含两层神经网络的线图。从左向右看,上面的线图表示一个神经网络,它接收一个n维的输入向量,并乘以一个n×m的矩阵,然后返回一个m维的向量,最后将非线性激活函数Sigmoid作用于m维向量的每个元素。接下来,新向量以同样的步骤通过第二层,并产生神经网络的最终输出,即一个k维向量
在整本书中,我们将频繁地用线图来阐释从复杂数学方程到深度神经网络架构的所有内容。我们将在第2章描述这种“图形语法”,并在本书其他章节继续完善和创建它。在某些情况下,这种“图形语法”对于我们想要解释的内容来说有点大材小用了,因此我们将采用平铺直叙的表述以及给出Python代码或伪代码的方式加以阐释。大多数情况下,我们还将使用传统的数学符号,以便你能够以某种方式学习基础的数学概念,无论是图表、代码,还是你使用得最多的、普通的数学符号。
深度强化学习从入门到实战就用这《深度强化学习实战》!
本书先介绍深度强化学习的基础知识及相关算法,然后给出多个实战项目,以期让读者可以根据环境的直接反馈对智能体加以调整和改进,提升运用深度强化学习技术解决实际问题的能力。
本书涵盖深度Q网络、策略梯度法、演员-评论家算法、进化算法、Dist-DQN、多智能体强化学习、可解释性强化学习等内容。本书给出的实战项目紧跟深度强化学习技术的发展趋势,且所有项目示例以Jupter Notebook样式给出,便于读者修改代码、观察结果并及时获取经验,能够带给读者交互式的学习体验。
本书适合有一定深度学习和机器学习基础并对强化学习感兴趣的读者阅读。
更多强化学习书籍:
1、Easy RL 强化学习教程
全书主要内容源于3门公开课,并在其基础上进行了一定的原创。比如,为了尽可能地降低阅读门槛,笔者对3门公开课的精华内容进行选取并优化,对所涉及的公式都给出详细的推导过程,对较难理解的知识点进行了重点讲解和强化,以方便读者较为轻松地入门。此外,为了丰富内容,笔者还补充了不少除3门公开课之外的强化学习相关知识。全书共13章,大体上可分为两个部分:第一部分包括第1~3章,介绍强化学习基础知识以及传统强化学习算法;第二部分包括第4~13章,介绍深度强化学习算法及其常见问题的解决方法。第二部分各章相对独立,读者可根据自己的兴趣和时间选择性阅读。
本书在大部分章末设置了原创的关键词、习题和面试题来帮助读者提高和巩固读者对所学知识的清晰度和掌握度。其中,关键词部分总结了对应章节的重点概念,以方便读者高效地回忆并掌握核心内容;习题部分以问答的形式阐述了相应章中出现的知识点,以帮助读者厘清知识脉络;面试题部分的内容源于“大厂”的算法岗面试真题,通过还原真实的面试场景和面试问题,以帮助读者开阔思路,为读者面试理想的岗位助力。此外,笔者认为,强化学习是一个理论与实践相结合的学科,读者不仅要理解其算法背后的数学原理,还要通过上机实践来实现算法。本书配有Python代码实现,可以让读者通过动手实现各种经典的强化学习算法,充分掌握强化学习算法的原理。
2、Joy RL:强化学习实践教程
本书的内容主要基于我们的理论知识与实践经验,并融入了一些原创内容,例如针对策略梯度算法的两种不同的推导版本,以便让读者从不同的角度更好地理解相关知识。全书始终贯穿强化学习实践中的一些核心问题,比如优化值估计的实践技巧、解决探索与利用的平衡等问题。全书的内容编排合理,例如从传统强化学习到深度强化学习过渡的内容中,增加对深度学习基础的总结归纳内容,并对一些应用十分广泛的强化学习算法,如DQN、DDPG以及PPO等算法进行强调,读者可有选择性地阅读。本书除了给出一些简单的配套代码之外,还提供一套“JoyRL”开源框架,以及更多复杂环境实验示例,想要深入了解的读者可自行研究。
本书是继《Easy RL:强化学习教程》(俗称“蘑菇书”)之后,为强化学习的读者专门打造的一本深入实践的全新教程。全书大部分内容基于3位作者的实践经验,涵盖马尔可夫决策过程、动态规划、免模型预测、免模型控制、深度学习基础、DQN算法、DQN算法进阶、策略梯度、Actor-Critic算法、DDPG与TD3算法、PPO算法等内容,旨在帮助读者快速入门强化学习的代码实践,并辅以一套开源代码框架“JoyRL”,便于读者适应业界应用研究风格的代码。
本书适合具有一定编程基础且希望快速进入实践应用阶段的读者阅读。