谷歌發(fā)布 RLDS,在強化學習生成、共享和使用數(shù)據(jù)集
編譯 | 禾木木
出品 | AI科技大本營(ID:rgznai100)
大多數(shù)強化學習和序列決策算法都需要智能體與環(huán)境的大量交互生成訓練數(shù)據(jù),以獲得最佳性能。這種方法效率很低,尤其是在很難做到這種交互的情況下,比如用真實的機器人來收集數(shù)據(jù),或者和人類專家進行交互。要緩解這個問題,可以重用外部的知識源,比如 RL Unplugged Atari 數(shù)據(jù)集,其中包括玩 Atari 游戲的合成智能體的數(shù)據(jù)。
然而,這些數(shù)據(jù)集非常少,而且序列決策生成數(shù)據(jù)的任務(wù)和方式多種多樣(例如,專家數(shù)據(jù)或噪聲演示,人類或合成交互,等等),因此,整個社區(qū)要用一組很少的、具有代表性的數(shù)據(jù)集進行工作,就不太現(xiàn)實,甚至不可取。另外,有些數(shù)據(jù)集被發(fā)行成僅適合特定算法的形式,因此研究者不能重用這些數(shù)據(jù)集。比如,某些數(shù)據(jù)集并沒有包含與環(huán)境的交互序列,但卻提供了一組讓我們無法重構(gòu)其時間關(guān)系的隨機交互,其他數(shù)據(jù)集則會以稍有差異的方式發(fā)行,從而導致細微的誤差,非常難以識別。
基于此,研究人員提出了強化學習數(shù)據(jù)集(RLDS),并發(fā)布了一套用于記錄、重放、操作、注釋和共享數(shù)據(jù)的工具,用于序列決策制定,其中包括離線強化學習、學徒學習或模仿學習。RLDS 可以方便地共享數(shù)據(jù)集,而不會損失任何信息(比如,保持交互的序列,而非隨機化),而且獨立于底層原始格式,從而允許用戶在更廣泛的任務(wù)上對新的算法進行快速測試。另外,RLDS 提供了收集由合成智能體(EnvLogger)或人類(RLDS Creator)生成的數(shù)據(jù)的工具,以及對收集到的數(shù)據(jù)進行檢查與處理的工具。最后,通過與 TensorFlow Dataset(TFDS)集成,有助于加強與研究界共享強化學習數(shù)據(jù)集。
RL、離線 RL 或模仿學習中的數(shù)據(jù)集結(jié)構(gòu)
強化學習、離線強化學習或模仿學習中的算法,都有可能會使用格式完全不同的數(shù)據(jù),并且,當數(shù)據(jù)集的格式不清楚時,很容易導致由于對底層數(shù)據(jù)的誤解引起的錯誤。RLDS 通過定義數(shù)據(jù)集的每個字段的內(nèi)容和意義,使數(shù)據(jù)格式顯式化,并為其提供了重新對齊和轉(zhuǎn)換的工具,以適應(yīng)任何算法實現(xiàn)所需的格式。為了定義數(shù)據(jù)格式,RLDS 利用了強化學習數(shù)據(jù)集固有的標準結(jié)構(gòu),也就是智能體和環(huán)境之間的交互(步驟)的序列(情節(jié)),其中,智能體可以是基于規(guī)則的/自動化控制器、正式規(guī)劃者、人類、動物,或上述的組合。
這些步驟中的每一個都包含當前的觀察、應(yīng)用于當前觀察的行動、作為應(yīng)用行動的結(jié)果而獲得的獎勵以及與獎勵一起獲得的折扣。步驟還包括額外的信息,以表明該步驟是該情節(jié)的第一個還是最后一個,或者該觀察是否對應(yīng)于一個終端狀態(tài)。每個步驟和情節(jié)還可以包含自定義的元數(shù)據(jù),可用于存儲與環(huán)境相關(guān)或與模型相關(guān)的數(shù)據(jù)。
生成數(shù)據(jù)
研究人員通過記錄任何類型的智能體與環(huán)境的交互來產(chǎn)生數(shù)據(jù)集。為了保持其有用性,原始數(shù)據(jù)最好以無損格式存儲,記錄所有生成的信息,并保留數(shù)據(jù)項之間的時間關(guān)系(例如,步驟和事件的序列),而不會對將來如何利用數(shù)據(jù)集作出任何假定。為了這個目的,發(fā)行了 EnvLogger,這是一個軟件庫,以開放文檔格式記錄智能體與環(huán)境的交互。
EnvLogger 是一種環(huán)境包裝器,可以將智能體與環(huán)境的交互記錄下來,并將它們存儲在一個較長的時間內(nèi)。雖然 EnvLogger 無縫地集成在 RLDS 生態(tài)系統(tǒng)中,但是將其設(shè)計為可作為一個獨立的庫使用,以提高模塊化程度。
與大多數(shù)機器學習環(huán)境一樣,為強化學習收集人類數(shù)據(jù)是一個既費時又費力的過程。解決這個問題的常見方法是使用眾包,它要求用戶能夠輕松地訪問可能難以擴展到大量參與者的環(huán)境。在 RLDS 生態(tài)系統(tǒng)中,發(fā)行了一個基于 Web 的工具,名為 RLDS Creator,該工具可以通過瀏覽器為任何人類可控制的環(huán)境提供一個通用接口。用戶可以與環(huán)境進行交互,例如,在網(wǎng)上玩 Atari 游戲,交互會被記錄和存儲,以便以后可以通過 RLDS 加載回來,用于分析或訓練智能體。
共享數(shù)據(jù)
數(shù)據(jù)集通常很繁重,與更廣泛的研究社區(qū)共享,不僅可以重現(xiàn)之前的實驗,還可以加快研究速度,因為它更容易在一系列場景中運行和驗證新算法。為此,RLDS 與 TensorFlow Datasets(TFDS)集成,后者是一個現(xiàn)有的機器學習社區(qū)內(nèi)共享數(shù)據(jù)集的庫。一旦數(shù)據(jù)集成為 TFDS 的一部分,它就會被索引到全球 TFDS 目錄中,這樣,所有研究人員都可以通過使用 tfds.load(name_of_dataset) 來訪問,并且可以將數(shù)據(jù)以 TensorFlow 或 Numpy 格式加載。
TFDS 獨立于原始數(shù)據(jù)集的底層格式,所以,任何具有 RLDS 兼容格式的現(xiàn)有數(shù)據(jù)集都可以用于 RLDS,即使它最初不是用 EnvLogger 或 RLDS Creator 生成的。此外,使用 TFDS,用戶可以保留對自己的數(shù)據(jù)擁有所有權(quán)和完全控制權(quán),并且所有的數(shù)據(jù)集都包含了一個引用給數(shù)據(jù)集作者。
使用數(shù)據(jù)
研究人員可以使用這些數(shù)據(jù)集對各種機器學習算法進行分析、可視化或訓練,就像上面提到的那樣,這些算法可能會以不同的格式使用數(shù)據(jù),而不是以不同的格式存儲數(shù)據(jù)。例如,一些算法,如 R2D2 或 R2D3,使用完整的情節(jié);而另一些算法,如 Behavioral Cloning(行為克隆)或 ValueDice,則使用成批的隨機步驟。為了實現(xiàn)這一點,RLDS 提供了一個強化學習場景的轉(zhuǎn)換庫。由于強化學習數(shù)據(jù)集的嵌套結(jié)構(gòu),所以這些轉(zhuǎn)換都經(jīng)過了優(yōu)化,包括了自動批處理,從而加速了其中一些操作。使用這些優(yōu)化的轉(zhuǎn)換,RLDS 用戶有充分的靈活性,可以輕松實現(xiàn)一些高級功能,而且開發(fā)的管道可以在 RLDS 數(shù)據(jù)集上重復使用。轉(zhuǎn)換的示例包含了對選定的步驟字段(或子字段)的全數(shù)據(jù)集的統(tǒng)計,或關(guān)于情節(jié)邊界的靈活批處理。你可以在這個教程中探索現(xiàn)有的轉(zhuǎn)換,并在這個 Colab 中看到更復雜的真實示例。
可用數(shù)據(jù)集
目前,TFDS 中有以下數(shù)據(jù)集(與 RLDS 兼容):
帶有 Mujoco 和 Adroit 任務(wù)的 D4RL 的子集
RLUnplugged DMLab、Atari 和 Real World RL 數(shù)據(jù)集
用 RLDS 工具生成的三個 Robosuite 數(shù)據(jù)集
結(jié)語
RLDS 生態(tài)系統(tǒng)不僅可以提高強化學習與序列決策問題研究的可重現(xiàn)性,還可以方便地進行數(shù)據(jù)的共享和重用。研究人員期望 RLDS 所提供的特性能夠推動發(fā)行結(jié)構(gòu)化的強化學習數(shù)據(jù)集,保存所有的信息,并涵蓋更廣泛的智能體和任務(wù)。
參考鏈接:
https://ai.googleblog.com/2021/12/rlds-ecosystem-to-generate-share-and.html
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。