神經網絡特徵可視化新技術:用激活地圖集(Activation Atlases)探索神經網絡

本文介紹OpenAI和Google特徵可視化新技術:用激活地圖集探索神經網絡
Exploring Neural Networks with Activation Atlases

原文鏈接:<https://distill.pub/2019/activation-atlas/&gt;
Demo:https://distill.pub/2019/activation-atlas/app.html
代碼:https://github.com/tensorflow/lucid/#activation-atlas-notebooks
神經網絡特徵可視化新技術:用激活地圖集(Activation Atlases)探索神經網絡
通過使用特徵反演(feature inversion)來顯示來自圖像分類網絡的數百萬個激活,我們創建了一個可探索的激活地圖集,其中包含網絡已經學習的特徵,可以揭示網絡通常如何表示某些概念。

引言

神經網絡可以學習比人類直接設計的任何系統更準確地分類圖像。這提出了一個自然的問題:這些網絡學到了什麼使它們能夠很好地對圖像進行分類?

特徵可視化是研究的一條線:它試圖通過讓我們透過網絡之眼來回答這個問題。 它開始於研究個體神經元的可視化並試圖確定它們的反應。因爲神經元不能孤立地工作,所以這導致需要對神經元的簡單組合進行特徵可視化。但是仍然存在一個問題 - 我們應該研究哪些神經元組合? 一個自然的答案(由模型反演工作預示)是做可視化激活,即對一個特定輸入的神經元激發進行組合。

這些方法令人興奮,因爲它們可以使網絡的隱藏層易於理解。這些層是神經網絡如何勝過傳統的機器學習方法的核心,而在歷史上,我們對其中發生的事情幾乎一無所知。特徵可視化通過將隱藏層連接回輸入來實現此目的,使其具有意義。

不幸的是,可視化激活有一個主要的弱點 - 僅限於看到網絡如何看到單個輸入。 因此,它沒有給網絡一個大的圖畫。 當我們想要的是整個森林的地圖時,一次檢查一棵樹是不夠的。

有些技術可以提供更全面的視圖,但它們往往還有其他缺點。例如,Karpathy的CNN代碼可視化接收每個圖像並組織從一個神經網絡的激活值來提供數據集的全局視圖。模型看到的圖像確實有助於我們推斷出有關哪些特徵是網絡正在響應的,但特徵可視化使這些連接更加明確。Nguyen等使用t-SNE進行更多樣化的神經元可視化。通過在t-SNE圖中聚類圖像,爲優化過程生成不同的起點。這揭示了神經元檢測到的更大的圖畫,但仍然關注單個神經元。

在本文中,我們將介紹激活地圖集這種技術。從廣義上講,我們使用的技術類似於CNN代碼中的技術,但不是顯示輸入數據,而是顯示平均激活的特徵可視化。通過結合這兩種技術,可以在一個視圖中獲得每個技術的優勢 – 得到一個透過網絡之眼看到的全局地圖。

從理論上講,基礎神經元的特徵可視化將爲我們提供正在尋求的網絡的全局視圖。 然而,在實踐中,網絡很少孤立地使用神經元,並且可能難以用這種方式理解它們。作爲類比,雖然字母表中的26個字母爲英語提供了基礎,但看到字母如何組合以成爲單詞,可以比單獨的字母更能洞察可以表達的概念。同樣,激活地圖集通過顯示神經元的常見組合爲我們提供了更大的圖畫。
神經網絡特徵可視化新技術:用激活地圖集(Activation Atlases)探索神經網絡

  • 可視化單個神經元使隱藏層有些有意義,但錯過了神經元之間的相互作用 - 它只向我們展示了高維激活空間的一維的正交的探頭。
  • 成對交互(Pairwise interactions)揭示了交互效應,但它們僅顯示具有數百個維度的空間的二維切片,並且許多組合是不現實的。
  • 空間激活(Spatial activations)通過對可能激活的子流形進行採樣顯示許多神經元的重要組合,但它們僅限於給定示例圖像中出現的那些。
  • 通過對更多可能的激活進行採樣,激活地圖集提供了更大的圖像概覽。

