当前位置: 首页 > news >正文

新书推荐 |《强化学习:原理与Python实现》

新书推荐

《强化学习:原理与Python实现》

点击上图了解及购买

强化学习一线研发人员撰写,涵盖主流、实用强化学习算法与基于TensorFlow 2的Python实现。

视频介绍

编辑推荐

1. 强化学习一线研发人员撰写,涵盖主流强化学习算法和多个综合案例;

2. 在理论基础、算法设计、性能分析等多个角度全面覆盖强化学习的原理,并逐章配套Python代码。

内容简介

本书理论完备,涵盖主流非深度强化学习算法和深度强化学习算法;实战性强,基于Python、Gym、TensorFlow 2等构建,并有AlphaZero等综合案例。全书共12章,主要内容如下。

第1章:介绍强化学习的基础知识与强化学习环境库Gym的使用,并给出完整的编程实例。

第2~9章:介绍强化学习的理论知识。以Markov决策过程为基础模型,覆盖了所有主流强化学习理论和算法,包括资格迹等经典算法和深度确定性梯度策略等深度强化学习算法。所有章节都提供了与算法配套的Python程序,使读者完全掌握强化学习算法的原理与应用。

第10~12章:介绍了多个热门综合案例,包括电动游戏、棋盘游戏和自动驾驶。算法部分涵盖了在《自然》《科学》等权威期刊上发表的多个深度强化学习明星算法,包括AlphaGo的最新改进版AlphaZero。

作者简介

肖智清

强化学习一线研发人员,清华大学工学博士,现就职于全球知名投资银行。擅长概率统计和机器学习,近5年发表SCI/EI论文十余篇,是多个国际性知名期刊和会议审稿人。在国内外多项程序设计和数据科学竞赛上获得冠军。 

目录

前言

第1章 初识强化学习  1

1.1 强化学习及其关键元素  1

1.2 强化学习的应用  3

1.3 智能体/环境接口  4

1.4 强化学习的分类  6

1.4.1 按任务分类  6

1.4.2 按算法分类  7

1.5 如何学习强化学习  8

1.5.1 学习路线  9

1.5.2 学习资源  9

1.6 案例:基于Gym库的智能体/环境交互  9

1.6.1 安装Gym库  10

1.6.2 使用Gym库  10

1.6.3 小车上山  12

1.7 本章小结  14

第2章 Markov决策过程  16

2.1 Markov决策过程模型  16

2.1.1 离散时间Markov决策过程  16

2.1.2 环境与动力  18

2.1.3 智能体与策略  19

2.1.4 奖励、回报与价值函数  19

2.2 Bellman期望方程  21

2.3 最优策略及其性质  25

2.3.1 最优策略与最优价值函数  25

2.3.2 Bellman最优方程  25

2.3.3 用Bellman最优方程求解最优策略  29

2.4 案例:悬崖寻路  31

2.4.1 实验环境使用  31

2.4.2 求解Bellman期望方程  32

2.4.3 求解Bellman最优方程  33

2.5 本章小结  35

第3章 有模型数值迭代  37

3.1 度量空间与压缩映射  37

3.1.1 度量空间及其完备性  37

3.1.2 压缩映射与Bellman算子  38

3.1.3 Banach不动点定理  39

3.2 有模型策略迭代  40

3.2.1 策略评估  40

3.2.2 策略改进  42

3.2.3 策略迭代  44

3.3 有模型价值迭代  45

3.4 动态规划  46

3.4.1 从动态规划看迭代算法  46

3.4.2 异步动态规划  47

3.5 案例:冰面滑行  47

3.5.1 实验环境使用  48

3.5.2 有模型策略迭代求解  49

3.5.3 有模型价值迭代求解  51

3.6 本章小结  52

第4章 回合更新价值迭代  54

4.1 同策回合更新  54

4.1.1 同策回合更新策略评估  54

4.1.2 带起始探索的同策回合更新  58

4.1.3 基于柔性策略的同策回合更新  60

4.2 异策回合更新  62

4.2.1 重要性采样  62

4.2.2 异策回合更新策略评估  64

4.2.3 异策回合更新最优策略求解  65

4.3 案例:21点游戏  66

4.3.1 实验环境使用  66

4.3.2 同策策略评估  67

4.3.3 同策最优策略求解  70

4.3.4 异策策略评估  72

4.3.5 异策最优策略求解  73

4.4 本章小结  74

第5章 时序差分价值迭代  76

