Python 深度強化學習 : 基於 Chainer 和 OpenAI Gym

[日]牧野 浩二(Koji Makino),[日]西崎 博光(Hiromitsu Nishizaki) 申富饒//於僡

買這商品的人也買了...

商品描述

近年來,機器學習受到了人們的廣泛關注。
本書面向普通大眾,指導讀者在Python(基於Chainer和OpenAI Gym)中實踐深度強化學習。
讀者只需要具備一些基本的編程經驗即可讀懂書中內容,通過實現具體程序來掌握深度強化學習的相關知識。
本書內容: 介紹深度學習、強化學習和深度強化學習的基本知識。
 通過多種實際對戰遊戲(如太空侵略者、吃豆人)來介紹算法,如ε-greedy算法。
使用Anaconda設置本地PC,在倒立擺和老鼠學習問題中實現深度強化學習。
 使用Python實現MNIST手寫數字分類任務。實現深度強化學習的基本算法DQN。
 詳解繼DQN之後提出的新的深度強化學習技術(DDQN、PER-DQN、DDPG和A3C等)。

作者簡介

Hiromitsu Nishizaki

豐橋技術科學大學博士,現為山梨大學大學院綜合研究部工學領域的副教授。
主要致力於語音信息處理的研究,尤其是語音識別和語音文檔檢索的研究
(即從大規模語音數據庫中找到相應語音的研究)。

目錄大綱

譯者序
前言
第1章 引言  1
1.1 深度強化學習可以做什麼  1
1.2 本書的結構  4
1.3 框架:Chainer和ChainerRL  6
1.4 Python的運行檢查  6
1.5 Chainer的安裝  9
1.6 ChainerRL的安裝  12
1.7 模擬器:OpenAI Gym  14

第2章 深度學習  17
2.1 什麼是深度學習  17
2.2 神經網絡  18
2.3 基於Chainer的神經網絡  21
2.3.1 Chainer與神經網絡的對應  24
2.3.2 Chainer程序  25
2.3.3 參數設置  26
2.3.4 創建數據  27
2.3.5 定義神經網絡  27
2.3.6 各種聲明  28
2.3.7 顯示訓練狀態  28
2.3.8 保存訓練狀態  31
2.3.9 執行訓練  32
2.4 與其他神經網絡的對應  32
2.4.1 感知器  32
2.4.2 5層神經網絡(深度學習)  33
2.4.3 計算輸入中的1的數量  34
2.5 基於深度神經網絡的手寫數字識別  35
2.5.1 手寫數字的輸入格式  36
2.5.2 深度神經網絡的結構  39
2.5.3 8×8的手寫數字數據  41
2.6 基於卷積神經網絡的手寫數字識別  43
2.6.1 卷積  45
2.6.2 激活函數  49
2.6.3 池化  49
2.6.4 執行  50
2.7 一些技巧  53
2.7.1 讀取文件數據  54
2.7.2 使用訓練模型  55
2.7.3 重啟訓練  56
2.7.4 檢查權重  56
2.7.5 從文件中讀取手寫數字  57

第3章 強化學習  59
3.1 什麼是強化學習  59
3.1.1 有監督學習  60
3.1.2 無監督學習  60
3.1.3 半監督學習  60
3.2 強化學習原理  61
3.3 通過簡單的示例來學習  61
3.4 應用到Q學習問題中  63
3.4.1 狀態  63
3.4.2 行動  63
3.4.3 獎勵  63
3.4.4 Q值  64
3.5 使用Python進行訓練  67
3.5.1 運行程序  67
3.5.2 說明程序  69
3.6 基於OpenAI Gym的倒立擺  73
3.6.1 運行程序  73
3.6.2 說明程序  74
3.7 如何保存和加載Q值  79

第4章 深度強化學習  81
4.1 什麼是深度強化學習  81
4.2 對於老鼠學習問題的應用  83
4.2.1 運行程序  83
4.2.2 說明程序  85
4.2.3 如何保存和讀取智能體模型  91
4.3 基於OpenAI Gym的倒立擺  91
4.3.1 運行程序  91
4.3.2 說明程序  92
4.4 基於OpenAI Gym的太空侵略者  97
4.5 基於OpenAI Gym的顛球  99
4.5.1 運行程序  101
4.5.2 說明程序  102
4.6 對戰遊戲  109
4.6.1 黑白棋  109
4.6.2 訓練方法  111
4.6.3 變更盤面  121
4.6.4 黑白棋實體  121
4.6.5 如何與人類對戰  123
4.6.6 卷積神經網絡的應用  127
4.7 使用物理引擎進行模擬  128
4.7.1 物理引擎  129
4.7.2 運行程序  130
4.7.3 說明程序  131
4.8 物理引擎在顛球問題中的應用  132
4.9 物理引擎在倒立擺問題中的應用  140
4.10 物理引擎在機械臂問題中的應用  144
4.11 使用其他深度強化學習方法  151
4.11.1 深度強化學習的類型  151
4.11.2 將訓練方法更改為DDQN  153
4.11.3 將訓練方法更改為PER-DQN  153
4.11.4 將訓練方法更改為DDPG  153
4.11.5 將訓練方法更改為A3C  155

第5章 實際環境中的應用  157
5.1 使用攝像機觀察環境(MNIST)  157
5.1.1 攝像機設置  158
5.1.2 通過卷積神經網絡對攝像機圖像進行分類  160
5.1.3 使用圖像大小為28×28的手寫數字進行訓練  163
5.2 實際環境中的老鼠學習問題  164
5.3 使用Raspberry Pi處理老鼠學習問題  168
5.3.1 環境構建  169
5.3.2 以輸入輸出為重點的簡化  169
5.3.3 使用攝像機測量環境  176
5.4 使用Arduino PC處理老鼠學習問題  181
5.4.1 環境構建  182
5.4.2 以輸入輸出為重點的簡化  185
5.4.3 使用攝像機測量環境  193
5.5 使用Raspberry Pi Arduino處理老鼠學習問題  197
5.6 結語  201
附錄  202