這些地圖集不僅揭示了模型中的視覺抽象,而且在文章的後面我們將展示它們可以揭示可被利用的模型中的高層次的誤解。 例如,通過查看激活圖集,我們將能夠看到爲什麼棒球圖片可以將圖像的分類從“灰鯨”切換爲“大白鯊”。
神經網絡特徵可視化新技術:用激活地圖集(Activation Atlases)探索神經網絡
當然,激活地圖集確實有侷限性。
特別是,它們依賴於選擇的數據分佈(我們使用從ImageNet數據集訓練數據中隨機選擇的一百萬個圖像)。
因此,它們僅顯示樣本數據分佈中存在的激活。 然而,重要的是雖然要意識到這些限制,激活地圖集仍然提供了神經網絡可以代表什麼的新概述。

看單個圖像

在深入研究激活地圖集之前,我們簡要回顧一下如何使用特徵可視化使激活向量變得有意義(“透過網絡的眼睛看”)。 這種技術在Building Blocks中引入,並將成爲激活地圖集的基礎。(The Building Blocks of Interpretability. Olah, C., Satyanarayan, A., Johnson, I., Carter, S., Schubert, L., Ye, K. and Mordvintsev, A., 2018. Distill. DOI: 10.23915/distill.00010)

在整篇文章中,我們將關注一個特定的神經網絡:InceptionV1(也稱爲“GoogLeNet”)。 它在2014年ImageNet大規模視覺識別挑戰中贏得圖像分類任務。

InceptionV1由若干層組成,將其稱爲“mixed3a”,“mixed3b”,“mixed4a”等,有時簡稱爲“3a”。 每個層依次建立在前面的層上。
神經網絡特徵可視化新技術:用激活地圖集(Activation Atlases)探索神經網絡
爲了可視化InceptionV1如何看到圖像,第一步是將圖像輸入網絡並將其運行到感興趣的層。 然後收集激活 - 每個神經元激發多少的數值。 如果神經元被顯示的東西激發,它的激活值將是正的。

不幸的是,這些激活值的向量只是無單位數的向量,並不是人可以解釋的。這就是特徵可視化的用武之地。簡單地說,我們可以將特徵可視化看做創建網絡認爲會產生特定激活向量的一個理想化圖像。雖然通常使用網絡將圖像轉換爲激活矢量,但在特徵可視化中,卻朝着相反的方向前進。從特定圖層的激活矢量開始,通過迭代優化過程創建一個圖像。

因爲InceptionV1是卷積網絡,所以每個圖像的每層不僅有一個激活矢量。 這意味着在前一層的每個圖塊上運行相同的神經元。 因此,當通過網絡傳遞整個圖像時,每個神經元將被評估數百次,對於圖像的每個重疊圖塊一次。 我們可以考慮每個神經元分別爲每個圖塊發射出多少的向量。
神經網絡特徵可視化新技術:用激活地圖集(Activation Atlases)探索神經網絡
結果是一個特徵可視化網格,每個圖塊一個。 這向我們展示了網絡如何看到輸入圖像的不同部分。
神經網絡特徵可視化新技術:用激活地圖集(Activation Atlases)探索神經網絡

聚合多個圖像

激活網格顯示網絡如何看到單個圖像,但如果我們想要查看更多內容呢? 如果我們想了解它對數百萬張圖像的反應怎麼辦?

當然,可以逐個查看這些圖像的各個激活網格。但是看着數以百萬計的例子並沒有擴展,人類的大腦也不善於比較很多沒有結構的例子。就像需要像直方圖這樣的工具來理解數百萬個數字一樣,如果想要在數百萬個數字中看到有意義的模式,需要一種聚合和組織激活的方法。

讓我們從收集一百萬張圖片的激活開始吧。我們將爲每個圖像隨機選擇一個空間激活。這給了我們一百萬個激活向量。每個向量都是高維的,可能是512維! 有了這麼複雜的數據集,如果想要一個大圖片視圖,需要組織和聚合它們。

