官术网_书友最值得收藏!

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就是我寫的一個庫,在本書的其余部分,它將被用來舉例說明示例。

主站蜘蛛池模板: 乌鲁木齐县| 丰都县| 育儿| 桦甸市| 湖南省| 玉溪市| 涞水县| 黄龙县| 镇雄县| 达日县| 营山县| 鄄城县| 讷河市| 广西| 驻马店市| 北票市| 拉孜县| 惠安县| 四平市| 苍山县| 西盟| 云和县| 台北县| 永安市| 乐山市| 高安市| 城固县| 曲麻莱县| 武威市| 临城县| 靖江市| 什邡市| 雷波县| 云龙县| 水城县| 三门峡市| 石林| 普格县| 襄汾县| 历史| 高尔夫|