5.1 同策时序差分更新  76

5.1.1 时序差分更新策略评估  78

5.1.2 SARSA算法  81

5.1.3 期望SARSA算法  83

5.2 异策时序差分更新  85

5.2.1 基于重要性采样的异策算法  85

5.2.2 Q学习  86

5.2.3 双重Q学习  87

5.3 资格迹  89

5.3.1 λ回报  89

5.3.2 TD(λ)  90

5.4 案例:出租车调度  92

5.4.1 实验环境使用  93

5.4.2 同策时序差分学习调度  94

5.4.3 异策时序差分学习调度  97

5.4.4 资格迹学习调度  99

5.5 本章小结  100

第6章 函数近似方法  101

6.1 函数近似原理  101

6.1.1 随机梯度下降  101

6.1.2 半梯度下降  103

6.1.3 带资格迹的半梯度下降  105

6.2 线性近似  107

6.2.1 精确查找表与线性近似的关系  107

6.2.2 线性最小二乘策略评估  107

6.2.3 线性最小二乘最优策略求解  109

6.3 函数近似的收敛性  109

6.4 深度Q学习  110

6.4.1 经验回放  111

6.4.2 带目标网络的深度Q学习  112

6.4.3 双重深度Q网络  114

6.4.4 对偶深度Q网络  114

6.5 案例:小车上山  115

6.5.1 实验环境使用  116

6.5.2 用线性近似求解最优策略  117

6.5.3 用深度Q学习求解最优策略  120

6.6 本章小结  123

第7章 回合更新策略梯度方法  125

7.1 策略梯度算法的原理  125

7.1.1 函数近似与动作偏好  125

7.1.2 策略梯度定理  126

7.2 同策回合更新策略梯度算法  128

7.2.1 简单的策略梯度算法  128

7.2.2 带基线的简单策略梯度算法  129

7.3 异策回合更新策略梯度算法  131

7.4 策略梯度更新和极大似然估计的关系  132

7.5 案例:车杆平衡  132

7.5.1 同策策略梯度算法求解最优策略  133

7.5.2 异策策略梯度算法求解最优策略  135

7.6 本章小结  137

第8章 执行者/评论者方法  139

8.1 同策执行者/评论者算法  139

8.1.1 动作价值执行者/评论者算法  140

8.1.2 优势执行者/评论者算法  141

8.1.3 带资格迹的执行者/评论者算法  143

8.2 基于代理优势的同策算法  143

8.2.1 代理优势  144

8.2.2 邻近策略优化  145

8.3 信任域算法  146

8.3.1 KL散度  146

8.3.2 信任域  147

8.3.3 自然策略梯度算法  148

8.3.4 信任域策略优化  151

8.3.5 Kronecker因子信任域执行者/评论者算法  152

8.4 重要性采样异策执行者/评论者算法  153

8.4.1 基本的异策算法  154

8.4.2 带经验回放的异策算法  154

8.5 柔性执行者/评论者算法  157

8.5.1 熵  157

8.5.2 奖励工程和带熵的奖励  158

8.5.3 柔性执行者/评论者的网络设计  159

8.6 案例:双节倒立摆  161

8.6.1 同策执行者/评论者算法求解最优策略  162

8.6.2 异策执行者/评论者算法求解最优策略  168

8.7 本章小结  170

第9章 连续动作空间的确定性策略  172

9.1 同策确定性算法  172

9.1.1 策略梯度定理的确定性版本  172

9.1.2 基本的同策确定性执行者/评论者算法  174

9.2 异策确定性算法  176

9.2.1 基本的异策确定性执行者/评论者算法  177

9.2.2 深度确定性策略梯度算法  177

9.2.3 双重延迟深度确定性策略梯度算法  178

9.3 案例:倒立摆的控制  180

9.3.1 用深度确定性策略梯度算法求解  181

9.3.2 用双重延迟深度确定性算法求解  184

9.4 本章小结  187

第10章 综合案例:电动游戏  188

10.1 Atari游戏环境  188

10.1.1 Gym库的完整安装  188

10.1.2 游戏环境使用  190

10.2 基于深度Q学习的游戏AI  191

10.2.1 算法设计  192

10.2.2 智能体的实现  193

10.2.3 智能体的训练和测试  197

10.3 本章小结  198

第11章 综合案例:棋盘游戏  200

11.1 双人确定性棋盘游戏  200

11.1.1 五子棋和井字棋  200

