谷歌和OpenAI開發新工具,以更好地研究機器視覺算法如何理解世界
AI的世界到底是什麼樣子的?幾十年來,研究人員一直對此感到困惑,但近年來,機器視覺系統正在越來越多的生活領域得到應用,但是通過機器的眼睛去理解為什麼它將行人和路標分別歸類仍然是一個挑戰。谷歌和OpenAI的新研究希望通過這些系統理解世界的視覺數據,進一步打開AI的黑匣子。這種被稱為“激活地圖集(Activation Atlases)”的方法讓研究人員可以分析各種算法的工作原理,不僅揭示了它們識別的抽象形狀,顏色和圖案,還揭示瞭如何將這些元素結合起來識別特定的物體,動物和場景。
這項工作不一定是一個巨大的突破,但它在更廣泛的特徵可視化研究領域中向前邁出了一步佐治亞理工學院的博士生Ramprasaath Selvaraju雖然沒有參與這項工作,但他說這項研究非常令人著迷,並結合了許多現有的想法創造出一個非常有用的新工具。
Selvaraju認為在未來,這樣的工作將有很多用途,幫助我們建立更高效和先進的算法,並通過讓研究人員進入內部來提高他們的安全性和消除偏見。由於神經網絡固有的複雜性,它們缺乏可解釋性,但未來,當這種網絡經常用於駕駛汽車和引導機器人時,這將是必要的。
OpenAI的Chris Olah也參與了這個項目,他說:“感覺這有點像創造一個顯微鏡。至少,這就是我們所追求的目標。”
你可以在這個瀏覽下圖所示的激活地圖集的交互式版本:distill.pub/activation-atlas/
激活地圖集讓研究人員將視覺數據算法用於理解世界
激活神經元
要了解激活地圖集和其他功能可視化工具的工作原理,首先需要了解一下AI系統如何識別對象。
實現這一目標的基本方法是使用神經網絡:一種與人類大腦大致相似的計算結構(雖然它在復雜性方面落後了數年)。在每個神經網絡內部是像網狀物一樣連接的人造神經元層。像大腦中的細胞一樣,這些細胞會響應刺激,這一過程稱為激活。重要的是,它們不僅可以開啟或關閉,它們在光譜上登記,為每次激活賦予特定值或權重。
要將神經網絡變為有用的東西,必須提供大量的訓練數據。在視覺算法的情況下,這將意味著數十萬甚至數百萬的圖像,每個圖像都標記有特定的類別。在谷歌和OpenAI的研究人員為這項工作測試的神經網絡的情況下,這些類別是廣泛的:從羊毛到溫莎領帶,從安全帶到太空加熱器。
神經網絡使用多層相連的人工神經元來處理數據。不同的神經元對圖像的不同部分做出反應
當它提供這些數據時,神經網絡中的不同神經元會響應每個圖像而亮起。此模式連接到圖像的標籤,這種關聯允許網絡學習事物的樣子。一旦經過訓練,你就可以向網絡顯示以前從未見過的圖片,並且神經元將激活,將輸入與特定類別相匹配。
如果所有這些聽起來都令人不安,那就是因為,在很多方面,它都是如此。像許多機器學習程序一樣,視覺算法本質上只是模式匹配機器。這給了它們一定的優勢(例如,只要你擁有必要的數據和計算能力,就可以直接進行訓練)。但這也帶來了某些弱點(它們很容易被之前從未見過的輸入混淆)。
由於研究人員在2010年初發現了神經網絡在視覺任務方面的潛力,他們一直在試圖弄清楚它們是如何做到的。
早期的一項實驗是DeepDream,這是2015年發布的計算機視覺計劃,將任何圖片變成了自身的幻覺版本。DeepDream的視覺效果肯定是有趣的(在某些方面,它們成為了AI的美學定義),但該程序也是一個像算法一樣的早期嘗試。從某些層面上講,這一切都始於DeepDream。
後來的研究採用了同樣的基本方法並對其進行了微調:首先針對網絡中的單個神經元,看看是什麼激發了它們,然後是神經元群,然後是網絡不同層中神經元的組合。如果早期的實驗是專也而非偶然的,就像牛頓用鈍針在眼睛裡捅自己來理解視力一樣,最近的工作就已經類似於他用棱鏡對準一縷光線——即更有針對性。通過繪製神經網絡的每個部分中激活的視覺元素,一次又一次,最終,你得到地圖集:它的大腦的視覺索引。
放大和縮小激活圖集
機器視圖
但激活地圖集究竟向我們展示了算法的內部工作原理是什麼呢?你可以從這裡的谷歌和OpenAI的例子開始,它是用來解開著名的神經網絡GoogLeNet或InceptionV1的內部結構的。
滾動屏幕,可以看到網絡的不同部分如何響應不同的概念,以及這些概念是如何聚集在一起的。比如,狗在一個地方,鳥在另一個地方。你還可以看到網絡的不同層如何表示不同類型的信息。較低的層次更抽象,對基本的幾何形狀做出響應,而較高的層次則將它們分解成可識別的概念。
當你深入研究個別分類時,這真的很有趣。谷歌和OpenAI給出的一個例子是“浮潛者”和“水肺潛水員”類別之間的區別。
在下圖中,可以看到神經網絡用於識別這些標籤的各種激活。左邊是與“浮潛者”密切相關的激活,右邊是與“水肺潛水員”密切相關的激活。中間的激活是在兩個類之間共享,而條紋上的那些是更多差異化。
與“浮潛者”(左)和“水肺潛水員”(右)相關的激活
一目了然,你可以看出一些明顯的顏色和圖案。在頂部,看起來像鮮豔的魚的斑點和條紋,而在底部,有看起來像面具的形狀。但右側突出顯示的是一種不尋常的激活,一種與機車密切相關的激活。當研究人員發現這一點時,他們感到困惑。為什麼這些關於機車的視覺信息對識別戴水肺的潛水員很重要?
Carter表示,“所以我們測試了它,如果我們放一張蒸汽機車的圖片,它會把分類從浮潛者轉換為水肺潛水員?結果確實如此。”
三個圖像顯示如何重新分類相同的圖片。在左邊,它被確定為浮潛者;在中間,隨著機車的增加,它變成了水肺潛水員;當機車足夠大時,它將接管整個分類。
團隊最終找到了原因:這是因為機車的光滑金屬曲線在視覺上類似於潛水員的空氣罐。因此,對於神經網絡來說,這是浮潛者和水肺潛水員之間的一個明顯區別。為了節省區分這兩個類別的時間,它只是從其他地方借用了所需的識別視覺數據。
這種例子神奇地揭示了神經網絡的運作方式。對於懷疑論者,它顯示了這些系統的局限性。他們說,視覺算法可能是有效的,但他們學到的信息實際上與人類如何理解世界無關。這使他們容易受到某些詭計的影響。例如,如果你只將一些精心挑選的像素投射到圖像中,則可能足以使算法對其進行錯誤分類。
但對於研究者來說,激活地圖集和類似工具所揭示的信息顯示了這些算法的驚人的深度和靈活性。例如,Carter指出,為了使算法區分浮潛者和水肺潛水員,它還將不同類型的動物與每個類別聯繫起來。
“在深水中生活的動物,比如海龜,是通過水肺呼吸的;而在水面生活的動物,比如鳥類,是通過呼吸管呼吸的。”他指出,這是系統從來沒有直接去學習的信息。相反,它只是自己找到了它。這就像是對世界更深層次的理解。
Olah表示同意,“我發現在高分辨率下透過這些地圖集看起來幾乎令人敬畏,只看到這些網絡可以代表的巨大空間。”
他們希望通過這樣的工具,將有助於推動AI的整個領域。通過了解機器視覺系統如何看待世界,理論上我們可以更有效地構建它們並更徹底地檢查它們的準確性。