值得慶幸的是,我們擁有現代降維技術。這些算法,如t-SNE和UMAP,可以將高維數據(如激活矢量集合)投影到有用的2D佈局中,從而保留原始空間的一些局部結構。 這需要組織激活向量,但還需要聚合成更易管理的元素 - 一百萬個點難以解釋。我們將通過在維度減少的情況下創建的2D佈局上繪製網格來實現此目的。對於網格(grid)中的每個cell,我們均位於該cell邊界內的所有激活,並使用特徵可視化來創建一個圖標表示(iconic representation)。
神經網絡特徵可視化新技術:用激活地圖集(Activation Atlases)探索神經網絡

  • 通過網絡饋送一組隨機的一百萬個圖像,每個圖像收集一個隨機空間激活。
  • 通過UMAP提供激活以將其減少到二維。 然後繪製它們,相似的激活放置在彼此附近。
  • 然後,繪製一個網格並對位於cell內的激活進行平均,並對平均激活進行特徵反演。 我們還可以根據平均內部激活次數的密度來選擇網格單元(grid cell)的大小。

我們使用特徵可視化中描述的正則化(特別是變換魯棒性)執行特徵可視化。 但是,我們使用略微不標準的目標。 通常,爲了使激活空間中的一個方向可視化,神經網絡特徵可視化新技術:用激活地圖集(Activation Atlases)探索神經網絡,可以在一個位置最大化與激活矢量神經網絡特徵可視化新技術:用激活地圖集(Activation Atlases)探索神經網絡的點積神經網絡特徵可視化新技術:用激活地圖集(Activation Atlases)探索神經網絡。我們發現通過將點積乘以餘弦相似度來使用更強調角度的目標是有幫助的,從而得到以下形式的目標:
神經網絡特徵可視化新技術:用激活地圖集(Activation Atlases)探索神經網絡

我們還發現,白化激活空間以使其無法拉伸可以幫助改善特徵可視化。我們還沒有完全理解這種現象。

對於每個激活矢量,我們還計算一個歸因矢量(attribution vector)。 歸因向量對每個類有一個條目(entry),並且近似於激活向量影響每個類的logit的量。 歸因向量通常取決於周圍上下文。我們遵循Building Blocks來計算某個位置的激活矢量神經網絡特徵可視化新技術:用激活地圖集(Activation Atlases)探索神經網絡到一個類別神經網絡特徵可視化新技術:用激活地圖集(Activation Atlases)探索神經網絡的歸因爲神經網絡特徵可視化新技術:用激活地圖集(Activation Atlases)探索神經網絡。也就是說,估計一個神經元對一個logit的影響是增加該神經元影響這個logit的rate(That is, we estimate that the effect of a neuron on a logit is the rate at which increasing the neuron affects the logit)。 這類似於Grad-CAM,但沒有梯度的空間平均。相反,我們通過在計算梯度時對最大池化使用梯度的連續鬆弛來減少梯度中的噪聲。激活地圖集中的cell顯示的歸因是該cell中激活的歸因向量的平均值。

這種平均歸因可以被認爲是顯示cell傾向於支持哪些類,在上下文中邊緣化。 在早期階段,平均歸因非常小,得分最高的類別相當隨意,因爲像紋理這樣的低級視覺特徵在沒有上下文的情況下往往不會非常具有辨別力。

那麼,這有多好? 好吧,讓我們嘗試將它應用於InceptionV1的mixed4c層。
神經網絡特徵可視化新技術:用激活地圖集(Activation Atlases)探索神經網絡
這張地圖集乍一看可能有點震撼 - 有很多事情要發生! 這種多樣性反映了模型發展的各種抽象和概念。讓我們來看一下更深入地研究這個地圖集。

