Pytorch是基于python且具備強大GPU加速的張量和動態(tài)神經(jīng)網(wǎng)絡,更是Python中優(yōu)先的深度學習框架,它使用強大的 GPU 能力,提供*大的靈活性和速度。本書指導讀者以Pytorch為工具在Python中學習深層強化學習(DQN)。主要內(nèi)容包括:強化學習概述及分類、強化學習的算法和實施方法、在Pytorch中實施深度規(guī)劃與實現(xiàn)。、“實施深層強化學習DQN”、理解并實施新的深層強化學習方法(Double-DQN、Dueling Network、Prioritized Experience Replay、A3C、A2C)。
本書的目標
近年來,我們常常聽到強化學習和深度強化學習等詞語。但是,實際上真正實現(xiàn)強化學習的并不多。目前正處于第三次人工智能熱潮中,深度學習方面已經(jīng)出版了大量書籍。然而,大多數(shù)關(guān)于強化學習和深度強化學習的書籍都是相關(guān)研究人員的學術(shù)成果。學術(shù)性書籍強調(diào)理論,傾向于公式和證明,實現(xiàn)代碼往往很少。對于非研究人員來說,通過閱讀這類書籍來理解強化學習和深度強化學習存在著較大的障礙。
因此,本書面向的不是研究者而是普通大眾,旨在讓讀者在實踐中理解強化學習和深度強化學習。本書強調(diào)算法的具體實現(xiàn),通過給出大量代碼并對其進行解釋和說明,來幫助讀者更好地學習。書中所有的代碼都可以下載。在閱讀本書時請實現(xiàn)相關(guān)程序,通過完成實際代碼來學習。
強化學習和深度強化學習主要用于兩個目的—機器人等控制規(guī)則的構(gòu)建以及圍棋、將棋等對戰(zhàn)游戲的策略構(gòu)建。本書涉及控制規(guī)則的構(gòu)建,但沒有實現(xiàn)圍棋等對戰(zhàn)游戲。然而,本書所講述的基本內(nèi)容對那些想要為對戰(zhàn)游戲制定策略的人也是有用的。
讀者所需的先驗知識
本書以對強化學習和深度強化學習感興趣,但不了解其細節(jié)和實現(xiàn)方法的讀者為對象。閱讀本書需要以下三方面的知識:
1)能夠理解if語句、for語句。
2)能夠自己定義方法(函數(shù))。
3)會執(zhí)行向量和矩陣的乘法運算。
換句話說,本書試圖以更容易理解的方式進行講解,讀者具備一些基本的編程經(jīng)驗和基本的線性代數(shù)知識即可順利學習。本書使用Python作為編程語言來實現(xiàn)相關(guān)程序,即使對Python不熟悉的讀者也能輕松理解本書內(nèi)容。但是,由于篇幅的限制,本書沒有解釋Python的所有基本細節(jié),如果你是Python初學者,請參考網(wǎng)上的信息和Python的入門書籍。
本書的實現(xiàn)代碼和運行環(huán)境
可以從作者的GitHub或Mynavi出版社的出版支持頁面下載本書的實現(xiàn)代碼。
本書的運行環(huán)境如下所示。我們使用PyTorch作為深度學習的框架,采用的是在2018年4月底發(fā)布的0.4.0版本。第7章使用亞馬遜的云服務,通過GPU服務器來進行計算。計算所需時間大約3小時,費用為500日元或更少,所以嘗試運行所需的費用并不高。
譯者序
前言
第1章 強化學習概述1
1.1 機器學習的分類(監(jiān)督學習、非監(jiān)督學習、強化學習)1
1.2 強化學習、深度強化學習的歷史6
1.3 深度強化學習的應用實例11
參考文獻14
第2章 在走迷宮任務中實現(xiàn)強化學習16
2.1 Try Jupyter的使用方法16
2.2 迷宮和智能體的實現(xiàn)23
2.3 策略迭代法的實現(xiàn)31
2.4 價值迭代法的術(shù)語整理41
2.5 Sarsa的實現(xiàn)46
2.6 實現(xiàn)Q學習52
參考文獻57
第3章 在倒立擺任務中實現(xiàn)強化學習59
3.1 在本地PC上準備強化學習的實現(xiàn)和執(zhí)行環(huán)境59
3.2 倒立擺任務“CartPole”64
3.3 由多變量連續(xù)值表示的狀態(tài)的表格表示69
3.4 Q學習的實現(xiàn)72
參考文獻80
第4章 使用PyTorch實現(xiàn)深度學習81
4.1 神經(jīng)網(wǎng)絡和深度學習的歷史81
4.2 深度學習的計算方法89
4.3 使用PyTorch實現(xiàn)MNIST手寫數(shù)字分類任務94
參考文獻107
第5章 深度強化學習DQN的實現(xiàn)108
5.1 深度強化學習DQN(深度Q網(wǎng)絡)的說明108
5.2 實現(xiàn)DQN的四個要點111
5.3 實現(xiàn)DQN(上) 113
5.4 實現(xiàn)DQN(下) 123
參考文獻127
第6章 實現(xiàn)深度強化學習的改進版128
6.1 深度強化學習算法發(fā)展圖128
6.2 DDQN的實現(xiàn)132
6.3 Dueling Network的實現(xiàn)141
6.4 優(yōu)先經(jīng)驗回放的實現(xiàn)145
6.5 A2C的實現(xiàn)157
參考文獻168
第7章 在AWS GPU環(huán)境中實現(xiàn)消磚塊游戲169
7.1 消磚塊游戲“Breakout”的描述169
7.2 準備在AWS上使用GPU所需要的深度學習執(zhí)行環(huán)境174
7.3 學習Breakout的四個關(guān)鍵思想187
7.4 A2C的實現(xiàn)(上) 193
7.5 A2C的實現(xiàn)(下) 203
參考文獻212
后記214