- 深度強化學習實踐(原書第2版)
- (俄)馬克西姆·拉潘
- 615字
- 2021-08-18 17:39:30
7.1 為什么使用強化學習庫
在第6章中,我們實現的基礎DQN的代碼并不冗長也不復雜——大約有200行訓練代碼加上120行環境包裝器代碼。當你還在熟悉RL方法的時候,自己實現所有的東西對于理解這些方法的工作原理會大有裨益。但是,你在這個領域越久,就越頻繁地發現自己在一遍又一遍地編寫同樣的代碼。
這些重復源于RL方法的通用性。我們在第1章討論過,RL十分靈活,并且很多現實生活中的問題都屬于環境–智能體交互的類型。RL方法不會對觀察和動作的細節做很多假設,所以用來解決CartPole環境的代碼也適用于Atari游戲(可能需要一些小調整)。
一遍又一遍地重復編寫同樣的代碼并不是很高效,因為每次都可能會引入錯誤,它們會花費你大量的時間來理解邏輯及調試。另一方面,精心設計的代碼已用于多個項目,它們通常在性能、單元測試、可讀性和文檔方面擁有更高的質量。
按照計算機科學的標準來說,RL的工程應用還處于早期階段,因此與其他更成熟的領域相比,可能沒有那么豐富的方法可供選擇。例如,對于Web開發來說,即使只限制使用Python,還是有數百種各種各樣的非常好的庫可以選擇,有用于重量級、功能齊全的網站開發的Django,也有用于輕量級的Web服務器網關接口(Web Server Gateway Interface,WSGI)應用程序開發的Flask,還有更多大大小小的其他庫。
在RL領域,這一過程才剛剛開始,但還是可以從幾個試圖簡化RL從業者工作的項目中進行選擇。此外,你也可以像我幾年前一樣,自己編寫自己的工具集。之前提到的PTAN就是我寫的一個庫,在本書的其余部分,它將被用來舉例說明示例。