深度強化學習能夠構建超越計算機視覺或感知的智能體、產品和服務來執行操作。TensorFlow 2.x 是最流行的深度學習框架的最新版本,用於開發和訓練深度神經網絡(Deep Neural Network,DNN)。
本書首先介紹了深度強化學習的基礎知識和TensorFlow 2.x的最新主要版本。接下來的內容涵蓋了OpenAI Gym、基於模型的強化學習和無模型的強化學習,以及學習如何開發基本智能體。接著,讀者將了解如何實現高級的深度強化學習算法,如行動者-評論家、深度確定性策略梯度、深度Q網絡、近端策略優化、深度循環Q網絡和軟行動者-評論家等算法,以訓練強化學習智能體。讀者還將通過構建加密貨幣交易智能體、股票/股份交易智能體和用於自動完成任務的智能體來探索現實世界中的強化學習。最後,讀者將了解如何將深度強化學習智能體部署到雲端,以及如何使用TensorFlow 2.x為Web端、移動端和其他平臺構建跨平臺應用程序。
通過本書,可以使用TensorFlow 2.x從頭開始進行簡單易懂的實現,讀者可以更深入理解深度強化學習算法。
本書的目標讀者
本書是面向希望使用TensorFlow 2.x從零開始構建、訓練和部署自己的強化學習繫統的機器學習應用開發者、人工智能和應用人工智能研究人員、數據科學家、深度學習從業者和了解強化學習基礎知識的學生。
本書涵蓋的內容
第1章,使用TensorFlow 2.x開發深度強化學習的基本模塊,提供了為具有離散和連續動作空間的強化學習應用構建強化學習環境、基於深度神經網絡的強化學習智能體、進化神經智能體以及其他基本模塊的初始教程。
第2章,基於價值、策略和行動者-評論家的深度強化學習算法實現,包含實現基於價值迭代的學習智能體的方法,並將強化學習中幾個基礎算法(如蒙特卡洛控制、SARSA和Q學習、行動者-評論家以及策略梯度算法)的實現分解為簡單的步驟。
第3章,高級強化學習算法的實現,提供了使用深度Q網絡(Deep Q-Network,DQN)、雙重與競爭深度Q網絡(Double and Dueling Deep Q-Network,DDDQN)、深度循環Q網絡(Deep Recurrent Q-Network,DRQN)、異步優勢行動者-評論家(Asynchronous Advantage Actor-Critic,A3C)、近端策略優化(Proximal Policy Optimization,PPO)以及深度確定性策略梯度(Deep Deterministic Policy Gradient,DDPG)算法實現完整智能體訓練繫統的簡明方法。
第4章,現實世界中的強化學習——構建加密貨幣交易智能體,展示了如何使用來自Gemini等交易所的真實市場數據在自定義強化學習環境中實現和訓練一個軟行動者-評論家智能體,用於比特幣和以太幣交易,其中包括表格和視覺(圖像)的狀態/觀測以及離散和連續的動作空間。
第5章,現實世界中的強化學習——構建股票/股份交易智能體,涵蓋了如何在由真實的股票市場交易數據支撐的自定義強化學習環境中訓練高級的強化學習智能體,使用可視化價格圖表和/或表格票證數據等在股票市場上進行交易以獲取利潤。
第6章,現實世界中的強化學習——構建智能體來完成您的待辦事項,提供了構建、訓練和測試基於視覺的強化學習智能體來完成Web上的任務的方法,以幫助您自動完成任務,如單擊網頁上的彈出/確認對話框、登錄各種網站、查找並預訂最便宜的行程機票、整理您的電子郵件收件箱,以及在社交媒體網站上點贊/分享/轉發帖子以與您的關注者互動。
第7章,在雲端部署深度強化學習智能體,提供了工具和詳細信息,幫助讀者領先一步使用深度強化學習提前建立基於雲的模擬即服務和智能體/機器人即服務程序。通過部署交易機器人即服務,學習如何使用在雲端運行的遠程模擬器來訓練強化學習智能體,組裝強化學習智能體的運行組件,以及將深度強化學習智能體部署到雲端。
第8章,使用分布式訓練加速深度強化學習智能體開發,包含了使用TensorFlow 2.x進行深度神經網絡模型的分布式訓練以加速深度強化學習智能體開發的方法。您將了解如何在單臺機器和機器集群上利用多個CPU和GPU來縱向/橫向擴展您的深度強化學習智能體訓練,以及如何利用Ray、Tune和RLLib進行大規模加速訓練。
第9章,深度強化學習智能體的多平臺部署,提供了可自定義的模板,讀者可以利用這些模板來為自己的用例構建和部署深度強化學習應用程序。讀者將了解如何以各種實際使用的格式(如TensorFlow Lite、TensorFlow.js和ONNX)導出用於服務/部署的強化學習智能體模型,並了解如何利用NVIDIA Triton或構建您自己的解決方案來啟動可實際使用的、基於強化學習的人工智能服務。讀者還可以在手機和Web應用程序中部署強化學習智能體,並學習如何在Node.js應用程序中部署強化學習機器人。
書盡其用的建議
本書的代碼已經在Ubuntu 18.04和Ubuntu 20.04 上進行了廣泛的測試,而且可以在安裝了Python 3.6 的Ubuntu後續版本中正常工作。在安裝Python 3.6 的情況下,搭配每項內容開始時列出的必要Python 工具包,本書的代碼也同樣可以在Windows和macOS X上運行。
建議創建和使用一個名為tf2rl-cookbook的Python虛擬環境安裝工具包以及運行本書的代碼。推薦讀者安裝Miniconda或 Anaconda 管理Python虛擬環境。
建議對GitHub存儲庫加注星標並進行分叉,以便接收代碼的更新和改進。此外,建議讀者在GitHub本書討論區分享自己的成果,並與其他讀者和社區進行互動。
示例代碼文件的下載
掃描下方二維碼下載全書示例代碼。
彩色圖像的下載
本書提供了書中圖像的PDF文件,包含本書中使用的屏幕截圖/圖表的彩色圖像,可以掃描下方二維碼下載。
使用的約定
本書中使用了許多文本約定。
Code in text:表示文本中使用的代碼字。下面是一個示例:“我們將從實現Actor類中的save方法開始,以將Actor模型導出為TensorFlow的SavedModel格式。”
代碼塊的設置如下:
def save(self, model_dir: str, version: int = 1):
actor_model_save_dir = os.path.join(model_dir, "actor", str(version), "model.savedmodel")
self.model.save(actor_model_save_dir, save_format="tf")
print(f"Actor model saved at:{actor_model_save_dir}")
對於代碼塊的特定部分,相關行或項將以粗體顯示:
譯者注:此處原書也未體現粗體。
if args.agent != "SAC":
print(f"Unsupported Agent: {args.agent}. Using SAC Agent")
args.agent = "SAC"
# Create an instance of the Soft Actor-Critic Agent
agent = SAC(env.observation_space.shape, env.action_space)
任何命令行輸入或輸出都按如下方式給出:
(tfrl-cookbook)praveen@desktop:~/tensorflow2-reinforcement-learning-cookbook/src/ch7-cloud-deploy-deep-rl-agents$ python 3_training_rl_agents_using_remote_sims.py
粗體(Bold):表示新術語、重要詞或屏幕上看到的詞。例如,菜單或對話框中的單詞會像這樣出現在文本中。例如,“單擊打開現有項目(Open an Existing Project)選項,可以看到一個彈出窗口,詢問選擇文件繫統上的目錄。導航到第9章的內容,並選擇9.2\\_rl\\_android\\_app。”
提示或重要說明
像這樣出現。