如果看一下地圖集的左上角,我們會看到什麼看起來像動物頭。不同類型的動物之間存在一些差異,但它似乎更多地是一般的哺乳動物 - 眼睛,毛皮,鼻子 - 的元素集合,而不是不同類別的動物的集合。 我們還添加了標籤,顯示每個平均激活最有助於哪個類。 請注意,在網絡早期的某些區域中,這些歸屬標籤可能會有些混亂。在早期層中,歸因向量的幅度很小,因爲它們對輸出沒有一致的影響。
神經網絡特徵可視化新技術:用激活地圖集(Activation Atlases)探索神經網絡
神經網絡特徵可視化新技術:用激活地圖集(Activation Atlases)探索神經網絡
隨着我們向下移動,我們開始看到不同類型的毛皮和四足動物的背部。
神經網絡特徵可視化新技術:用激活地圖集(Activation Atlases)探索神經網絡
在此之下,我們發現不同的動物腿和腳擱在不同類型的地面上。
神經網絡特徵可視化新技術:用激活地圖集(Activation Atlases)探索神經網絡
在腳下,我們開始失去任何可識別的動物部分,並看到孤立的地面和地板。我們看到歸因於“沙洲”等環境以及地面上發現的東西,如“門墊”或“螞蟻”。
神經網絡特徵可視化新技術:用激活地圖集(Activation Atlases)探索神經網絡
這些沙質的岩石背景慢慢融入海灘和水體。 在這裏,我們可以看到水面上下的湖泊和海洋。 雖然網絡確實有某些類別,如“海濱”,但我們看到許多海洋動物的歸因,沒有動物本身的任何視覺參考。雖然並不出人意料,但令人欣慰的是,用於識別“海濱”級海洋的激活與“海星”或“海獅”分類時使用的激活相同。湖泊和海洋之間在這一點上也沒有真正的區別 - “湖邊”和“河馬”歸因與“海星”和“黃貂魚”混合在一起。
神經網絡特徵可視化新技術:用激活地圖集(Activation Atlases)探索神經網絡
現在跳到地圖集的另一邊,在那裏可以看到許多文本檢測器的變化。這些在識別“菜單”,“網站”或“書籍外皮”等類時非常有用。
神經網絡特徵可視化新技術:用激活地圖集(Activation Atlases)探索神經網絡
向上移動,我們看到很多人的變化。 很少有類可以專門識別ImageNet中的人,但人會出現在很多圖像中。我們看到人使用的東西(“錘子”,“長笛”),人穿的衣服(“領結”,“maillot”)和人蔘加的活動(“籃球”)的歸因。 這些可視化中的膚色均勻,我們懷疑這是用於訓練的數據分佈的反映。(你可以在線分類瀏覽ImageNet訓練數據:泳褲、尿布、創可貼、口紅等)。
神經網絡特徵可視化新技術:用激活地圖集(Activation Atlases)探索神經網絡
最後,回到左邊,可以看到圓形的食物和水果主要由顏色組織 - 我們看到歸因於“檸檬”,“橙子”和“無花果”。
神經網絡特徵可視化新技術:用激活地圖集(Activation Atlases)探索神經網絡
我們還可以通過創建的這個流形追蹤彎曲的路徑。 不僅區域重要,而且通過空間的某些運動似乎與人可解釋的品質相對應。通過水果,可以追蹤一條似乎與框架中水果的大小和數量相關的路徑。
神經網絡特徵可視化新技術:用激活地圖集(Activation Atlases)探索神經網絡
同樣地,對於人,可以追蹤一條似乎與框架中有多少人相對應的路徑,無論是單個人還是人羣。
神經網絡特徵可視化新技術:用激活地圖集(Activation Atlases)探索神經網絡
通過地面檢測器,可以追蹤從水到海灘到岩石峭壁的路徑。
神經網絡特徵可視化新技術:用激活地圖集(Activation Atlases)探索神經網絡
在植物區域,可以追蹤一條似乎與植物模糊程度相對應的路徑。 由於相機的典型焦距,這可能用於確定物體的相對尺寸。 特寫小昆蟲的照片比像猴子這樣的大型動物的照片有更多的機會模糊背景葉子。
神經網絡特徵可視化新技術:用激活地圖集(Activation Atlases)探索神經網絡
重要的是要注意,這些路徑是在低維投影中構造的。它們在這種降維的投影中是平滑的路徑,但我們不一定知道路徑如何在原始的高維激活空間中操作。

看多個層

