[譯] VINE:一種開源的神經進化(Neuroevolution)互動式資料視覺化工具

Starrier發表於2018-04-04

VINE:一種開源的神經進化(Neuroevolution)互動式資料視覺化工具

在 Uber 的規模上,機器學習的進步可以顯著增強為更安全和更可靠的交通解決方案提供動力的技術。Uber AI 實驗室最近宣佈的一項進展是深度神經進化,其中進化演算法(如進化策略(ES)和遺傳演算法(GA))幫助訓練深層神經網路來解決困難的強化學習(RL)問題。最近,人們對深度神經進化的興趣越來越大,其主要貢獻來自於 OpenAIDeepMindGoogle BrainSentient 。這反過來又造成了解決該領域的研究人員對工具的需求的問題。

特別是在神經進化和神經網路優化中,往往很難觀察到學習過程的基本動態。為了彌補這一差距並開放觀察過程,我們引入視覺神經進化檢查器(VINE),一個開源的互動式資料視覺化工具,旨在幫助那些對神經進化感興趣的人更好地理解和探索這一系列演算法。我們希望這項技術可以在未來激發神經進化的創新和應用。

VINE 可以高亮 ES- 和 GA- 風格的方法。本文中,我們將把 ES 應用於 Mujoco 仿人運動任務的結果視覺化為我們的示例。

在傳統的 ES 應用(如 OpenAI 推廣)中,一組稱為偽後代雲的神經網路針對幾代人的目標進行優化。雲中每個個體神經網路的引數通過隨機擾動單個「父」神經網路的引數生成。然後根據目標對每個偽後代神經網路進行評估:在仿人學習任務中,每個偽後代神經網路控制機器人的運動,並根據機器人的行走能力獲得一個分數,稱為適應度。ES 基於這些適應度評分來聚合偽後代的引數來構造下一個父級(這幾乎就像一種複雜的多親交叉形式,也使人想起隨機有限差分)。然後迴圈重複。

[譯] VINE:一種開源的神經進化(Neuroevolution)互動式資料視覺化工具

[譯] VINE:一種開源的神經進化(Neuroevolution)互動式資料視覺化工具

圖 1:模擬機器人訓練走遺傳演算法(左)和進化策略(右)。

使用 VINE

為了利用 VINE,在評估期間會記錄每個雙親和所有假後代的行為特徵(BC)。在這裡,BC 可以是代理在與其環境互動時行為的任何指標。例如,在 Mujoco 中,我們簡單地使用代理的最終位置{x,y}作為 BC,因此它表示代理從原點移到了什麼位置。

視覺化工具根據它們的 BC 將雙親和偽後代對映到 2D 平面上。為此,它呼叫圖形使用者介面(GUI),其主要元件由兩種相互關聯的圖形組成:一個或多個偽子代雲圖(在不同的 2D 平面上)和一個適應度圖。如圖 2 所示,下面的偽後代雲圖顯示了每一代在雲中的雙親和偽後代的 BC,而適應圖作為世代進步的一個關鍵指標則顯示了雙親的適應度得分曲線。

[譯] VINE:一種開源的神經進化(Neuroevolution)互動式資料視覺化工具

圖 2:偽子代雲圖和適合度圖的事例。

然後使用者和這些圖互動,探索偽後代雲的總體趨勢以及任何雙親或偽後代在進化過程中的個體行為:(1)使用者可以視覺化任何一代的雙親,表現最好的和(或)整個偽後代雲,並探索具有不同適應度的偽後代在 2D BC 平面上的數量和空間分佈;(2)使用者可以在世代間進行比較,瀏覽數代,以視覺化父母和(或)偽後代雲是如何在 2D BC 平面上移動的,以及這些移動與適應度評分曲線的關係(如圖 3 所示,移動雲的完整電影片段可以自動生成);(3)點選雲圖上的任意一點,就會顯示相應的偽後代的行為資訊和適應度分數。

[譯] VINE:一種開源的神經進化(Neuroevolution)互動式資料視覺化工具

