深入浅出强化学习:编程实战

深入浅出强化学习:编程实战
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者: , ,
2020-03
ISBN: 9787121367465
定价: 89.00
装帧: 平装
开本: 16开
纸张: 胶版纸
40人买过
  • 《深入浅出强化学习:编程实战》是《深入浅出强化学习:原理入门》的姊妹篇,写作的初衷是通过编程实例帮助那些想要学习强化学习算法的读者更深入、更清楚地理解算法。 
    本书首先介绍马尔可夫决策过程的理论框架,然后介绍基于动态规划的策略迭代算法和值迭代算法,在此基础上分3 篇介绍了目前强化学习算法中最基本的算法。第1 篇讲解基于值函数的强化学习算法,介绍了基于两种策略评估方法(蒙特卡洛策略评估和时间差分策略评估)的强化学习算法,以及如何将函数逼近的方法引入强化学习算法中。第2 篇讲解直接策略搜索方法,介绍了基本的策略梯度方法、AC 方法、PPO 方法和DDPG 算法。第3 篇讲解基于模型的强化学习方法,介绍了基于MPC 的方法、AlphaZero 算法基本原理及在五子棋上的具体实现细节。建议读者根据书中的代码亲自动手编程,并修改程序中的超参数,根据运行结果不断体会算法原理。 

    第0 篇 先导篇 ......... 1 
    1 一个极其简单的强化学习实例 .................................. 2 
    1.1 多臂赌博机 ..................... 2 
    1.1.1 e - greedy策略 .... 3 
    1.1.2 玻尔兹曼策略 ...... 6 
    1.1.3 UCB 策略 ............. 7 
    1.2 多臂赌博机代码实现 ..... 7 
    2 马尔可夫决策过程 .............. 13 
    2.1 从多臂赌博机到马尔可夫决策过程 ............... 13 
    2.2 马尔可夫决策过程代码实现 ........................... 23 
      
    第1 篇 基于值函数的方法 .......................... 31 
    3 基于动态规划的方法 ........... 32 
    3.1 策略迭代与值迭代 ....... 32 
    3.1.1 策略迭代算法原理 ................................ 33 
    3.1.2 值迭代算法原理  35 
    3.2 策略迭代和值迭代的代码实现 ....................... 36 
    3.2.1 鸳鸯环境的修改  36 
    3.2.2 策略迭代算法代码实现 ........................ 37 
    3.2.3 值迭代算法代码实现 ............................ 41 
    4 基于蒙特卡洛的方法 ........... 45 
    4.1 蒙特卡洛算法原理 ....... 46 
    4.2 蒙特卡洛算法的代码实现 ............................... 49 
    4.2.1 环境类的修改和蒙特卡洛算法类的声明 ................................ 49 
    4.2.2 探索初始化蒙特卡洛算法实现 ............ 52 
    4.2.3 同策略蒙特卡洛算法实现 .................... 56 
    5 基于时间差分的方法 ........... 62 
    5.1 从动态规划到时间差分强化学习 ................... 62 
    5.2 时间差分算法代码实现 ................................... 66 
    5.2.1 时间差分算法类的声明 ........................ 66 
    5.2.2 SARSA 算法 ...... 67 
    5.2.3 Q-Learning 算法  70 
    6 基于函数逼近的方法 ........... 74 
    6.1 从表格型强化学习到线性函数逼近强化学习  74 
    6.1.1 表格特征表示 .... 74 
    6.1.2 固定稀疏表示 .... 75 
    6.1.3 参数的训练 ........ 76 
    6.2 基于线性函数逼近的Q-Learning 算法实现 ... 76 
    6.3 非线性函数逼近DQN 算法代码实现 ............. 85 
      
    第2 篇 直接策略搜索的方法 ...................... 95 
    7 策略梯度方法 ..................... 96 
    7.1 算法基本原理及代码架构 ............................... 96 
    7.1.1 策略的表示问题  97 
    7.1.2 随机策略梯度的推导 ............................ 98 
    7.1.3 折扣累积回报 .... 99 
    7.1.4 代码架构 .......... 101 
    7.2 离散动作:CartPole 实例解析及编程实战 ... 103 
    7.2.1 CartPole 简介 ... 103 
    7.2.2 问题分析及MDP 模型 ....................... 104 
    7.2.3 采样类的Python 源码实现 ................. 105 
    7.2.4 策略网络模型分析 .............................. 106 
    7.2.5 策略网络类的Python 源码实现 ......... 108 
    7.2.6 策略网络的训练与测试 ....................... 110 
    7.2.7 用策略梯度法求解Cartpole 的主函数 ................................... 112 
    7.2.8 CartPole 仿真环境开发 ........................ 113 
    7.3 连续动作Pendulum 实例解析及编程实战 .... 117 
    7.3.1 Pendulum 简介 .. 118 
    7.3.2 采样类的Python 源代码实现 .............. 118 
    7.3.3 策略网络模型分析 .............................. 120 
    7.3.4 策略网络类的Python 源码实现 ......... 121 
    7.3.5 策略网络的训练与测试 ...................... 125 
    7.3.6 用策略梯度法求解Pendulum 的主函数 ................................ 126 
    7.3.7 Pendulum 仿真环境开发 ..................... 127 
    8 Actor-Critic 方法 ............... 131 
    8.1 Actor-Critic 原理及代码架构 ......................... 131 
    8.1.1 Actor-Critic 基本原理 .......................... 131 
    8.1.2 Actor-Critic 算法架构 .......................... 133 
    8.2 TD-AC 算法 ................ 133 
    8.2.1 采样类的Python 源码 ......................... 134 
    8.2.2 策略网络的Python 源码 ..................... 135 
    8.2.3 策略训练和测试 .................................. 138 
    8.2.4 主函数及训练效果 .............................. 140 
    8.3 Minibatch-MC-AC 算法 ................................. 141 
    8.3.1 Minibatch-MC-AC 算法框架 .............. 141 
    8.3.2 采样类的Python 源码 ......................... 142 
    8.3.3 策略网络的Python 源码 ..................... 144 
    8.3.4 策略的训练和测试 .............................. 147 
    8.3.5 主函数及训练效果 .............................. 149 
    9 PPO 方法 ......................... 151 
    9.1 PPO 算法基本原理及代码结构 ..................... 151 
    9.2 Python 源码解析 ......... 154 
    9.2.1 采样类 .............. 154 
    9.2.2 策略网络 .......... 156 
    9.2.3 策略的训练和测试 .............................. 159 
    9.2.4 主函数及训练效果 .............................. 160 
    10 DDPG 方法 .................... 163 
    10.1 DDPG 基本原理 ....... 163 
    10.2 Python 源码解析 ....... 167 
    10.2.1 经验缓存器类  167 
    10.2.2 策略网络类 .... 169 
    10.2.3 训练和测试 .... 173 
    10.2.4 主函数及训练效果 ............................ 175 
      
    第3 篇 基于模型的强化学习方法 ............. 177 
    11 基于模型预测控制的强化学习算法 ..................... 178 
    11.1 基于模型的强化学习算法的基本原理 ........ 178 
    11.1.1 神经网络拟合动力学模型 ................ 179 
    11.1.2 模型预测控制  179 
    11.1.3 基于模型的强化学习算法伪代码 .... 180 
    11.2 Python 源码实现及解析 ............................... 181 
    11.2.1 数据收集类 .... 181 
    11.2.2 数据采样类 .... 181 
    11.2.3 动力学网络类  182 
    11.2.4 模型预测控制器类 ............................ 185 
    11.2.5 模型训练和预测函数 ........................ 186 
    11.2.6 主函数 ............ 188 
    12 AlphaZero 原理浅析 ....... 190 
    12.1 从AlphaGo 到AlphaZero ............................ 191 
    12.2 蒙特卡洛树搜索算法 ................................... 196 
    12.2.1 博弈树和极小极大搜索 .................... 196 
    12.2.2 再论多臂老虎机问题 ........................ 198 
    12.2.3 UCT 算法 ....... 200 
    12.3 基于自我对弈的强化学习 ........................... 206 
    12.3.1 基于MCTS 的自我对弈 ................... 206 
    12.3.2 策略价值网络的训练 ........................ 210 
    13 AlphaZero 实战:从零学下五子棋 ...................... 214 
    13.1 构建简易的五子棋环境 ............................... 215 
    13.2 建立整体算法流程 ... 223 
    13.3 实现蒙特卡洛树搜索 ................................... 229 
    13.4 实现策略价值网络 ... 235 
    13.5 训练实验与效果评估 ................................... 240 
      
    附录A PyTorch 入门 ........... 246 
    A.1 PyTorch 基础知识 ...... 246 
    A.1.1 Tensor .............. 246 
    A.1.2 基础操作 ......... 247 
    A.1.3 Tensor 和NumPy array 间的转化 ...... 249 
    A.1.4 Autograd:自动梯度 .......................... 249 
    A.2 PyTorch 中的神经网络 .................................. 250 
    A.2.1 如何定义神经网络 ............................. 251 
    A.2.2 如何训练神经网络 ............................. 254 
    A.2.3 在CIFAR-10 数据集上进行训练和测试 ............................... 256 
    A.2.4 模型的保存和加载 ............................. 259 
    参考文献 ................................ 261 
    后记 ... 263 

     

  • 内容简介:
    《深入浅出强化学习:编程实战》是《深入浅出强化学习:原理入门》的姊妹篇,写作的初衷是通过编程实例帮助那些想要学习强化学习算法的读者更深入、更清楚地理解算法。 
    本书首先介绍马尔可夫决策过程的理论框架,然后介绍基于动态规划的策略迭代算法和值迭代算法,在此基础上分3 篇介绍了目前强化学习算法中最基本的算法。第1 篇讲解基于值函数的强化学习算法,介绍了基于两种策略评估方法(蒙特卡洛策略评估和时间差分策略评估)的强化学习算法,以及如何将函数逼近的方法引入强化学习算法中。第2 篇讲解直接策略搜索方法,介绍了基本的策略梯度方法、AC 方法、PPO 方法和DDPG 算法。第3 篇讲解基于模型的强化学习方法,介绍了基于MPC 的方法、AlphaZero 算法基本原理及在五子棋上的具体实现细节。建议读者根据书中的代码亲自动手编程,并修改程序中的超参数,根据运行结果不断体会算法原理。 

  • 目录:
    第0 篇 先导篇 ......... 1 
    1 一个极其简单的强化学习实例 .................................. 2 
    1.1 多臂赌博机 ..................... 2 
    1.1.1 e - greedy策略 .... 3 
    1.1.2 玻尔兹曼策略 ...... 6 
    1.1.3 UCB 策略 ............. 7 
    1.2 多臂赌博机代码实现 ..... 7 
    2 马尔可夫决策过程 .............. 13 
    2.1 从多臂赌博机到马尔可夫决策过程 ............... 13 
    2.2 马尔可夫决策过程代码实现 ........................... 23 
      
    第1 篇 基于值函数的方法 .......................... 31 
    3 基于动态规划的方法 ........... 32 
    3.1 策略迭代与值迭代 ....... 32 
    3.1.1 策略迭代算法原理 ................................ 33 
    3.1.2 值迭代算法原理  35 
    3.2 策略迭代和值迭代的代码实现 ....................... 36 
    3.2.1 鸳鸯环境的修改  36 
    3.2.2 策略迭代算法代码实现 ........................ 37 
    3.2.3 值迭代算法代码实现 ............................ 41 
    4 基于蒙特卡洛的方法 ........... 45 
    4.1 蒙特卡洛算法原理 ....... 46 
    4.2 蒙特卡洛算法的代码实现 ............................... 49 
    4.2.1 环境类的修改和蒙特卡洛算法类的声明 ................................ 49 
    4.2.2 探索初始化蒙特卡洛算法实现 ............ 52 
    4.2.3 同策略蒙特卡洛算法实现 .................... 56 
    5 基于时间差分的方法 ........... 62 
    5.1 从动态规划到时间差分强化学习 ................... 62 
    5.2 时间差分算法代码实现 ................................... 66 
    5.2.1 时间差分算法类的声明 ........................ 66 
    5.2.2 SARSA 算法 ...... 67 
    5.2.3 Q-Learning 算法  70 
    6 基于函数逼近的方法 ........... 74 
    6.1 从表格型强化学习到线性函数逼近强化学习  74 
    6.1.1 表格特征表示 .... 74 
    6.1.2 固定稀疏表示 .... 75 
    6.1.3 参数的训练 ........ 76 
    6.2 基于线性函数逼近的Q-Learning 算法实现 ... 76 
    6.3 非线性函数逼近DQN 算法代码实现 ............. 85 
      
    第2 篇 直接策略搜索的方法 ...................... 95 
    7 策略梯度方法 ..................... 96 
    7.1 算法基本原理及代码架构 ............................... 96 
    7.1.1 策略的表示问题  97 
    7.1.2 随机策略梯度的推导 ............................ 98 
    7.1.3 折扣累积回报 .... 99 
    7.1.4 代码架构 .......... 101 
    7.2 离散动作:CartPole 实例解析及编程实战 ... 103 
    7.2.1 CartPole 简介 ... 103 
    7.2.2 问题分析及MDP 模型 ....................... 104 
    7.2.3 采样类的Python 源码实现 ................. 105 
    7.2.4 策略网络模型分析 .............................. 106 
    7.2.5 策略网络类的Python 源码实现 ......... 108 
    7.2.6 策略网络的训练与测试 ....................... 110 
    7.2.7 用策略梯度法求解Cartpole 的主函数 ................................... 112 
    7.2.8 CartPole 仿真环境开发 ........................ 113 
    7.3 连续动作Pendulum 实例解析及编程实战 .... 117 
    7.3.1 Pendulum 简介 .. 118 
    7.3.2 采样类的Python 源代码实现 .............. 118 
    7.3.3 策略网络模型分析 .............................. 120 
    7.3.4 策略网络类的Python 源码实现 ......... 121 
    7.3.5 策略网络的训练与测试 ...................... 125 
    7.3.6 用策略梯度法求解Pendulum 的主函数 ................................ 126 
    7.3.7 Pendulum 仿真环境开发 ..................... 127 
    8 Actor-Critic 方法 ............... 131 
    8.1 Actor-Critic 原理及代码架构 ......................... 131 
    8.1.1 Actor-Critic 基本原理 .......................... 131 
    8.1.2 Actor-Critic 算法架构 .......................... 133 
    8.2 TD-AC 算法 ................ 133 
    8.2.1 采样类的Python 源码 ......................... 134 
    8.2.2 策略网络的Python 源码 ..................... 135 
    8.2.3 策略训练和测试 .................................. 138 
    8.2.4 主函数及训练效果 .............................. 140 
    8.3 Minibatch-MC-AC 算法 ................................. 141 
    8.3.1 Minibatch-MC-AC 算法框架 .............. 141 
    8.3.2 采样类的Python 源码 ......................... 142 
    8.3.3 策略网络的Python 源码 ..................... 144 
    8.3.4 策略的训练和测试 .............................. 147 
    8.3.5 主函数及训练效果 .............................. 149 
    9 PPO 方法 ......................... 151 
    9.1 PPO 算法基本原理及代码结构 ..................... 151 
    9.2 Python 源码解析 ......... 154 
    9.2.1 采样类 .............. 154 
    9.2.2 策略网络 .......... 156 
    9.2.3 策略的训练和测试 .............................. 159 
    9.2.4 主函数及训练效果 .............................. 160 
    10 DDPG 方法 .................... 163 
    10.1 DDPG 基本原理 ....... 163 
    10.2 Python 源码解析 ....... 167 
    10.2.1 经验缓存器类  167 
    10.2.2 策略网络类 .... 169 
    10.2.3 训练和测试 .... 173 
    10.2.4 主函数及训练效果 ............................ 175 
      
    第3 篇 基于模型的强化学习方法 ............. 177 
    11 基于模型预测控制的强化学习算法 ..................... 178 
    11.1 基于模型的强化学习算法的基本原理 ........ 178 
    11.1.1 神经网络拟合动力学模型 ................ 179 
    11.1.2 模型预测控制  179 
    11.1.3 基于模型的强化学习算法伪代码 .... 180 
    11.2 Python 源码实现及解析 ............................... 181 
    11.2.1 数据收集类 .... 181 
    11.2.2 数据采样类 .... 181 
    11.2.3 动力学网络类  182 
    11.2.4 模型预测控制器类 ............................ 185 
    11.2.5 模型训练和预测函数 ........................ 186 
    11.2.6 主函数 ............ 188 
    12 AlphaZero 原理浅析 ....... 190 
    12.1 从AlphaGo 到AlphaZero ............................ 191 
    12.2 蒙特卡洛树搜索算法 ................................... 196 
    12.2.1 博弈树和极小极大搜索 .................... 196 
    12.2.2 再论多臂老虎机问题 ........................ 198 
    12.2.3 UCT 算法 ....... 200 
    12.3 基于自我对弈的强化学习 ........................... 206 
    12.3.1 基于MCTS 的自我对弈 ................... 206 
    12.3.2 策略价值网络的训练 ........................ 210 
    13 AlphaZero 实战:从零学下五子棋 ...................... 214 
    13.1 构建简易的五子棋环境 ............................... 215 
    13.2 建立整体算法流程 ... 223 
    13.3 实现蒙特卡洛树搜索 ................................... 229 
    13.4 实现策略价值网络 ... 235 
    13.5 训练实验与效果评估 ................................... 240 
      
    附录A PyTorch 入门 ........... 246 
    A.1 PyTorch 基础知识 ...... 246 
    A.1.1 Tensor .............. 246 
    A.1.2 基础操作 ......... 247 
    A.1.3 Tensor 和NumPy array 间的转化 ...... 249 
    A.1.4 Autograd:自动梯度 .......................... 249 
    A.2 PyTorch 中的神经网络 .................................. 250 
    A.2.1 如何定义神经网络 ............................. 251 
    A.2.2 如何训练神经网络 ............................. 254 
    A.2.3 在CIFAR-10 数据集上进行训练和测试 ............................... 256 
    A.2.4 模型的保存和加载 ............................. 259 
    参考文献 ................................ 261 
    后记 ... 263 

     