在上一節中,我們主要關注網絡的一層,mixed4c,它位於網絡的中間。 卷積網絡通常很深,由許多層組成,逐步構建更強大的抽象。 爲了獲得整體視圖,我們必須研究模型的抽象如何在多個層上發展。
神經網絡特徵可視化新技術:用激活地圖集(Activation Atlases)探索神經網絡
首先,比較來自網絡不同區域的三個層,試圖瞭解每個層的不同個性 - 一個非常早的層(mixed3b),一箇中間層(mixed4c)和在logits之前的最後一層(mixed5b)。 我們將關注每層有助於“捲心菜”分類的區域。
神經網絡特徵可視化新技術:用激活地圖集(Activation Atlases)探索神經網絡
當你在網絡中移動時,後面的層似乎變得更加具體和複雜。 這是可以預期的,因爲每個層都在前一層的激活之上構建其激活。 後面的層也傾向於具有比它們之前的更大的感受野(意味着它們被顯示爲更大的圖像子集),因此概念似乎包含更多的整個對象。

還有另一個值得注意的現象:不僅概念被細化(refine),新概念也出現在舊概念的組合中。下面,你可以看到沙子和水是如何在中間層mixed4c中是不同概念,兩者都具有對“沙洲”分類的強大歸因。將此與後一層混合5b進行對比,其中兩個想法似乎融合爲一個激活。
神經網絡特徵可視化新技術:用激活地圖集(Activation Atlases)探索神經網絡
最後,如果稍微縮小一點,可以看到激活空間的更廣的形狀如何在層與層之間變化。通過查看幾個連續層中的相似區域,可以看到概念得到細化和區分 - 在mixed4a中,看到非常模糊的通用blob,它被mix4e細化爲更具體的“半島”。
神經網絡特徵可視化新技術:用激活地圖集(Activation Atlases)探索神經網絡
神經網絡特徵可視化新技術:用激活地圖集(Activation Atlases)探索神經網絡
神經網絡特徵可視化新技術:用激活地圖集(Activation Atlases)探索神經網絡
神經網絡特徵可視化新技術:用激活地圖集(Activation Atlases)探索神經網絡
神經網絡特徵可視化新技術:用激活地圖集(Activation Atlases)探索神經網絡
你可以在下面瀏覽更多InceptionV1層。 你可以將mixed4a的彎曲邊緣檢測器與mixed5b的碗和杯進行比較。 Mixed4b有一些有趣的文本和模式檢測器,而mixed5a似乎使用它們來區分菜單和填字遊戲中的填字遊戲。 在早期的圖層中,比如mixed4b,你會看到彼此相似的紋理,比如面料。 在以後的圖層中,你將看到特定類型的服裝。
神經網絡特徵可視化新技術:用激活地圖集(Activation Atlases)探索神經網絡

專注於單一分類

查看所有激活的圖集可能有點頭暈,特別是當你試圖瞭解網絡如何排序某個特定類時。 例如,讓我們研究網絡如何對“救火船”進行分類。
神經網絡特徵可視化新技術:用激活地圖集(Activation Atlases)探索神經網絡
首先看一下地圖集最後一層,mixed5b。 但是,我們不會顯示所有激活,而是計算每次激活對“fireboat”分類的貢獻量,然後將該值映射到激活圖標的不透明度。 對“救火船”分類有很大貢獻的區域將清晰可見,而貢獻很少(甚至貢獻不利)的區域將完全透明。

剛剛查看的圖層mixed5b位於最終的分類層之前,因此它與最終類緊密對齊似乎是合理的。 讓我們先看一下網絡中的一個層,比如mixed4d,看看它是如何不同的。
神經網絡特徵可視化新技術:用激活地圖集(Activation Atlases)探索神經網絡
在這裏,我們看到了一個截然不同 如果我們看一些更多的輸入示例,這似乎是完全合理的。 這幾乎就像我們可以看到網絡將在後面的層中使用的組件概念的集合來分類“fireboat”。 窗戶+起重機+水=“消防船”。
神經網絡特徵可視化新技術:用激活地圖集(Activation Atlases)探索神經網絡
神經網絡特徵可視化新技術:用激活地圖集(Activation Atlases)探索神經網絡
其中一個簇,一個帶有窗戶的簇,具有強烈的“救火船”歸因。但就其自身,它對“有軌電車”具有更強的歸因。 那麼,讓我們回到地圖集的mixed4d,將“有軌電車”與“救火船”所看到的模式進行比較。 讓我們更仔細地看一下四個突出的區域:突出顯示了救火艇的三個區域以及一個有軌電車高度激活的區域。
神經網絡特徵可視化新技術:用激活地圖集(Activation Atlases)探索神經網絡
如果放大,可以更好地瞭解這一層的兩個分類的區別。

