作者 |
董豪 |
丛书名 |
出版社 |
电子工业出版社 |
ISBN |
9787121411885 |
简要 |
简介 |
内容简介书籍计算机书籍 深度强化学习结合深度学习与强化学习算法各自的优势解决复杂的决策任务。得益于 DeepMind AlphaGo 和 OpenAI Five 成功的案例,深度强化学习受到大量的关注,相关技术广泛应用于不同的领域。本书分为三大部分,覆盖深度强化学习的全部内容。部分介绍深度学习和强化学习的入门知识、一些非常基础的深度强化学习算法及其实现细节,包括第 1~6 章。第二部分是一些精选的深度强化学习研究题目,这些内容对准备开展深度强化学习研究的读者非常有用,包括第 7~12 章。第三部分提供了丰富的应用案例,包括 AlphaZero、让机器人学习跑步等,包括第 13~17 章。本书是为计算机科学专业背景、希望从零开始学习深度强化学习并开展研究课题和实践项目的学生准备的。本书也适合没有很强的机器学习背景、但是希望快速学习深度强化学习并将其应用到具体产品中的软件工程师阅读。 |
目录 |
基础部分 1 第 1 章 深度学习入门 2 1.1 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.2 感知器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.3 多层感知器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.4 激活函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.5 损失函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.6 优化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 1.6.1 梯度下降和误差的反向传播 . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 1.6.2 随机梯度下降和自适应学习率 . . . . . . . . . . . . . . . . . . . . . . . . . . 15 1.6.3 超参数筛选 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 1.7 正则化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 1.7.1 过拟合 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 1.7.2 权重衰减 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 1.7.3 Dropout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 1.7.4 批标准化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 1.7.5 其他缓和过拟合的方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 1.8 卷积神经网络 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 1.9 循环神经网络 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 1.10 深度学习的实现样例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 1.10.1 张量和梯度 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 1.10.2 定义模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 1.10.3 自定义层 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 1.10.4 多层感知器:MNIST 数据集上的图像分类 . . . . . . . . . . . . . . . . . . . 33 1.10.5 卷积神经网络:CIFAR-10 数据集上的图像分类 . . . . . . . . . . . . . . . . 35 1.10.6 序列到序列模型:聊天机器人 . . . . . . . . . . . . . . . . . . . . . . . . . . 36 第 2 章 强化学习入门 43 2.1 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 2.2 在线预测和在线学习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 2.2.1 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 2.2.2 随机多臂赌博机 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 2.2.3 对抗多臂赌博机 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 2.2.4 上下文赌博机 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 2.3 马尔可夫过程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 2.3.1 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 2.3.2 马尔可夫奖励过程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 2.3.3 马尔可夫决策过程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 2.3.4 贝尔曼方程和最优性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 2.3.5 其他重要概念 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 2.4 动态规划 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 2.4.1 策略迭代 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 2.4.2 价值迭代 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 2.4.3 其他 DPs:异步 DP、近似 DP 和实时 DP . . . . . . . . . . . . . . . . . . . 68 2.5 蒙特卡罗 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 2.5.1 蒙特卡罗预测 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 2.5.2 蒙特卡罗控制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 2.5.3 增量蒙特卡罗 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 2.6 时间差分学习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 2.6.1 时间差分预测 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 2.6.2 Sarsa:在线策略 TD 控制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 2.6.3 Q-Learning:离线策略 TD 控制 . . . . . . . . . . . . . . . . . . . . . . . . . 80 2.7 策略优化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 2.7.1 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 2.7.2 基于价值的优化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 2.7.3 基于策略的优化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 2.7.4 结合基于策略和基于价值的方法 . . . . . . . . . . . . . . . . . . . . . . . . 105 第 3 章 强化学习算法分类 110 3.1 基于模型的方法和无模型的方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 3.2 基于价值的方法和基于策略的方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 3.3 蒙特卡罗方法和时间差分方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 3.4 在线策略方法和离线策略方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 第 4 章 深度 Q 网络 119 4.1 Sarsa 和 Q-Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 4.2 为什么使用深度学习: 价值函数逼近 . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 4.3 DQN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 4.4 Double DQN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 4.5 Dueling DQN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 4.6 优先经验回放 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 4.7 其他改进内容:多步学习、噪声网络和值分布强化学习 . . . . . . . . . . . . . . . 128 4.8 DQN 代码实例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 第 5 章 策略梯度 146 5.1 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 5.2 REINFORCE:初版策略梯度 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 5.3 Actor-Critic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 5.4 生成对抗网络和 Actor-Critic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 5.5 同步优势 Actor-Critic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 5.6 异步优势 Actor-Critic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 5.7 信赖域策略优化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 5.8 近端策略优化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 5.9 使用 Kronecker 因子化信赖域的 Actor-Critic . . . . . . . . . . . . . . . . . . . . . . 159 5.10 策略梯度代码例子 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 5.10.1 相关的 Gym 环境 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 5.10.2 REINFORCE: Atari Pong 和 CartPole-V0 . . . . . . . . . . . . . . . . . . . . . 165 5.10.3 AC: CartPole-V0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 5.10.4 A3C: BipedalWalker-v2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 5.10.5 TRPO: Pendulum-V0 . . . . . . . |