查看详情
12
相关图书 / 更多
深入浅出强化学习:编程实战
深入浅出全链路压测
吴骏龙
深入浅出强化学习:编程实战
深入解析Windows操作系统 (第7版)(卷2)
(美)安德里亚·阿列维(Andrea Allievi)
深入浅出强化学习:编程实战
深入理解移动互联网
吴功宜 吴英 编著
深入浅出强化学习:编程实战
深入实施“四个育人”,彰显本科人才培养特色——云南大学本科教育改革与创新优秀论文集
主编唐旭光
深入浅出强化学习:编程实战
深入浅出存储引擎 文小飞
文小飞
深入浅出强化学习:编程实战
深入浅出C语言程序设计(第3版·微课版)
李俊·c;强振平;荣剑;张晴晖;赵毅力;钟丽辉
深入浅出强化学习:编程实战
深入理解物联网 吴功宜 吴英
吴功宜 吴英
深入浅出强化学习:编程实战
深入学习习近平关于科技创新的重要论述
科学技术部编写组 著
深入浅出强化学习:编程实战
深入浅出Spring Boot 3.x
杨开振
深入浅出强化学习:编程实战
深入浅出数字经济
郭全中
深入浅出强化学习:编程实战
深入地心 少儿科普 新华正版
英国尤斯伯恩出版公司
深入浅出强化学习:编程实战
深入理解FFmpeg
刘歧 赵军 杜金房 赵文杰 宋韶颍
您可能感兴趣 / 更多
深入浅出强化学习:编程实战
牦牛高效繁殖技术
郭宪、裴杰、包鹏甲 编
深入浅出强化学习:编程实战
深入浅出强化学习:原理入门
郭宪、方勇纯 著
深入浅出强化学习:编程实战
藏獒饲养管理与疾病防治(第二版)
郭宪、崔泰保 编