如果看幾個輸入示例,可以看到建築物和水的背景是區分“消防船”和“有軌電車”的一個簡單方法。
神經網絡特徵可視化新技術:用激活地圖集(Activation Atlases)探索神經網絡
通過隔離對一個類有強貢獻的激活並將其與其他類激活進行比較,可以看到哪些激活在類之間是保持的,哪些激活又重組以在後面的層中形成更復雜的激活。下面你可以通過幾層InceptionV1探索ImageNet中許多類的激活模式。 你甚至可以探索負面歸因,我們在本次討論中忽略了這些歸因。

進一步隔離類

突出顯示完整地圖集的特定類別激活有助於瞭解該類如何與網絡“可以看到”的完整空間相關聯。但是,如果想要真正隔離有助於特定類的激活,可以刪除所有其他激活而不是僅僅調暗它們,創建我們稱之爲一個類激活地圖集的內容。 與一般地圖集類似,在類特定的激活向量上執行降維,以便在類激活地圖集中安放顯示的特徵可視化。

一個類激活地圖集使我們能夠更清楚地瞭解網絡使用哪些檢測器對特定類進行排序。 在“呼吸管”示例中,可以清楚地看到海洋、水下和彩色面具。
神經網絡特徵可視化新技術:用激活地圖集(Activation Atlases)探索神經網絡
在前面的示例中,僅顯示那些針對相關激活最強歸因。這將向我們展示激活,這些激活主要對我們的類有所貢獻,即使它們的整體強度很低(如背景探測器)。 但在某些情況下,我們希望看到強烈的相關性(比如魚和浮潛器)。 相比我們感興趣的一個類,這些激活本身可能對別的一個不同的類貢獻更大。但它們的存在也可以對我們感興趣的類產生強的貢獻。對此,我們需要選擇不同的濾波方法。
神經網絡特徵可視化新技術:用激活地圖集(Activation Atlases)探索神經網絡
使用幅度濾波方法,讓我們嘗試比較兩個相關的類,看看是否可以更容易地看到它們的區別。 (我們可以改爲使用排序,或兩者的組合,但幅度足以向我們展示各種各樣的概念)。
神經網絡特徵可視化新技術:用激活地圖集(Activation Atlases)探索神經網絡
立即理解類之間的所有差異可能有點困難。 爲了使比較更容易,可以將兩個視圖合併爲一個。 我們將橫向繪製“浮潛員”和“水肺潛水員”的歸因之間的差異,並使用t-SNE垂直聚類相似的激活。
神經網絡特徵可視化新技術:用激活地圖集(Activation Atlases)探索神經網絡
在這個比較中,可以在左側看到一些類似鳥類的生物和透明管,暗示與“通氣管”的相關性,以及一些類似鯊魚的生物和右邊的圓形,有光澤和金屬的東西,暗示與“水肺潛水”的相關性 “(該激活對蒸汽機車類有很強的歸因)。 讓我們從標記爲“浮潛”的ImageNet數據集中獲取圖像,並添加類似於此圖標的內容,以瞭解它如何影響分類分數。
神經網絡特徵可視化新技術:用激活地圖集(Activation Atlases)探索神經網絡
這裏的失效模式似乎是該模型正在使用其檢測用於“蒸汽機車”類來識別空氣罐以幫助對“潛水員”進行分類。(譯者注:即把“浮潛“誤判爲”水肺潛水”) 我們稱之爲“多用途”特徵- 檢測器可以對視覺上相似的非常不同的概念做出反應。 下面看這個問題的另一個例子。讓我們來看看“灰鯨”和“大白鯊”之間的區別。
神經網絡特徵可視化新技術:用激活地圖集(Activation Atlases)探索神經網絡
在這個例子中,我們看到另一個似乎扮演兩個角色的檢測器:檢測棒球上的紅色縫線和鯊魚的白色牙齒和粉紅色的口。這個檢測器也出現在激活地圖集層mixed5b濾波到“大白鯊”。它的歸因是各種各樣的球,最重要的是“棒球”。

