首页>参考读物>计算机科学与技术>软件与程序设计

边做边学深度强化学习:PyTorch程序设计实践
作者 : [日] 小川雄太郎(Yutaro ogawa) 著
译者 : 申富饶 于僡 译
出版日期 : 2020-04-14
ISBN : 978-7-111-65014-0
定价 : 69.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 226
开本 : 16
原书名 : つくりながら学ぶ!深層強化学習 PyTorchによる実践プログラミング
原出版社: 株式会社マイナビ出版(Mynavi Publishing Corporation)
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

Pytorch是基于python且具备强大GPU加速的张量和动态神经网络,更是Python中优先的深度学习框架,它使用强大的 GPU 能力,提供最大的灵活性和速度。本书指导读者以Pytorch为工具在Python中学习深层强化学习(DQN)。主要内容包括:强化学习概述及分类、强化学习的算法和实施方法、在Pytorch中实施深度规划与实现。、“实施深层强化学习DQN”、理解并实施新的深层强化学习方法(Double-DQN、Dueling Network、Prioritized Experience Replay、A3C、A2C)。

图书特色

图书前言

本书的目标
近年来,我们常常听到强化学习和深度强化学习等词语。但是,实际上真正实现强化学习的并不多。目前正处于第三次人工智能热潮中,深度学习方面已经出版了大量书籍。然而,大多数关于强化学习和深度强化学习的书籍都是相关研究人员的学术成果。学术性书籍强调理论,倾向于公式和证明,实现代码往往很少。对于非研究人员来说,通过阅读这类书籍来理解强化学习和深度强化学习存在着较大的障碍。
因此,本书面向的不是研究者而是普通大众,旨在让读者在实践中理解强化学习和深度强化学习。本书强调算法的具体实现,通过给出大量代码并对其进行解释和说明,来帮助读者更好地学习。书中所有的代码都可以下载。在阅读本书时请实现相关程序,通过完成实际代码来学习。
强化学习和深度强化学习主要用于两个目的—机器人等控制规则的构建以及围棋、将棋等对战游戏的策略构建。本书涉及控制规则的构建,但没有实现围棋等对战游戏。然而,本书所讲述的基本内容对那些想要为对战游戏制定策略的人也是有用的。
读者所需的先验知识
本书以对强化学习和深度强化学习感兴趣,但不了解其细节和实现方法的读者为对象。阅读本书需要以下三方面的知识:
1)能够理解if语句、for语句。
2)能够自己定义方法(函数)。
3)会执行向量和矩阵的乘法运算。
换句话说,本书试图以更容易理解的方式进行讲解,读者具备一些基本的编程经验和基本的线性代数知识即可顺利学习。本书使用Python作为编程语言来实现相关程序,即使对Python不熟悉的读者也能轻松理解本书内容。但是,由于篇幅的限制,本书没有解释Python的所有基本细节,如果你是Python初学者,请参考网上的信息和Python的入门书籍。
本书的实现代码和运行环境
可以从作者的GitHub或Mynavi出版社的出版支持页面下载本书的实现代码。

本书的运行环境如下所示。我们使用PyTorch作为深度学习的框架,采用的是在2018年4月底发布的0.4.0版本。第7章使用亚马逊的云服务,通过GPU服务器来进行计算。计算所需时间大约3小时,费用为500日元或更少,所以尝试运行所需的费用并不高。

上架指导

计算机\程序设计

封底文字

PyTorch是基于Python的张量和动态神经网络,作为近年来较为火爆的深度学习框架,它使用强大的GPU能力,提供极高的灵活性和速度。
本书面向普通大众,指导读者以PyTorch为工具,在Python中实践深度强化学习。读者只需要具备一些基本的编程经验和基本的线性代数知识即可读懂书中内容,通过实现具体程序来掌握深度强化学习的相关知识。
本书内容:
介绍监督学习、非监督学习和强化学习的基本知识。
通过走迷宫任务介绍三种不同的算法(策略梯度法、Sarsa和Q学习)。
使用Anaconda设置本地PC,在倒立摆任务中实现强化学习。
使用PyTorch实现MNIST手写数字分类任务。
实现深度强化学习的最基本算法DQN。
解释继DQN之后提出的新的深度强化学习技术(DDQN、Dueling Network、优先经验回放和A2C等)。
使用GPU与AWS构建深度学习环境,采用A2C再现消砖块游戏。

