DeepMind 開源 TRFL ,又一個強化學習拓展、創新好幫手

評論
評論

本文獲得合作媒體 雷鋒網 授權轉載。文章來源:DeepMind 官方網站 ,經雷鋒網評論編譯。

前言:繼今年 8 月 Google 開源發布了專為學術研究人員設計的簡單但強健的強化學習框架「多巴胺」(Dopamine)之後,早已被 Google 母公司收購但保持獨立運作的 DeepMind 也把自己日常使用的程式庫拿出來開源,繼續為領域內的研究人員們提供功能豐富、高可複現性及高可拓展性的實驗工具。

DeepMind 開源TRFL,又一個強化學習復現、創新好幫手

今天 DeepMind 宣布開源一個用於在 TensorFlow 環境中開發強化學習智慧體的程式庫,打包了許多有用的基礎元件。 它的名字是  TRFL(讀作「truffle」)。DeepMind 自己用來開發 DQN 、 DDPG 以及 IMPALA(重要性加權行動者-學習者架構)等知名強化學習技術的許多關鍵演算法元件都包含在其中。

另一種開源路線

一個典型的深度強化學習智慧體需要包含一組數目眾多的互動元件:首先起碼需要包括一個環境以及某種能表示值或者策略的深度神經網路,然後很多時候還會包含學習到的環境的模型、偽反饋函數甚至一個回放系統等等。

這些元件之間的互相影響很微妙(而且如 Henderson 和他的同事在 Deep Reinforcement Learning that Matters 中指出,論文中常常不會詳細說明這些影響是怎麼樣的),從而當計算圖變得很大的時候一旦出現 bug 就很難進行定位並解決。 OpenAI 近期的一篇文章也著重研究了這個問題,他們分析了某些最熱門的強化學習智慧體的開源實現,發現 10 個中的 6 個都「由社群成員發現了微小的 bug 並得到了作者本人的確認」。

要解決這種問題,並幫助整個研究社群中的人順利加強論文中的結果,其中一種方法就是開源智慧體的全套完整實現。比如, DeepMind 最近就開源了基於 IMPALA 的 v-trace 智慧體的可拓展分佈式實現。這種大規模的程式庫對於研究結果的加強固然有幫助,但同時也難以修改並拓展。

另一種有所不同並且能起到補充作用的方法是提供可靠的、經過充分測試的通用基礎元件的實現,同一個構件也就可以在許多不同的強化學習智慧體中反覆使用。另一方面,在單個程式庫中囊括了所有這些元件的抽象,然後可以用統一的 API 調用,也就讓研究人員可以更方便地組合不同文獻中閱讀到的不同的想法。

全功能的基礎組件

 TRFL 庫包含了許多功能,可以實現經典強化學習演算法以及更現代的演算法。其中的損失函數以及許多其他操作都是完全在 TensorFlow 中實現的。它們並不是完整的演算法,而是構建具有完整功能的強化學習智慧體時必要的、也是強化學習專用的數學操作的程式碼實現。

對於基於值的強化學習, DeepMind 的研究人員們也在 TRFL 庫中提供了各種 TensorFlow 操作,便於在離散的行動空間中學習,比如 TD 學習、 Sarsa 、 Q-learning 以及它們的變體;當然也包括了用於實現 DPG 之類的連續控制演算法的操作。 TRFL 庫中還包括了學習值分佈函數的操作。這些操作支援批量計算,並且返回的損失值可以送入 TensorFlow 優化器進行最小化。有一些損失值是針對不同的批之間的變化進行計算的(比如 Sarsa 和 Q-learning 等),也有一些損失是針對成批的軌跡的(比如 Q-lambda 、 Retace 等)。

對於基於策略的方法, TRFL 庫中也同時提供了可以簡易實現 A2C 等線上學習方法以及 v-trace 等離線策略校正方法的工具。 TRFL 也支援連續動作空間中的策略梯度的計算。最後, TRFL 還提供了一個 Unreal 引擎中使用的輔助偽反饋函數的實現, DeepMind 的研究人員發現它能在許多不同的任務中提高數據效率。

宣告開源顯然並不是這個專案的終點。由於這個程式庫在 DeepMind 內部有著廣泛的應用,他們也會持續不斷地對它進行維護,並逐步增加新的功能。 DeepMind 也非常期待強化學習社群中的更多人也參與到這個專案的貢獻中來。

延伸閱讀:

 

歡迎加入「Inside」Line 官方帳號,關注最新創業、科技、網路、工作訊息

好友人數

相關文章

評論