我們擅長商業(yè)策略與用戶體驗的完美結合。
歡迎瀏覽我們的案例。
繼今年 8 月谷歌開源發(fā)布了專為學術研究人員設計的簡單但魯棒的強化學習框架「多巴胺」(Dopamine)之后,早已被谷歌母公司收購但保持獨立運營的 DeepMind 也把自己日常使用的代碼庫拿出來開源,繼續(xù)為領域內的研究人員們提供功能豐富、高可復現(xiàn)性及高可拓展性的實驗工具。雷鋒網 AI 科技評論介紹如下。
今天 DeepMind 宣布開源一個用于在 TensorFlow 環(huán)境中開發(fā)強化學習智能體的代碼庫,打包了許多有用的基礎組件。它的名字是 TRFL(讀作「truffle」) 。
DeepMind 自己用來開發(fā) DQN、DDPG 以及 IMPALA(重要性加權行動者-學習者架構)等知名強化學習技術的許多關鍵算法組件都包含在其中。
另一種開源路線
一個典型的深度強化學習智能體需要包含一組數(shù)目眾多的互動組件:首先起碼需要包括一個環(huán)境以及某種能表示值或者策略的深度神經網絡,然后很多時候還會包含學習到的環(huán)境的模型、偽反饋函數(shù)甚至一個回放系統(tǒng)等等。
這些組件互相之間的影響很微妙(而且如 Henderson 和他的同事在 https://arxiv.org/pdf/1709.06560.pdf 中指出,論文中常常并不會詳細說明這些影響是怎么樣的),從而當計算圖變得很大的時候一旦出現(xiàn) bug 就很難進行定位并解決。OpenAI 近期的一篇博客也著重研究了這個問題,他們分析了某些最熱門的強化學習智能體的開源實現(xiàn),發(fā)現(xiàn) 10 個中的 6 個都「由社區(qū)成員發(fā)現(xiàn)了微小的 bug 并得到了作者本人的確認」。
要解決這種問題,并幫助整個研究社區(qū)中的人順利復現(xiàn)論文中的結果,其中一種方法就是開源智能體的全套完整實現(xiàn)。比如,DeepMind 最近就開源了基于 IMPALA 的 v-trace 智能體的可拓展分布式實現(xiàn)。這種大規(guī)模的代碼庫對于研究結果的復現(xiàn)固然有幫助,但同時也難以修改并拓展。
另一種有所不同并且能起到補充作用的方法是提供可靠的、經過充分測試的通用基礎組件的實現(xiàn),同一個構件也就可以在許多不同的強化學習智能體中反復使用。另一方面,在單個代碼庫中囊括了所有這些組件的抽象,然后可以用統(tǒng)一的 API 調用,也就讓研究人員可以更方便地組合不同文獻中閱讀到的不同的想法。
全功能的基礎組件
TRFL 庫包含了許多功能,可以實現(xiàn)經典強化學習算法以及更現(xiàn)代的算法。其中的損失函數(shù)以及許多其他操作都是完全在 TensorFlow 中實現(xiàn)的。它們并不是完整的算法,而是構建具有完整功能的強化學習智能體時必要的、也是強化學習專用的數(shù)學操作的代碼實現(xiàn)。
對于基于值的強化學習,DeepMind 的研究人員們也在 TRFL 庫中提供了各種 TensorFlow 操作,便于在離散的行動空間中學習,比如 TD 學習、Sarsa、Q-learning 以及它們的變體;當然也包括了用于實現(xiàn) DPG 之類的連續(xù)控制算法的操作。TRFL 庫中還包括了學習值分布函數(shù)的操作。這些操作支持批量計算,并且返回的損失值可以送入 TensorFlow 優(yōu)化器進行最小化。有一些損失值是針對不同的批之間的變化進行計算的(比如 Sarsa 和 Q-learning 等),也有一些損失是針對成批的軌跡的(比如 Q-lambda、Retace 等)。
對于基于策略的方法,TRFL 庫中也同時提供了可以簡易實現(xiàn) A2C 等在線學習方法以及 v-trace 等離線策略校正方法的工具。TRFL 也支持連續(xù)動作空間中的策略梯度的計算。最后,TRFL 還提供了一個 Unreal 引擎中使用的輔助偽反饋函數(shù)的實現(xiàn),DeepMind 的研究人員發(fā)現(xiàn)它能在許多不同的任務中提高數(shù)據(jù)效率。
宣告開源顯然并不是這個項目的終點。由于這個庫在 DeepMind 內部有著廣泛的應用,他們也會持續(xù)不斷地對它進行維護,并逐步增加新的功能。DeepMind 也非常期待強化學習社區(qū)中的更多人也參與到這個項目的貢獻中來。
?。?a href="http://m.jinteng090.cn">邯鄲建站)