译者序

强化学习,特别是深度强化学习,作为时下最热门的人工智能技术之一,掀起了一轮技术热潮,从棋类到电子游戏再到无人驾驶,深度强化学习都有巨大的应用价值,可以说,时下几乎所有人工智能技术的研究者或使用者都听说过“深度强化学习”。然而,深度强化学习往往具有较高的学习门槛,国内现有的许多书籍侧重于介绍深度强化学习的理论,对读者在概率论、线性代数、计算机科学等方面有较高的要求。
本书最大的特点在于讲解深度强化学习算法时尽可能地做到化繁为简,书中没有复杂的符号逻辑,也没有大篇幅的公式推导,旨在让读者快速上手,使用深度强化学习方法解决问题。本书不是机械地介绍深度强化学习领域中的知名论文、公式,而是以代码为主导进行讲解,同时辅以详尽的注释、图解及代码运行结果,力求读者在看懂代码的基础上深入理解算法,在理解算法后能够熟练使用。
如果你对深度学习、强化学习了解不多,那么这本书将很好地帮助你入门。本书从最简单的走迷宫问题出发,介绍强化学习的概念、术语、目的,用Python实现简单的强化学习方法;接着通过倒立摆任务由浅及深地从基本的强化学习方法走向深度强化学习方法,不知不觉中,读者就掌握了DQN(一篇轰动一时的Nature论文提出的算法),以及在DQN后提出的一些其他优秀方法;最后在电子游戏“消砖块”中,本书带领读者在云平台中进行全面的实践。正所谓实践出真知,读者在阅读本书时一定要勤于动手,这就好比学习再多的烹饪理论也不一定能做出美味的菜肴,但亲自下厨房做一道菜就一定能品尝出饭菜中的酸甜苦辣。希望读者能从本书中有所收获!
本书翻译过程中得到了王绪冬、高可攀的大力协助,特别感谢他们在翻译和校对过程中付出的努力。此外,也特别感谢机械工业出版社的王颖、唐晓琳编辑等在本书翻译和出版过程中提供的帮助和辛劳。

申富饶,于僡
2020.3.7

图书目录

译者序
前言
第1章 强化学习概述 1
1.1 机器学习的分类(监督学习、非监督学习、强化学习) 1
1.2 强化学习、深度强化学习的历史 6
1.3 深度强化学习的应用实例 11
参考文献 14
第2章 在走迷宫任务中实现强化学习 16
2.1 Try Jupyter的使用方法 16
2.2 迷宫和智能体的实现 23
2.3 策略迭代法的实现 31
2.4 价值迭代法的术语整理 41
2.5 Sarsa的实现 46
2.6 实现Q学习 52
参考文献 57
第3章 在倒立摆任务中实现强化学习 59
3.1 在本地PC上准备强化学习的实现和执行环境 59
3.2 倒立摆任务“CartPole” 64
3.3 由多变量连续值表示的状态的表格表示 69
3.4 Q学习的实现 72
参考文献 80
第4章 使用PyTorch实现深度学习 81
4.1 神经网络和深度学习的历史 81
4.2 深度学习的计算方法 89
4.3 使用PyTorch实现MNIST手写数字分类任务 94
参考文献 107
第5章 深度强化学习DQN的实现 108
5.1 深度强化学习DQN(深度Q网络)的说明 108
5.2 实现DQN的四个要点 111
5.3 实现DQN(上) 113
5.4 实现DQN(下) 123
参考文献 127
第6章 实现深度强化学习的改进版 128
6.1 深度强化学习算法发展图 128
6.2 DDQN的实现 132
6.3 Dueling Network的实现 141
6.4 优先经验回放的实现 145
6.5 A2C的实现 157
参考文献 168
第7章 在AWS GPU环境中实现消砖块游戏 169
7.1 消砖块游戏“Breakout”的描述 169
7.2 准备在AWS上使用GPU所需要的深度学习执行环境 174
7.3 学习Breakout的四个关键思想 187
7.4 A2C的实现(上) 193
7.5 A2C的实现(下) 203
参考文献 212
后记 214

教学资源推荐
作者: 刘燕君,刘振安,孙忱
作者: 谢满德 刘文强 张国萍 编著
作者: [美]保罗·C. 乔根森(Paul C. Jorgensen) 著
参考读物推荐
作者: David Carlson
作者: 冯庆东 李根福 等编著
作者: 杜文 编著