讓我們將一個棒球圖片添加到ImageNet的“灰鯨”圖片中,看看它是如何影響分類的。
神經網絡特徵可視化新技術:用激活地圖集(Activation Atlases)探索神經網絡
結果非常接近前面例子中的模式。 添加一個小型棒球確實將頂級分類改爲“大白鯊”。隨着它越來越大,它主導了分類,所以頂部的位置變爲“棒球”。

讓我們看一個例子:“煎鍋”和“炒鍋”。
神經網絡特徵可視化新技術:用激活地圖集(Activation Atlases)探索神經網絡
這裏有一個不同之處 - 存在相關食物的類型。 在右邊,我們可以清楚地看到類似麪條的東西(它們對“carbonara”類有很強的歸因)。 讓我們從ImageNet拍下一張標有“煎鍋”的照片,並添加一些麪條的插圖。

這裏的圖塊在降低初始分類方面不那麼有效。這是有道理的,因爲麪條狀圖標更多地朝着可視化的中心繪製,因此歸因的差異較小。 我們懷疑訓練集只包含更多的麪條炒鍋圖像而不是煎鍋麪條。
神經網絡特徵可視化新技術:用激活地圖集(Activation Atlases)探索神經網絡

在數千張圖像上測試數十個圖塊

到目前爲止,我們只展示了這些圖塊的單個示例。下面我們展示了十個樣本圖塊的結果(每個集合包括我們上面探討過的一個例子),通過執行來自相關類的ImageNet訓練集的1,000個圖像。 雖然它們在所有情況下都沒有效果,但它們確實將圖像分類翻轉到大約五分之二的圖像中。 如果還允許將圖塊定位在最有效尺寸的圖像的四個角中的最佳位置(左上,右上,左下,右下),則成功率達到約每2個圖像1個。 爲了確保不僅阻止了最初類的證據,我們還將每次與隨機噪聲圖像圖塊進行比較。
神經網絡特徵可視化新技術:用激活地圖集(Activation Atlases)探索神經網絡
神經網絡特徵可視化新技術:用激活地圖集(Activation Atlases)探索神經網絡
神經網絡特徵可視化新技術:用激活地圖集(Activation Atlases)探索神經網絡
我們的attacks可以看作是一部分研究人員在傳統的epsilon球對抗性例子(epsilon ball adversarial examples)之外探索輸入attacks。 在許多方面,我們的attacks最類似於對抗圖塊(adversarial patches),它也會在輸入圖像中添加一個小圖塊。 從這個角度來看,對抗性圖塊更加有效,工作更加可靠。 但是,我們認爲我們的attacks很有趣,因爲它們是人從對模型的理解中合成的,並且似乎在更高的抽象層次上模型。

我們還想強調的是,並非所有類之間比較都顯示這些類型的圖塊,並且並非所有可視化中的圖標都有同樣有效。我們只在一個模型上測試它們。 如果想更系統地找到這些圖塊,一個不同的方法可能更有效。 然而,類激活地圖集技術是在我們知道尋找它們之前就揭示這些圖塊的存在。

結論和未來的工作

激活地圖集爲我們提供了一種融入卷積視覺網絡的新方法。它們爲隱藏層中的概念提供了全局、層次化和人可解釋的概念的概觀。這不僅可以讓我們更好地瞭解這些複雜系統的內部工作原理,而且可以啓用新的接口來處理圖像。

模型的內在屬性

絕大多數神經網絡研究側重於網絡行爲的定量評估。模型的準確度如何? precision-recall曲線是什麼?

