Uber開源神經進化演算法開發的互動式可視化工具VINE
近日,Uber 開源了神經進化演算法開發的互動式可視化工具 VINE,該工具可以輕鬆實現神經網路群體的各種特定指標以及適應度分數的可視化和隨時間的變化,用戶可對其進行實時評估。此外,VINE 還支持默認功能之外的高級選項和自定義可視化。
VINE 項目地址:https://github.com/uber-common/deep-neuroevolution/tree/master/visual_inspector
對於 Uber 的產業規模來說,機器學習的發展可以大大提高交通運輸技術的安全性和可靠性,Uber AI Labs 最近宣布的深度神經進化就是其中一例。深度神經進化的進化演算法,如進化策略(ES)和遺傳演算法(GA),可以幫助訓練深度神經網路,以解決棘手的強化學習 ( RL ) 問題。最近,深度神經進化熱度不斷增加,OpenAI 、Google Brain、DeepMind 和 Sentient 也多有貢獻,該領域研究人員對相應工具的需求也越來越大。
特別是,在神經進化和神經網路的優化中,學習過程的潛在動態通常難以觀察。為解決上述兩個問題,Uber 開發了神經進化視覺檢查器 ( Visual Inspector for Neuroevolution,VINE ),這是一個開源互動式數據可視化工具,旨在幫助神經進化研究者更好地理解和探索這一系列演算法。該工具非常輕便,使用 Python 語言編寫。Uber 希望該技術可以促進神經進化的創新和應用。
VINE 可以實現 ES 和 GA 類方法的可視化。本文給出的例子著重探討應用 ES 的 Mujoco 擬人運動任務結果的可視化。
在 ES 的常規應用 (如 OpenAI 所推廣的應用) 中,一組名為偽子代雲(pseudo-offspring cloud)的神經網路針對一個目標進行了幾代優化。雲中每個單獨神經網路的參數通過隨機擾動單個親代神經網路的參數來生成。然後對照目標對每個偽子代神經網路進行評估:在擬人運動任務中,每個偽子代神經網路控制機器人的運動,並根據機器人行走的情況得出一個分數,稱為適應度(fitness)。ES 通過聚集基於這些適應度得分的偽子代的參數來構造下一個親代神經網路 (類似於複雜的多親代交叉,還可以聯想到隨機有限差分),然後重複該循環。
圖 1 :經過遺傳演算法 (左) 和進化策略 (右) 訓練的模擬機器人的行走情況。
VINE 的應用
為了利用 VINE,在評估期間記錄了每個親代和偽子代的行為特徵 ( BC)。這裡,BC 可以是智能體與其環境交互時的任何行為指標。例如,在 Mujoco 中,我們僅使用智能體的最終 { x,y } 位置作為 BC,因為它指示了智能體從源位置移動了多遠以及最終到了什麼位置。
接下來,這個可視化工具根據親代和偽子代的 BC 將它們映射到 2D 平面上。為此,它會調用圖形用戶界面 ( GUI ),GUI 的主要組成部分是兩類相互關聯的圖:一個或多個偽子代雲圖 (在單獨的 2D 平面上) 和一個適應度圖。如圖 2 所示,偽子代雲圖顯示雲中親代和偽子代的每一代的 BC,而適應度圖則顯示作為各代運行情況關鍵指標的親代適應度得分曲線。
圖 2:偽子代雲圖與適應度圖實例
用戶隨後與這些圖交互以探索偽子代雲的總體趨勢及任何親代或偽子代在進化過程中的個體行為:( 1 ) 用戶可以實現任何給定代的親代、最佳表現者和/或整個偽子代雲的可視化,並探索具有不同適應度得分的偽子代在 2D BC 平面上的數量和空間分布;( 2 ) 用戶可以實現代之間的對比,並在各代之間穿行,以可視化親代雲和/或偽子代雲如何在 2D BC 平面上移動,並探索這些移動與適應度得分曲線有何關聯 (如圖 3 所示,移動雲的完整影像片段可以自動生成);( 3 ) 點擊雲圖上的任意點可以顯示相應偽子代的行為信息和適應度得分。
圖 3 :可視化代際行為進化。每一代的顏色都會發生變化。在同一代中,每個偽子代的顏色強度基於該代適應度得分的百分位數 (聚合到五個倉中)。
其他應用案例
該工具還支持默認功能之外的高級選項和自定義可視化。例如,BC 不僅可以表示單個最終 { x,y } 點,還可以表示每個智能體的完整軌跡 (例如 1000 個時間步的串聯 { x,y } )。在這種情況下,如果 BC 的維數大於 2,則需要使用降維技術 (例如 PCA 或 t - SNE ) 將 BC 數據的維數降到 2D。該工具可以自動執行這些步驟。
如圖 4 所示,GUI 能夠載入多組 2D BC (可能通過不同的降維技術生成),並顯示在實時連接的雲圖上。該功能為用戶探索不同的 BC 選項和降維方法提供了方便的途徑。
此外,用戶還可以使用自定義功能擴展基本可視化。圖 4 展示了一個自定義雲圖,它可以顯示某些類型的特定域高維 BC(本例是智能體的完整軌跡) 以及相應的簡化 2D BC。圖 5 是自定義雲圖的另一個應用實例,它允許用戶回放智能體與環境交互時產生的確定性行為和隨機行為。
圖 4 :多個 2D BC、一個高維 BC 及一個適應度圖的可視化。
圖 5 : VINE 允許用戶查看任何智能體確定性行為和隨機行為。
該工具還可用於運動任務以外的領域。圖 6 的雲圖將 ES 訓練智能體玩寒霜引擎(Frostbite)遊戲(Atari 2600 遊戲之一)進行了可視化,其中我們使用最終模擬器 RAM 狀態 (長度為 128 的整數值向量,用於捕獲遊戲中的所有狀態變數) 作為 BC,並應用 PCA 將 BC 映射到 2D 平面上。
圖 6 :將智能體學習寒霜引擎遊戲玩法可視化。
從圖中我們可以觀察到,隨著進化的進行,偽子代雲向左移動並在那裡聚集。這個工具讓我們看到每個智能體相應的玩遊戲視頻,由此可以推斷出每個集群對應的語義意義上的不同結束狀態。
VINE 還可以實現與其他神經進化演算法的完美配合,例如 GA,該演算法可以在若干代內保持子代的數量。事實上,該工具的運行獨立於任何特定的神經進化演算法。用戶只需稍微修改他們的神經進化代碼,就可以保留他們為解決特定問題選擇的 BC。在發布的代碼中,我們將對 ES 和 GA 實現的修改作為示例。
下一步工作
因為進化方法對一組點進行操作,所以它們為新類型的可視化提供了可能。Uber 希望與機器學習團體分享有用的可視化工具,以便所有人都能從中受益。隨著神經進化擴展到具有數百萬或更多連接的神經網路,通過 VINE 等工具加深理解對於進一步的研究越來越重要,也越來越有價值。


※馬斯克宣布退出OpenAI董事會,防止與特斯拉的利益衝突
※南京大學周志華教授綜述論文:弱監督學習
TAG:機器之心 |