圖 3:視覺化的世代行為演變過程。每一代顏色都會發生改變。在一代人的時間裡,每一個偽後代顏色強度都是根據其在這一代人中的適應度分數的百分位數來計算的(合計為五個分箱)。

附加用例

該工具還支援預設功能之外的高階選項和自定義視覺化。例如,作為最終單點{x,y}的替換,BC 可以替換為每個代理的完整軌跡(例如,用 1000 個時間點步驟連線的{x,y}) 代替單個最後{x,y}點。在這種情況下,當 BC 的維數超過 2 時,需要使用維數簡約技術(如 PCA 或者 t-SNE)將 BC 資料降維到 2D。我們的工具會自動化這些過程。

GUI 能夠載入多組 2D BC(可能通過不同的縮減技術生成),並將它們顯示在同時連線的雲圖中,如圖 4 所示。此功能為使用者探索不同的 BC 選擇和降維方法提供了一種便捷方式。此外,使用者還可以通過定製功能擴充套件基礎的視覺化。圖 4 展示了一個這樣的自定義雲圖,可以顯示某些型別的特定領域的高維 BC(在這種情況下,代理的完整軌跡)以及相應的減少的 2D BC。圖 5 中定製雲圖的另一個例子允許使用者在與環境互動時重放代理的確定性和隨機行為。

[譯] VINE:一種開源的神經進化(Neuroevolution)互動式資料視覺化工具

圖 4:多個 2D BC 和一個高維 BC 的視覺化以及一個適應度圖。

[譯] VINE:一種開源的神經進化(Neuroevolution)互動式資料視覺化工具

圖 5:VINE 允許使用者檢視任何代理的確定性和隨機行為的視訊。

該工具還設計用於處理移動任務以外的域。下圖 6 演示了一個雲圖,它視覺化了訓練代理來玩 Frostbit 遊戲,這是 Atari 2600 遊戲之一,我們使用最後的模擬器 RAM 狀態(長度為 128 的整數值向量,捕捉遊戲中的所有狀態變數)作為 BC,並應用 PCA 將 BC 對映到 2D 平面上。

[譯] VINE:一種開源的神經進化(Neuroevolution)互動式資料視覺化工具

圖 6:視覺化代理學習來演示 Frostbite。

從圖中,我們可以觀察到,隨著進化的發展,偽後代雲向左邊移動,並向那裡的星雲移動。能夠看到每個玩遊戲的代理的相應視訊,我們可以推斷每個叢集對應於語義上有意義不同的結束狀態。

VINE 還可以與其他神經進化演算法(如 GA)無縫協作,這些演算法能使後代繁衍數代。事實上,該工具獨立於任何特定的神經進化演算法。使用者只需要稍微修改他們的神經進化程式碼,就可以儲存他們針對特定問題選擇的 BC。在程式碼發行版中,我們提供了對 ES 和 GA 實現了此類修改以作示例。

下一步

由於進化方法是在一組點上操作,所以為新型視覺化提供了機會。在實現了提供視覺化功能的工具後,我們發現它很有用並且想在機器學習社群進行分享,讓大家一起受益。隨著神經進化擴充套件到具有數百萬或更多連線的神經網路,通過 VINE 等工具獲得更多的洞察力對加深進步越來越有價值,也越來越重要。

可以在此連結找到 VINE。它是輕量級的,可移值的,而且是用 Python 實現的。

致謝: 我們感謝 Uber AI 實驗室,尤其是 Joel Lehman、Xingwen Zhang、Felipe Petroski Such 和 Vashisht Madhavan 為我們提供了寶貴的建議和有益的討論。

圖 1,左圖來源:例如Felipe Petroski。


掘金翻譯計劃 是一個翻譯優質網際網路技術文章的社群,文章來源為 掘金 上的英文分享文章。內容覆蓋 AndroidiOS前端後端區塊鏈產品設計人工智慧等領域,想要檢視更多優質譯文請持續關注 掘金翻譯計劃官方微博知乎專欄

相關文章