- 深度強化學習實踐(原書第2版)
- (俄)馬克西姆·拉潘
- 2346字
- 2021-08-18 17:39:15
前言
本書的主題是強化學習(Reinforcement Learning,RL),它是機器學習(Machine Learning,ML)的一個分支,強調如何解決在復雜環境中選擇最優動作時產生的通用且極具挑戰的問題。學習過程僅由獎勵值和從環境中獲得的觀察驅動。該模型非常通用,能應用于多個真實場景,從玩游戲到優化復雜制造過程都能涵蓋。
由于它的靈活性和通用性,RL領域在快速發展的同時,吸引了很多人的關注。其中,既包括試圖改進現有方法或創造新方法的研究人員,也包括專注于用最有效的方式解決問題的從業人員。
寫本書的目的
寫本書的目的是填補RL理論系統和實際應用之間的巨大空白。目前全世界有很多研究活動,基本上每天都有新的相關論文發表,并且有很多深度學習的會議,例如神經信息處理系統(Neural Information Processing Systems,NeurIPS)大會和國際學習表征會議(International Conference on Learning Representations,ICLR)。同時,有好幾個大型研究組織致力于將RL應用于機器人、醫學、多智能體系統等領域。
最新的相關研究資料雖然很容易獲得,卻都過于專業和抽象,難以理解。RL的實踐落地則顯得更為困難,因為將論文中由數學公式堆砌的大量抽象理論轉換成解決實際問題的實現方式并不總是顯而易見的。
這使得一些對該領域感興趣的人很難理解隱含在論文或學術會議背后的方法與思想。雖然針對RL的各個方面有很多非常棒的博客用生動的例子來解釋,但博客的形式限制讓作者們只能闡述一兩種方法,而不是構建一個完整的全景圖來將不同的方法聯系起來。本書就是為了解決這個問題而寫的。
教學方法
本書的另一個關注點是實際應用。每個方法針對非常簡單到非常復雜的情況都進行了實現。我試圖讓例子簡潔易懂,PyTorch的易讀與強大使之成為可能。另外,例子的復雜度是針對RL業余愛好者而設計的,不需要大量的計算資源,比如圖形處理器(GPU)集群或很強大的工作站。我相信,這將使充滿樂趣和令人興奮的RL領域不僅限于研究小組或大型人工智能公司,還可以讓更廣泛的受眾涉足。但畢竟本書有關內容還是“深度”RL,因此強烈建議大家使用GPU。
除了Atari游戲或連續控制問題等RL中一些經典的中等規模例子外,本書還有好幾章(第10、14、15、16和18章)介紹大型項目,說明RL方法能應用到更復雜的環境和任務中。這些例子不是現實場景中的完整項目,但也足以說明,除了精心設計的基準測試外,RL能在更大的范圍內應用。
本書從結構上看分為四個部分,其中第1~4章為第一部分,第5~10章為第二部分,第11~16為第三部分,第17~25章為第四部分。關于本書前三個部分的例子,值得注意的另一件事是我試圖使它們成為獨立的,會完整地顯示所有代碼。有時這會導致代碼片段的重復(例如,大多數方法中的訓練迭代都很相似),但是我認為,讓大家學到想學的函數比刻意避免一些重復更重要,你可以自行跳轉到需要的代碼。本書中的所有例子都能在GitHub上找到,網址為https://github.com/PacktPublishing/Deep-Reinforcement-Learning-Hands-On-Second-Edition。歡迎你來獲取、實驗并貢獻代碼。
讀者對象
本書面向已經有機器學習基礎而想對RL領域進行實踐的讀者。閱讀本書前,讀者應該熟悉Python并且有一定的深度學習和機器學習基礎。具有統計學和概率論知識會大有幫助,但對于理解本書的大部分內容都不是必要的。
本書內容
第1章介紹了RL的思想和模型。
第2章使用開源庫Gym介紹了RL實踐。
第3章概述了PyTorch庫。
第4章用最簡單的RL方法對RL的方法和問題進行了初步介紹。
第5章介紹了基于價值的RL方法。
第6章描述了深度Q-network(DQN),是對基礎的基于價值的方法的擴展,能解決復雜環境下的問題。
第7章描述了PTAN庫,它可以簡化RL方法的實現。
第8章詳細介紹了DQN的最新擴展方法,以提升在復雜環境下的穩定性和收斂性。
第9章概述了使RL代碼加速執行的辦法。
第10章給出了第一個練習項目,重點是將DQN方法應用于股票交易。
第11章介紹了另一類RL方法,即基于策略學習的方法。
第12章描述了RL中使用非常廣泛的方法之一。
第13章用并行環境交互的方式擴展了actor-critic方法,從而提高了穩定性和收斂性。
第14章給出了第二個項目,展示了如何將RL方法應用于自然語言處理問題。
第15章介紹了RL方法在文字冒險游戲中的應用。
第16章給出了另一個大項目,使用MiniWoB任務集將RL應用于Web導航。
第17章介紹了連續動作空間的環境特性以及各種方法。
第18章介紹了RL方法在機器人問題中的應用,描述了如何用RL方法來構建和訓練小型機器人。
第19章仍是有關連續動作空間的章節,描述了一組置信域方法在其中的應用。
第20章展示了另一組不顯式使用梯度的方法。
第21章介紹了能更好地進行環境探索的方法。
第22章介紹了RL的基于模型的方法,并使用了將想象力應用于RL的最新研究結果。
第23章描述了AlphaGo Zero方法并將其應用于四子連橫棋游戲中。
第24章使用魔方作為環境,描述了RL方法在離散優化領域的應用。
第25章介紹了一個相對較新的RL方法應用方向,即在多智能體情境下的應用。
閱讀指導
本書的所有章節都采用同樣的結構來描述RL方法:首先討論方法的動機、理論基礎以及背后的思想;然后,給出幾個不同環境下的帶完整源代碼的例子。
你可以通過不同的方式來閱讀本書:
1. 若要快速熟悉某些方法,可以只閱讀相關章節的簡介部分。
2. 若要深入理解某個方法是如何實現的,可以閱讀代碼和相關注釋。
3. 若要深度熟悉某個方法(我認為是最好的學習方式),可以嘗試借助提供的代碼重新實現該方法并使之有效。
無論如何,我希望這本書對你有幫助!
下載示例代碼及彩色圖片
本書的示例代碼及所有截圖和樣圖,可以從http://www.packtpub.com通過個人賬號下載,也可以訪問華章圖書官網http://www.hzbook.com,通過注冊并登錄個人賬號下載。
本書的代碼也托管在GitHub上(https://github.com/PacktPublishing/Deep-Reinforcement-Learning-Hands-On-Second-Edition)。如果代碼有更新,GitHub上的代碼會同步更新。本書所有彩色版屏幕截圖/圖表的PDF文件也可以從https://static.packt-cdn.com/downloads/9781838826994_ColorImages.pdf下載。
排版約定
文中的代碼體:表示出現在文中的代碼、數據庫表名、目錄名、文件名、文件擴展名、路徑、用戶輸入、Twitter句柄。
代碼塊示例:

命令行輸入或輸出示例:

黑體:表示新的術語、重要的詞或會在屏幕中顯示的詞(例如,菜單或對話框中的內容)。
表示警告或重要的提示。
表示提示和技巧。
- 情感分析進階
- 人工智能
- 人工智能實戰進階導引
- 機器學習實戰:基于Scikit-Learn、Keras和TensorFlow(原書第3版)
- 擁抱AIGC
- 輕松玩轉DeepSeek:入門 實操 精通 變現
- 深度學習之TensorFlow:入門、原理與進階實戰
- 人工智能極簡編程入門:基于Python
- 機器學習實戰:基于Scikit-Learn、Keras和TensorFlow(原書第2版)
- 人工智能編程實踐:Python編程5級
- 大型語言模型實戰指南:應用實踐與場景落地
- AI源碼解讀:卷積神經網絡(CNN)深度學習案例:Python版
- 推薦系統:產品與算法解析
- 智能硬件與機器視覺:基于樹莓派、Python和OpenCV
- AI賦能:人工智能賦能中國企業升級