雖然這些問題可以描述網絡在特定情況下的行爲,但它並沒有讓我們很好地理解它的行爲方式。要真正理解網絡行爲的原因,需要充分了解網絡的豐富內部世界 - 它是隱藏的層。 例如,更好地瞭解InceptionV1如何從mixed4d中的組件部件構建救火船的分類器,這可以幫助我們建立對模型的信心,並且可以在不滿足我們想要時原因浮出水面。

參與這個內在世界也邀請我們以新的方式進行深度學習研究。通常情況下,每個神經網絡實驗只給出一些反饋 - 無論損失是上升還是下降 - 以通知下一輪實驗。在多年積累的模糊直覺的指導下,我們通過幾乎盲目的試驗和錯誤來設計架構。在未來,我們希望研究人員能夠對它們模型中每一層所做的事情進行豐富的反饋,而不是以當前看起來像在黑暗中磕磕絆絆摸索的方法。

激活地圖集,就像它們目前的情況一樣,不足以真正幫助研究人員迭代模型,部分原因是它們無法比較。 如果你看兩個略有不同的模型的地圖集,很難帶走任何東西。 在未來的工作中,我們將探索類似的可視化如何比較模型,從而顯示錯誤率之外的相似點和差異。

新接口

機器學習模型通常被部署爲黑盒子,可以自動執行特定任務,並自行執行。 但是越來越多的人認爲,我們可能有另一種方式與它們聯繫:可以更直接地使用它們,而不是逐漸使任務自動化。 我們發現特別引人注目的這種增強的一個願景是神經網絡學習的內部表示可以被重新用作工具。 我們已經在圖像和音樂中看到了令人興奮的演示。

我們認爲激活地圖集揭示了圖像的機器學習字母表 - 一組簡單的原子概念,它們被組合並重新組合以形成更復雜的視覺想法。 與使用文字處理器將字母轉換爲單詞,將單詞轉換爲句子的方式相同,我們可以想象一種工具,它允許我們從機器學習的語言系統中爲圖像創建圖像。 類似於GAN繪畫,想象使用類似激活地圖集的東西作爲調色板 - 可以將畫筆浸入“樹”激活並用它繪畫。 這裏是用概念的調色板而不是顏色的調色板。

雖然分類模型通常不被認爲是用於生成圖像,但有技術已經表明這完全是可能的。 在這個特定的例子中,我們想象通過從圖集(或某些推導)中選擇它們來構建激活網格,然後優化與用戶構造的激活矩陣相對應的輸出圖像。

我們還可以使用這些地圖集來查詢大型圖像數據集。 與使用單詞檢測大型文本語料庫的方式相同,我們也可以使用激活地圖集來查找大型圖像數據集中的圖像類型。 使用單詞來搜索類似“樹”的東西是相當強大的,但隨着你查詢的具體化,人類語言通常不適合描述特定的視覺特徵。 相比之下,神經網絡的隱藏層是爲了表示視覺概念而唯一目的而優化的語言。 而不是使用衆所周知的千言萬語來唯一地指定一個人正在尋找的圖像,我們可以想象有人使用激活地圖集的語言。

最後,我們還可以將激活地圖集比作直方圖。 與傳統直方圖爲大型數據集提供良好摘要的方式相同,激活地圖集可用於對大量圖像建立彙總。

在本文的示例中,我們使用相同的數據集來訓練模型,就像我們收集激活一樣。 但是,如果我們使用不同的數據集來收集激活,我們可以使用圖集作爲檢查未知數據集的方法。 激活地圖集可以向我們顯示圖像中存在的學習概念的直方圖。 這樣的工具可以向我們展示數據的語義,而不僅僅是視覺上的相似性,比如顯示常見像素值的直方圖。

雖然我們對激活地圖集的潛力感到興奮,但我們對於爲其他類型的模型開發類似技術的可能性更加興奮。 想象一下,如果對圖像、音頻和文本有一系列機器學習學習到的、人可解釋的語言,值得期待。

後記:本人博客將會不斷推出深度學習之計算機視覺方面的文章,請關注。常回來看看。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章