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