内容推荐 强化学习是三种基本机器学习范式之一,与监督学习和无监督学习并驾齐驱。强化学习是一种自我进化的机器学习类型,它使我们更接近于实现真正的人工智能(AI)。强化学习是机器学习的一个分支,其中学习是通过与环境交互来进行的。强化学习是面向目标的学习,不教学习者采取什么行动,相反,学习者从其行为的结果中学习。从早年的AlphaGo到最近的ChatGPT等人工智能产品表明,强化学习已成为人工智能研究中最活跃的领域之一。 没有实例做背景的概念是没有生命力的,没有实践支撑的算法是学不会的。本书试图通过各种类型的实例来介绍强化学习的各个方面,尽量避免因分类理念而造成的麻烦。使用本书时最好先看本书1.1节和1.2节的一些例子,明白这些例子要做些什么,不必完全明白其中使用的代码。然后浏览1.7节的例子,这些例子中的问题是后面要解决的,因此需要先有些印象。在此之后,大致看看1.3~1.6节的知识性内容,即使不能够马上理解这些内容,也没有关系,但要尽量掌握第2章关于马尔可夫决策过程的理论知识,如果觉得理解起来困难,可以结合第3章中的各种更加具体的强化学习方法及具体例子的编程,还可以回顾第2章及第1章的有关内容。这种在实践和理论(方法)之间反复相互促进的方式是学好强化学习的关键。最后3章包含了关于Python、PyTorch的内容及一些数学知识。这些内容读者可根据需要来学习或参考。 本书是一本面向希望从头开始学习强化学习的数据科学类专业(包括统计类专业)的师生、实际工作者、机器学习开发人员和深度学习爱好者等广大读者的强化学习入门书籍。 作者简介 吴喜之,北京大学数学力学系本科,美国北卡罗莱纳大学统计博士。中国人民大学统计学院教授,博士生导师。曾在美国加利福尼亚大学、北卡罗来纳大学以及南开大学、北京大学等多所著名学府执教。 目录 第一部分 强化学习基础与实践 第1章 引言 1.1 从迷宫问题谈起 1.1.1 人类和动物所面对的迷宫问题 1.1.2 迷宫的说明性例子 1.1.3 例1.1:奖励矩阵 1.1.4 例1.1:训练以得到关于状态和行动的奖励:Q矩阵 1.1.5 例1.1:使用Q矩阵来得到最优行动(路径) 1.1.6 例1.1:把代码组合成class 1.2 热身:井字游戏* 1.2.1 两个真人的简单井字游戏 1.2.2 人和机器的井字游戏的强化学习实践 1.2.3 井字游戏的强化学习代码解释 1.2.4 整个训练过程 1.2.5 使用训练后的模型做人机游戏 1.2.6 1.2.1节代码 1.2.7 附录:1.2.3节人和机器的井字游戏代码 1.3 强化学习的基本概念 1.4 马尔可夫决策过程的要素 1.5 作为目标的奖励 1.6 探索与开发的权衡 1.6.1 探索与开发 1.6.2 强化学习中的优化和其他学科的区别 1.7 本书将会讨论和运算的一些例子 1.7.1 例1.3格子路径问题 1.7.2 例1.4出租车问题 1.7.3 例1.5推车杆问题 1.7.4 例1.6倒立摆问题 1.7.5 例1.7多臂老虎机问题 1.7.6 例1.7和其他例子(例1.3、例1.5及例1.6)的区别 第2章 马尔可夫决策过程和动态规划 2.1 马尔可夫决策过程简介 2.1.1 马尔可夫性 2.1.2 策略 2.1.3 作为回报期望的价值函数 2.1.4 通过例 1.3 格子路径问题理解本节概念 2.2 动态规划 2.2.1 动态规划简介 2.2.2 Bellman方程 2.2.3 最优策略和最优价值函数 2.3 强化学习基本方法概述 2.3.1 代理与环境的互动 2.3.2 策略迭代:策略评估和策略改进 2.3.3 价值迭代 2.3.4 策略迭代与价值迭代比较 2.3.5 异步动态规划 2.3.6 广义策略迭代 2.3.7 策略梯度 2.3.8 off-policy, on-policy和offline RL 2.4 蒙特卡罗抽样 2.4.1 MC策略评估 2.4.2 MC状态-行动值的估计 2.4.3 on-policy:Q价值的MC估计 2.4.4 off-policy:MC预测 2.4.5 MC的策略梯度 2.5 和本章概念相关的例子 2.5.1 例1.3格子路径问题使用Bellman方程做价值迭代 2.5.2 例1.3格子路径问题的TD函数 第3章 各种机器学习算法及实例 3.1 暂时差(TD)简介 3.1.1 TD、DP和MC算法的比较 3.1.2 TD方法的特点 3.1.3 TD(0)方法的延伸 3.2 TD评估及策略改进 3.2.1 SARSA (on-policy) 3.2.2 Q学习 (off-policy) 3.2.3 加倍Q学习 (off-policy) 3.3 函数逼近及深度学习算法 3.3.1 基于价值和策略的函数逼近 3.3.2 深度Q学习 3.3.3 TD:演员-批评者(AC)架构 3.3.4 A2C算法步骤 3.3.5 A3C算法 3.3.6 DDPG算法 3.3.7 ES算法 3.3.8 PPO算法 3.3.9 SAC算法 3.4 用第1章的例子理解本章算法 3.4.1 例1.3格子路径问题:SARSA 3.4.2 例1.4出租车问题:SARSA 3.4.3 例1.3格子路径问题:加倍Q学 3.4.4 例1.5推车杆问题:深度Q学习 3.4.5 例1.5推车杆问题:A3C 3.4.6 例1.6倒立摆问题:DDPG 3.4.7 例1.5推车杆问题:ES 3.4.8 例1.5推车杆问题:PPO-Clip 3.4.9 例1.6倒立摆问题:SAC 第二部分:软件及一些数学知识 第4章 Python基础 4.1 引言 4.2 安装 4.2.1 安装及开始体验 4.2.2 运行Notebook 4.3 基本模块的编程 4.4 Numpy模块 4.5 Pandas模块 4.6 Matplotlib模块 4.7 Python 的类——面向对象编程简介 4.7.1 类的基本结构 4.7.2 计算最小二乘回归的例子 4.7.3 子类 第5章 PyTorch与深度学习 5.1 作为机器学习一部分的深度学习 5.2 PyTorch 简介 5.3 神经网络简介 5.3.1 神经网络概述 5.3.2 梯度下降法 5.3.3 深度神经网络的PyTorch表示 5.4 深度学习的步骤 5.4.1 定义神经网络 5.4.2 转换数据成训练需要的格式 5.4.3 训练并评估结果 第6章 回顾一些数学知识* 6.1 条件概率和条件期望 6.2 范数和收缩 6.3 线性代数 6.3.1 特征值和特征向量 6.3.2 随机矩阵 6.4 马尔可夫决策过程 6.4.1 马尔可夫链和马尔可夫决策过程 6.4.2 策略 6.4.3 关于时间视界的优化 6.5 Bellman方程 6.5.1 有折扣无限视界问题的Bellman问题 6.5.2 无折扣无限视界问题的Bellman问题 6.6 动态规划 6.6.1 价值迭代 6.6.2 策略迭代 |