11.1.2 黑白棋  201

11.1.3 围棋  202

11.2 AlphaZero算法  203

11.2.1 回合更新树搜索  203

11.2.2 深度残差网络  206

11.2.3 自我对弈  208

11.2.4 算法流程  210

11.3 棋盘游戏环境boardgame2  210

11.3.1 为Gym库扩展自定义环境  211

11.3.2 boardgame2设计  211

11.3.3 Gym环境接口的实现  214

11.3.4 树搜索接口的实现  216

11.4 AlphaZero算法实现  218

11.4.1 智能体类的实现  218

11.4.2 自我对弈的实现  223

11.4.3 训练智能体  224

11.5 本章小结  225

第12章 综合案例:自动驾驶  226

12.1 AirSim开发环境使用  226

12.1.1 安装和运行AirSim  226

12.1.2 用Python访问AirSim  228

12.2 基于强化学习的自动驾驶  229

12.2.1 为自动驾驶设计强化学习环境  230

12.2.2 智能体设计和实现  235

12.2.3 智能体的训练和测试  237

12.3 本章小结  239

你与世界

只差一个

公众号

相关文章:

  • 智能生产之路(一):从计算机集成制造到精益生产再到工业 4.0
  • 这是一份所有人都适用的DevOps书单
  • 新书推荐 |《TensorFlow机器学习实战指南(原书第2版)》
  • CIC 2019 回顾:行业洞察与数字化转型的未来
  • 新书推荐 |《区块链工程实践:行业解决方案与关键技术》
  • 如何打造高质量的NLP数据集
  • 新书推荐 |《Linux系统安全:纵深防御、安全扫描与入侵检测》
  • 我一个二本大学是如何拿到百度、网易大厂offer的!
  • Java多线程编程核心技术(一)Java多线程技能
  • 新书推荐 |《微信小程序商城开发:界面设计实战》
  • 什么是机器学习?有哪些分类?到底有什么用?终于有人讲明白了
  • 新书推荐 |《数据挖掘导论(原书第2版)》
  • 新书推荐 |《终身机器学习(原书第2版)》
  • 智能生产之路(二):信息物理生产系统的云端控制
  • 混合云发展之路:前景广阔,巨头混战
  • .pyc 想到的一些问题
  • [译] 理解数组在 PHP 内部的实现(给PHP开发者的PHP源码-第四部分)
  • 【剑指offer】让抽象问题具体化
  • CSS相对定位
  • Essential Studio for ASP.NET Web Forms 2017 v2,新增自定义树形网格工具栏
  • IndexedDB
  • JavaScript类型识别
  • Markdown 语法简单说明
  • PHP 的 SAPI 是个什么东西
  • Promise面试题2实现异步串行执行
  • 手机端车牌号码键盘的vue组件
  • 微服务核心架构梳理
  • 微信公众号开发小记——5.python微信红包
  • 物联网链路协议
  • 一个项目push到多个远程Git仓库
  • UI设计初学者应该如何入门?
  • 交换综合实验一
  • ​​​​​​​GitLab 之 GitLab-Runner 安装,配置与问题汇总
  • ​LeetCode解法汇总2670. 找出不同元素数目差数组
  • #13 yum、编译安装与sed命令的使用
  • #pragma data_seg 共享数据区(转)
  • (14)目标检测_SSD训练代码基于pytorch搭建代码
  • (翻译)Entity Framework技巧系列之七 - Tip 26 – 28
  • (翻译)Quartz官方教程——第一课:Quartz入门
  • (九)One-Wire总线-DS18B20
  • (十八)用JAVA编写MP3解码器——迷你播放器
  • (十六)一篇文章学会Java的常用API
  • (十五)Flask覆写wsgi_app函数实现自定义中间件
  • (一)为什么要选择C++
  • (一)硬件制作--从零开始自制linux掌上电脑(F1C200S) <嵌入式项目>
  • .bat批处理(七):PC端从手机内复制文件到本地
  • .net 7 上传文件踩坑
  • .NET Core WebAPI中封装Swagger配置
  • .NET Core6.0 MVC+layui+SqlSugar 简单增删改查
  • .NET/C# 使用反射调用含 ref 或 out 参数的方法
  • @cacheable 是否缓存成功_Spring Cache缓存注解
  • @RequestBody详解:用于获取请求体中的Json格式参数
  • @RequestBody与@ModelAttribute
  • @RunWith注解作用
  • @selector(..)警告提示