清華本科生開發強化學習平臺「天授」:千行代碼實現,性能吊打國外成熟平臺,剛剛開源...

賈浩楠 發自 凹非寺
量子位 報道 | 公衆號 QbitAI

江山代有才人出,開源一波更比一波強。

就在最近,一個簡潔、輕巧、快速的深度強化學習平臺,完全基於Pytorch,在Github上開源。

如果你也是強化學習方面的同仁,走過路過不要錯過。

而且作者,還是一枚清華大學的本科生——翁家翌,他開發了”天授(Tianshou)“平臺。

沒錯,名字就叫“天授”。

Why 天授?

主要有四大優點:

1、速度快,整個平臺只用1500行左右代碼實現,在已有的toy scenarios上面完勝所有其他平臺,比如3秒訓練一個倒立擺(CartPole)。

2、模塊化,把所有policy都拆成4個模塊:

init:策略初始化。
process_fn:處理函數,從回放緩存中處理數據。
call:根據觀測值計算操作
learn:從給定數據包中學習

只要完善了這些給定的接口就能在100行之內完整實現一個強化學習算法。

3、天授平臺目前支持的算法有:

Policy Gradient (PG)
Deep Q-Network (
DQN)
Double DQN (
DDQN) with n-step returns
Advantage Actor-Critic (
A2C)
Deep Deterministic Policy Gradient (
DDPG)
Proximal Policy Optimization (
PPO)
Twin Delayed DDPG (
TD3)
Soft Actor-Critic (
SAC)

隨着項目的開發,會有更多的強化學習算法加入天授。

4、接口靈活:用戶可以定製各種各樣的訓練方法,只用少量代碼就能實現。

如何使用天授

以DQN(Deep-Q-Network)算法爲例,我們在天授平臺上使用CartPole小遊戲,對它的agent進行訓練。

配置環境

習慣上使用OpenAI Gym,如果使用Python代碼,只需要簡單的調用Tianshou即可。

CartPole-v0是一個可應用DQN算法的簡單環境,它擁有離散操作空間。配置環境時,你需要注意它的操作空間是連續還是離散的,以此選擇適用的算法。

設置多環境層

你可以使用現成的gym.Env:

也可以選擇天授提供的三種向量環境層:VectorEnv、SubprocVectorEnv和RayVectorEnv,如下所示:

示例中分別設置了8層和100層環境。

建立網絡

天授支持任意用戶自主定義的網絡或優化器,但有接口限制。

以下是一個正確的示例:

設置策略

我們使用已定義的net和optim(有額外的策略超參數)來定義一個策略。下方我們用一個目標網絡來定義DQN算法策略。

設置收集器

收集器是天授的關鍵概念,它使得策略能夠高效的與不同環境交互。每一步,收集器都會將該策略的操作數據記錄在一個回放緩存中。

訓練

天授提供了訓練函數onpolicy_trainer和offpolicy_trainer。當策略達到終止條件時,他們會自動停止訓練。由於DQN是無策略算法,我們使用offpolicy_trainer。

訓練器支持TensorBoard記錄,方法如下:

將參數writer輸入訓練器中,訓練結果會被記錄在TensorBoard中。

記錄顯示,我們在幾乎4秒的時間內完成了對DQN的訓練。

保存/加載策略

因爲我們的策略沿襲自torch.nn.Module,所以保存/加載策略方法與torch模塊相同。

觀察模型表現

收集器支持呈現功能,以35幀率觀察模型方法如下:

用你自己的代碼訓練策略

如果你不想用天授提供的訓練器也沒問題,以下是使用自定義訓練器的方法。

上手體驗

天授需要Python3環境。以CartPole訓練DQN模型爲例,輸入test_dqn.py代碼進行訓練,其結果統計如下:

可以看出整個訓練過程用時7.36秒,與開發者給出的訓練時間符合。

模型訓練結果如下:

作者介紹

天授的開發者:翁家翌,清華大學的在讀大四本科生。

高中畢業於福州一中,前NOI選手。

大二時作就作爲團隊主要貢獻者獲得了強化學習國際比賽vizdoom的冠軍。他希望能將天授平臺深入開發,成爲強化學習平臺的標杆。開源也是希望有更多的小夥伴加入這個項目。

傳送門:

PyPI提供天授平臺下載,你也可以在Github上找到天授的最新版本和其他資料。

PYPI:

https://pypi.org/project/tianshou/

Github天授主頁:

https://github.com/thu-ml/tianshou

作者系網易新聞·網易號“各有態度”簽約作者

如何關注、學習、用好人工智能? 

每個工作日,量子位AI內參精選全球科技和研究最新動態,彙總新技術、新產品和新應用,梳理當日最熱行業趨勢和政策,搜索有價值的論文、教程、研究等。

同時,AI內參羣爲大家提供了交流和分享的平臺,更好地滿足大家獲取AI資訊、學習AI技術的需求。掃碼即可訂閱:

瞭解AI發展現狀,抓住行業發展機遇

AI社羣 | 與優秀的人交流

量子位 QbitAI · 頭條號簽約作者

վ'ᴗ' ի 追蹤AI技術和產品新動態

喜歡就點「在看」吧 ! 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章