作品简介

近年来,机器学习受到了人们的广泛关注。本书面向普通大众,指导读者在Python(基于Chainer和OpenAI Gym)中实践深度强化学习。读者只需要具备一些基本的编程经验即可读懂书中内容,通过实现具体程序来掌握深度强化学习的相关知识。

本书内容:

介绍深度学习、强化学习和深度强化学习的基本知识。

通过多种实际对战游戏(如太空侵略者、吃豆人)来介绍算法,如ε-greedy算法。

使用Anaconda设置本地PC,在倒立摆和老鼠学习问题中实现深度强化学习。

使用Python实现MNIST手写数字分类任务。

实现深度强化学习的基本算法DQN。

详解继DQN之后提出的新的深度强化学习技术(DDQN、PER-DQN、DDPG和A3C等)。

牧野浩二(Koji Makino)

东京工业大学博士,现任山梨大学大学院综合研究部工学领域的助理教授。迄今为止,一直在使用地球模拟器进行纳米碳研究,是使用Arduino进行机器人模型实验的负责人,具有从微机到超级计算机的各种编程经验。主要致力于研究人类的隐性知识,并且正在进行从测量仪器开发到数据分析的连贯研究。

西崎博光(Hiromitsu Nishizaki)

丰桥技术科学大学博士,现为山梨大学大学院综合研究部工学领域的副教授。主要致力于语音信息处理的研究,尤其是语音识别和语音文档检索的研究(即从大规模语音数据库中找到相应语音的研究)。

作品目录

  • 关于本书
  • 作者简介
  • 译者简介
  • 译者序
  • 前言
  • 第1章引言
  • 1.1 深度强化学习可以做什么
  • 1.2 本书的结构
  • 1.3 框架:Chainer和ChainerRL
  • 1.4 Python的运行检查
  • 1.5 Chainer的安装
  • 1.6 ChainerRL的安装
  • 1.7 模拟器:OpenAI Gym
  • 专栏
  • 第2章深度学习
  • 2.1 什么是深度学习
  • 2.2 神经网络
  • 2.3 基于Chainer的神经网络
  • 2.3.1 Chainer与神经网络的对应
  • 2.3.2 Chainer程序
  • 2.3.3 参数设置
  • 2.3.4 创建数据
  • 2.3.5 定义神经网络
  • 2.3.6 各种声明
  • 2.3.7 显示训练状态
  • 2.3.8 保存训练状态
  • 2.3.9 执行训练
  • 2.4 与其他神经网络的对应
  • 2.4.1 感知器
  • 2.4.2 5层神经网络(深度学习)
  • 2.4.3 计算输入中的1的数量
  • 2.5 基于深度神经网络的手写数字识别
  • 2.5.1 手写数字的输入格式
  • 2.5.2 深度神经网络的结构
  • 2.5.3 8×8的手写数字数据
  • 2.6 基于卷积神经网络的手写数字识别
  • 2.6.1 卷积
  • 2.6.2 激活函数
  • 2.6.3 池化
  • 2.6.4 执行
  • 2.7 一些技巧
  • 2.7.1 读取文件数据
  • 2.7.2 使用训练模型
  • 2.7.3 重启训练
  • 2.7.4 检查权重
  • 2.7.5 从文件中读取手写数字
  • 第3章强化学习
  • 3.1 什么是强化学习
  • 3.1.1 有监督学习
  • 3.1.2 无监督学习
  • 3.1.3 半监督学习
  • 3.2 强化学习原理
  • 3.3 通过简单的示例来学习
  • 3.4 应用到Q学习问题中
  • 3.4.1 状态
  • 3.4.2 行动
  • 3.4.3 奖励
  • 3.4.4 Q值
  • 3.5 使用Python进行训练
  • 3.5.1 运行程序
  • 3.5.2 说明程序
  • 3.6 基于OpenAI Gym的倒立摆
  • 3.6.1 运行程序
  • 3.6.2 说明程序
  • 3.7 如何保存和加载Q值
  • 第4章深度强化学习
  • 4.1 什么是深度强化学习
  • 4.2 对于老鼠学习问题的应用
  • 4.2.1 运行程序
  • 4.2.2 说明程序
  • 4.2.3 如何保存和读取智能体模型
  • 4.3 基于OpenAI Gym的倒立摆
  • 4.3.1 运行程序
  • 4.3.2 说明程序
  • 4.4 基于OpenAI Gym的太空侵略者
  • 4.5 基于OpenAI Gym的颠球
  • 4.5.1 运行程序
  • 4.5.2 说明程序
  • 4.6 对战游戏
  • 4.6.1 黑白棋
  • 4.6.2 训练方法
  • 4.6.3 变更盘面
  • 4.6.4 黑白棋实体
  • 4.6.5 如何与人类对战
  • 4.6.6 卷积神经网络的应用
  • 4.7 使用物理引擎进行模拟
  • 4.7.1 物理引擎
  • 4.7.2 运行程序
  • 4.7.3 说明程序
  • 4.8 物理引擎在颠球问题中的应用
  • 4.9 物理引擎在倒立摆问题中的应用
  • 4.10 物理引擎在机械臂问题中的应用
  • 4.11 使用其他深度强化学习方法
  • 4.11.1 深度强化学习的类型
  • 4.11.2 将训练方法更改为DDQN
  • 4.11.3 将训练方法更改为PER-DQN
  • 4.11.4 将训练方法更改为DDPG
  • 4.11.5 将训练方法更改为A3C
  • 第5章实际环境中的应用
  • 5.1 使用摄像机观察环境(MNIST)
  • 5.1.1 摄像机设置
  • 5.1.2 通过卷积神经网络对摄像机图像进行分类
  • 5.1.3 使用图像大小为28×28的手写数字进行训练
  • 5.2 实际环境中的老鼠学习问题
  • 问题设置
  • 5.3 使用Raspberry Pi处理老鼠学习问题
  • 5.3.1 环境构建
  • 5.3.2 以输入输出为重点的简化
  • 5.3.3 使用摄像机测量环境
  • 5.4 使用Arduino + PC处理老鼠学习问题
  • 5.4.1 环境构建
  • 5.4.2 以输入输出为重点的简化
  • 5.4.3 使用摄像机测量环境
  • 5.5 使用Raspberry Pi + Arduino处理老鼠学习问题
  • 5.6 结语
  • 附录
  • A.1 VirtualBox的安装
  • A.1.1 复制和粘贴
  • A.1.2 共享文件夹
  • A.2 Raspberry Pi的设置
  • A.2.1 操作系统安装
  • A.2.2 程序的传输设置
  • A.2.3 RC伺服电动机的设置
  • A.3 安装Arduino
  • A.4 GPU的使用
  • A.4.1 在安装CuPy之前
  • A.4.2 CuPy的使用方法
  • A.5 使用Intel Math Kernel Library安装NumPy
展开全部