强化学习精要 核心算法与TensorFlow实现出版时间:2018内容简介 《强化学习精要:核心算法与TensorFlow 实现》用通俗幽默的语言深入浅出地介绍了强化学习的基本算法与代码实现,为读者构建了一个完整的强化学习知识体系,同时介绍了这些算法的具体实现方式。从基本的马尔可夫决策过程,到各种复杂的强化学习算法,读者都可以从本书中学习到。本书除了介绍这些算法的原理,还深入分析了算法之间的内在联系,可以帮助读者举一反三,掌握算法精髓。书中介绍的代码可以帮助读者快速将算法应用到实践中。 《强化学习精要:核心算法与TensorFlow 实现》内容翔实,语言简洁易懂,既适合零基础的人员入门学习,也适合相关科研人员研究参考。目录第一部分强化学习入门与基础知识1 引言21.1 强化学习的概念 21.1.1 巴浦洛夫的狗 31.1.2 俄罗斯方块 41.2 站在被实验者的角度看问题 51.3 强化学习效果的评估 81.3.1 不断试错 81.3.2 看重长期回报 81.4 强化学习与监督学习 91.4.1 强化学习与监督学习的本质 91.4.2 模仿学习 101.5 强化学习的实验环境 111.5.1 Arcade Learning Environment 121.5.2 Box2D 121.5.3 MuJoCo 131.5.4 Gym 141.6 本书的主要内容 151.7 参考资料 162 数学与机器学习基础172.1 线性代数基础 172.2 对称矩阵的性质 212.2.1 特征值与特征向量 212.2.2 对称矩阵的特征值和特征向量 222.2.3 对称矩阵的对角化 232.3 概率论 242.3.1 概率与分布 242.3.2 最大似然估计 272.4 重要性采样 292.5 信息论基础 332.6 KL 散度 352.7 凸函数及其性质 392.8 机器学习的基本概念 412.9 机器学习的目标函数 432.10 总结 453 优化算法473.1 梯度下降法 473.1.1 什么是梯度下降法 473.1.2 优雅的步长 483.2 动量算法 533.3 共轭梯度法 593.3.1 精妙的约束 593.3.2 共轭 603.3.3 优化步长的确定 633.3.4 Gram-Schmidt 方法 643.3.5 共轭梯度 653.4 自然梯度法 693.4.1 基本概念 693.4.2 Fisher 信息矩阵 713.4.3 自然梯度法目标公式 763.5 总结 774 TensorFlow 入门784.1 TensorFlow 的基本使用方法 784.2 TensorFlow 原理介绍 824.2.1 创建变量的scope 834.2.2 创建一个Variable 背后的故事 894.2.3 运算操作 944.2.4 tf.gradients 964.2.5 Optimizer 1024.2.6 TensorFlow 的反向传播技巧 1064.2.7 arg_scope 的使用 1094.3 TensorFlow 的分布式训练 1134.3.1 基于MPI 的数据并行模型 1144.3.2 MPI 的实现:mpi_adam 1214.4 基于TensorFlow 实现经典网络结构 1224.4.1 多层感知器 1224.4.2 卷积神经网络 1244.4.3 循环神经网络 1264.5 总结 1294.6 参考资料 1295 Gym 与Baselines 1305.1 Gym 1305.1.1 Gym 的安装 1305.1.2 Gym 的基本使用方法 1325.1.3 利用Gym 框架实现一个经典的棋类游戏:蛇棋 1345.2 Baselines 1385.2.1 Baselines 中的Python 3 新特性 1395.2.2 tf_util 1415.2.3 对Gym 平台的扩展 1425.3 总结 1446 强化学习基本算法1456.1 马尔可夫决策过程 1456.1.1 MDP:策略与环境模型 1456.1.2 值函数与Bellman 公式 1476.1.3 “表格式”Agent 1516.2 策略迭代 1536.2.1 策略迭代法 1536.2.2 策略提升的证明 1596.2.3 策略迭代的效果展示 1606.3 价值迭代 1626.3.1 N 轮策略迭代 1626.3.2 从动态规划的角度谈价值迭代 1656.3.3 价值迭代的实现 1676.4 泛化迭代 1686.4.1 两个极端 1686.4.2 广义策略迭代法 1696.4.3 泛化迭代的实现 1706.5 总结 171第二部分最优价值算法7 Q-Learning 基础1737.1 状态转移概率:从掌握到放弃 1737.2 蒙特卡罗方法 1747.3 探索与利用 1787.4 蒙特卡罗的方差问题 1817.5 时序差分法与SARSA 1837.6 Q-Learning 1867.7 Q-Learning 的收敛性分析 1897.8 从表格形式到价值模型 1937.9 Deep Q Network 1957.10 总结 2027.11 参考资料 2028 DQN 的改进算法2038.1 Double Q-Learning 2038.2 Priority Replay Buffer 2048.3 Dueling DQN 2098.4 解决DQN 的冷启动问题 2118.5 Distributional DQN 2148.5.1 输出价值分布 2148.5.2 分布的更新 2168.6 Noisy Network 2188.7 Rainbow 2218.7.1 Rainbow 的模型特点 2218.7.2 Deep Q Network 的实现 2238.8 总结 2278.9 参考资料 227第三部分基于策略梯度的算法9 基于策略梯度的算法2299.1 策略梯度法 2299.1.1 算法推导 2309.1.2 算法分析 2339.1.3 算法改进 2349.2 Actor-Critic 算法 2369.2.1 降低算法的方差 2369.2.2 A3C 算法 2389.2.3 A2C 算法实战 2409.3 总结 2439.4 参考资料 24310 使策略单调提升的优化算法24410.1 TRPO 24410.1.1 策略的差距 24510.1.2 策略提升的目标公式 24710.1.3 TRPO 的目标定义 24810.1.4 自然梯度法求解 25110.1.5 TRPO 的实现 25410.2 GAE 25610.2.1 GAE 的公式定义 25610.2.2 基于GAE 和TRPO 的值函数优化 25910.2.3 GAE 的实现 26010.3 PPO 26110.3.1 PPO 介绍 26110.3.2 PPO 算法实践 26310.4 总结 26410.5 参考资料 26411 Off-Policy 策略梯度法26511.1 Retrace 26611.1.1 Retrace 的基本概念 26611.1.2 Retrace 的算法实现 26711.2 ACER 27011.2.1 Off-Policy Actor-Critic 27011.2.2 ACER 算法 27211.2.3 ACER 的实现 27611.3 DPG 27911.3.1 连续空间的策略优化 27911.3.2 策略模型参数的一致性 28011.3.3 DDPG 算法 28311.3.4 DDPG 的实现 28611.4 总结 28911.5 参考资料 289第四部分其他强化学习算法12 稀疏回报的求解方法29112.1 稀疏回报的困难 29112.2 层次强化学习 29412.3 HER 29812.3.1 渐进式学习 29912.3.2 HER 的实现 30112.4 总结 30412.5 参考资料 30413 Model-based 方法30513.1 AlphaZero 30513.1.1 围棋游戏 30513.1.2 Alpha-Beta 树 30713.1.3 MCTS 30913.1.4 策略价值模型 31213.1.5 模型的对决 31613.2 iLQR 31613.2.1 线性模型的求解法 31713.2.2 非线性模型的解法 32213.2.3 iLQR 的实现 32513.3 总结 32813.4 参考资料 328第五部分反向强化学习14 反向强化学习入门33014.1 基本概念 33014.2 从最优策略求解回报 33214.2.1 求解回报的目标函数 33214.2.2 目标函数的约束 33414.3 求解线性规划 33514.3.1 线性规划的求解过程 33514.3.2 实际案例 33714.4 无限状态下的求解 33814.5 从样本中学习 34214.6 总结 34414.7 参考资料 34415 反向强化学习算法2.0 34515.1 最大熵模型 34515.1.1 指数家族 34615.1.2 最大熵模型的推导 34915.1.3 最大熵模型的实现 35415.2 最大熵反向强化学习 35615.3 GAIL 36115.3.1 GAN 的基本概念 36115.3.2 GAN 的训练分析 36315.4 GAIL 实现 36715.5 总结 37015.6 参考资料 370 上一篇: 深入理解TensorFlow 架构设计与实现原理 下一篇: 深入理解Elasticsearch 原书第2版