深度解析神經網路中每個神經元的使命 | MIT朱俊彥&港中文周博磊力作

  • 2020 年 11 月 9 日
  • AI

作者 | 李科雨

編輯 | 陳大鑫

我們都知道,深度神經網路擅長查找可解決大型數據集上複雜任務的分層表示。
而對我們人類來講,應該如何理解這些學習得到的表示呢?
今天AI科技評論介紹的這項工作中,MIT朱俊彥團隊&港中文周博磊等人主要介紹了對網路的解剖,這個網路框架可以系統地識別影像分類和影像生成網路中各個隱藏單元的語義。

論文鏈接://arxiv.org/pdf/2009.05041v1.pdf

開源鏈接://github.com/davidbau/dissect
項目網站://dissect.csail.mit.edu
首先,本篇文章分析了經過場景分類訓練的卷積神經網路(CNN),並發現了與各種物體對象概念相匹配的單元。
研究結果發現,神經網路已經學到了許多對象類的特徵,這些學習得來的結果在場景的分類中起著至關重要的作用。
其次,研究人員使用類似的分析方法,分析了生成場景的生成對抗網路(GAN)模型。通過分析在激活或停用少量隱藏單元時所做的微小改變,研究人員發現了可以在適應上下文語境的同時,從輸出場景中添加和刪除對象。
最後,本篇文章還將本文分析框架使用於理解對抗攻擊和語義影像編輯的兩個應用上去。

1

每個神經元的使命之探索

想必大部分深度學習工作者對於應用前沿深度框架已經駕輕就熟,然而,有多少人有想過,在越來越複雜的網路框架和越來越多的神經元數量中,每個神經元本身所起到的作用?
這不,MIT朱俊彥團隊以及港中文周博磊的力作——《Understanding the role of individual units in a deep neural network》就深入討論了這個問題,並且已經成功被PNAS(Proceedings of the National Academy of Sciences of the United States of America,美國科學院報)接收。
在這篇文章中,作者不僅詳盡展現了團隊成員這些年在此領域所做的探索和努力的成果,還啟發性地提出了此項研究的兩個潛在應用,接下來,我們一起來深入詳細了解一下此項有趣的偉大工程吧:
深度網路中獨立隱藏單元可以教會我們神經網路是如何解決複雜問題嗎?
在最前沿的深度神經網路研究中, 研究者們已經觀察到,許多獨立的神經單元可以對應一些人類可以理解的具體概念,而這些概念是訓練之初人們並沒有主動交給網路去學習的,比如:物體(對象),區域(部分),性別,語境,結構,事態,感情等等。
而找到這些具有實際意義的抽象概念,是深度學習的主要目的之一,然而,至今,每個具有明確涵義的單元的出現,以及在網路中扮演的角色並不能被非常好的理解。
因此,本篇文章就開始了靈魂發問:
「我們可以量化單個概念單元的出現嗎?哪種具體概念可以被對應到呢?它們又服務於哪個函數呢?」
當一個神經網路包括一個激活樹的生成單元的時候,我們希望去知道這到底是虛假的關聯,抑或是因為某些邏輯上的原因,使得網路在高層次上對樹這一對象進行建模的過程得以顯露。
為了研究以上問題,朱俊彥&周博磊團隊引入了網路解剖模型,此模型主要對深度卷積神經網路(CNN)的語義概念進行了系統的映射。
在此類網路中,基本的計算單元是一個學習過的卷積過濾器,而這是解決一系列電腦視覺領域中廣泛的判別和生成任務的最新結構。
通過將每個神經元的活動和對於人類的可解釋模式匹配任務(比如物體類別檢測)進行對比,神經網路解剖可以定義,可視化和量化獨立神經元的具體角色。
和前人研究不同的是,本文直接對網路內部的計算進行了解釋,而不是訓練一個輔助解釋模型。
在本文的處理中,研究人員主要將在兩種不同任務上訓練的模型進行了解剖,這兩個任務分別是影像分類和‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍影像生成‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍。
研究人員發現,一個訓練好的網路包含和高層次視覺概念相對應的神經單元,而這些並沒有在訓練數據中標記出來。
舉個例子,當模型被訓練用來分類或者生成自然風光圖片的時候,兩種網路都出現了和「樹」的概念相對應的獨立神經元,即使在訓練過程中,研究人員從來沒有教給神經網路「樹」的概念。
而這一工作,可以促使研究人員利用激活或者關閉神經元的方法,進一步測試網路行為的推理結構。
下面是對兩種網路的探索的簡單概括:
  • 在分類器中,本文主要使用這些干預措施,去探索了一小部分的對應視覺具體概念的神經單元是否可以解釋某個特定類的分類表現。
    舉個例子,研究團隊探索了當移動一部分檢測雪,山脈,樹和房屋的神經元之後,整個網路將影像分類為滑雪勝地的能力將如何被影響。
  • 在場景影像生成器神經網路中,研究人員探索了對應於具體對象的單元是如何影響風景中具體物體的渲染的。
    比如,移動樹單元是如何影響輸出影像樹的外觀和其他物體的展現的。‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍
最後,使用兩個應用場景,本文證明了該研究發現的實際意義:
  • 研究人員展示了,在某個分類器上的對抗攻擊其實可以被理解為對對應於某個類的重要神經元的攻擊。
  • 同時,研究人員將單元干預措施使用在生成器上,通過直接操縱神經元的機制,使得人們可以在風景畫上修改諸如樹和門之類的語義概念。
說了這麼多,實驗結果如何呢?下面我們一起來看看實驗的具體效果吧:


2

實驗結果

景色分類器中物體檢測器的出現

首先,在景色分類任務訓練時,研究人員對物體檢測器對應的單元進行了定義。具體來說,研究者對VGG-16結構的CNN網路進行了分析,而分類任務則使用了從MIT電腦科學和人工智慧實驗室風景識別資料庫中提取的Places365數據集,將影像分為365個風景類別。
研究人員分析了13個卷積層中所包含的所有單元,並將高於閾值(對應於單元u的激活函數的top1%值)的激活區域進行高亮,結果如圖下所示:
通過上圖,我們可以看出,此區域對應於人類的頭部。
接著,為了定義對應於語義概念的過濾器,研究人員使用了影像分割模型來去衡量每個過濾器和視覺概念c的一致關係,該分割模型可以預測影像x位置p的視覺概念c的存在。
為了量化概念c和單元u的對應關係,研究人員使用了IoU(Intersection Over Union)比率:
研究人員在支援驗證影像集上計算了IoU比率。在驗證集上,針對1825個分割概念c(包括物體類別,物體的一部分,材料和顏色),每個單元都有自己的得分。接著,研究人員根據最高得分的匹配概念對單元進行了標註。
下面幾張圖展示了在具有最高單元激活函數值的五張圖片中部分具有標籤的概念檢測單元:
飛機(物體):
人類頭部(物體部分):
材料: 
研究人員將conv5_3對應於每個分割概念的單元羅列了出來(不包括IoU比率 < 4%的單元),這個結果可以展示對應於每個語義概念的單元的出現頻率:
在不同卷積層中,最後一層具有最大數量可以被單元檢測出的物體類別,然而,檢測物體部分的單元數量在之前(conv5_1)就達到了峰值:
很有趣的是,即使在訓練的時候並沒有標記,物體檢測器依然出現了。下圖展示了單元150(對應於物體飛機)在飛機和非飛機樣本影像上的活躍度:

場景分類器中神經元的角色

研究到這一步,研究人員又開始靈魂發問:
上面討論的影像分類神經網路是如何利用這些物體檢測單元的呢?
針對網路壓縮的研究已經發現了,在保證整體分類精度的同時重新訓練的時候,許多神經單元其實是可以被移除的,針對這個問題,研究單個神經元的移除對整體平均網路精度造成的影響,就是一種估計單個神經元的重要性的方法。 
為了可以更好的理解每個單元的邏輯角色,MIT的研究團隊評估了單個單元對網路分類單個產經類別能力造成的影響。而移除單元的方法,則是強制某個確定的單元輸出零值,同時保證網路的其他部分保持完整。
同時,網路並沒有被重新訓練。此外,研究人員使用在某個特定的類與其他所有的類之間做判別這種分類任務,對單個類別的分類準確度進行測試。
通過找到針對每個類別最重要的神經單元,研究人員揭露到了物體和場景之間的關係。比如,下圖展示了針對類別「滑雪勝地」,在conv5_3層中最重要的四個單元:
在移除單元261,149,242和105之後,在「滑雪勝地」這一類別上的分類準確度遭到了最大的破壞。具體來說,這些單元檢測到了「雪」、「山脈「、」房屋「和」樹「這四類物體,而這些物體對於判斷類別是否為」滑雪勝地「的過程中起著至關重要的作用。
為了檢測網路對「滑雪勝地」的分類能力是否只取決於最重要的單元,研究人員對選擇出的不同單元分別進行了移除,結果如下圖:

結果顯示,當移除最重要的四個單元之後,對「滑雪勝地」分類準確度從81.4%降低到了64%,而當最重要的前20個神經單元被移除之後,準確度降為了53.5%,而這一值,已經幾乎接近隨機分類50%的準確度,這兩個操作對於所有類別的分類準確度來說,並沒有造成太大的影響。
而如果只移除剩餘492個神經單元之後,分類準確度只降到了77.7%,於此相對的是,對於所有類別的分類準確度來說,這一操作具有毀滅性作用——準確度從53.3%瞬間降低到了2.1%。
下圖詳細展現了移除最重要和最不重要神經單元對「滑雪勝地」分類準確度的影響曲線:
從上圖可以看出,該網路對「滑雪勝地」類別的分類準確度絕大部分依靠最重要的幾個神經單元。甚至,在移除最不重要的單元之後,單個類別的準確度還得到了一定程度上的提升。
進一步的探索證明,這個特定的內部組織——在此神經網路中,針對某個單一輸出類的準確度高度依賴於一小部分的重要單元,適用於所有類別。下圖展示了針對365個風景類別的不同神經單元移除情況對應的準確度分布密度曲線:
從上圖我們可以看出,在conv5_3中,由單元組成的物體探測器的出現並不是一個假象:每個單元都對特定類集合有著重要作用,同時,物體探測器的出現可以被理解為:它將網路對單個風景的分類分解為了更簡單的子問題。
為什麼一些神經單元與實際語義概念可以匹配得如此美妙,而其他的單元則不可以呢?下圖展現了最具有可解釋性的單元,是那些同時對許多輸出類別都很重要的單元,而那些只對一個(或者無)類別重要的單元的解釋性更差,這一過程主要是通過對IoU的評估來完成的。
接著,研究人員發現了,重要單位與其相關的類別主要呈正相關,不同單元的組合為每個類別提供支援。
以上的研究結果給了新的啟發和疑問:
可解釋的單元的出現是依賴於將視覺世界分為數百個場景圖片的訓練標記嗎?可能對場景的分類學對於學習物體來說很重要。或者,神經網路可以從視覺數據本身去推斷某些概念嗎?
為了探索這些問題,研究人員進一步對無監督任務訓練出的模型進行了相似的實驗。

對抗生成網路中物體檢測器的出現

生成對抗網路(GAN)模擬訓練集中真實影像分布,來學會合成隨機真實影像。從結構上講,訓練有素的GAN生成器是分類器的反面——它從隨機輸入的潛矢量產生逼真的影像。與分類不同,它是一種無監督的設置:GAN沒有提供人工注釋,因此網路必須自己學習影像的結構。
很明顯的,研究人員觀察到,GAN可以學習一個圖片的全局語義:舉個例子,在潛在矢量之間的插值操作可以平滑地改變一個房間的布局,或者改變一個物體的質地。團隊人員希望去了解到,GAN是否可以同時學習去解構局部語義,比如,網路的內部單元是否可以將場景的生成表示為有意義部分的層次結構。
研究人員測試了被訓練模仿LSUN廚房影像的Progressive GAN影像。這一網路結構由15個卷積層組成。給定一個從多變數高斯分布取樣出512維的向量,在經過15層之後,這個網路結構生產一個256*256大小的實際影像,如下圖所示:
很重要的事,生成器中的邏輯流和分類器是相反的:當單元381激活影像中的吊燈區域的時候,它其實並沒有檢測影像里的吊燈,因為這一過程是在影像生成之前就出現的,相反,這個單元是渲染吊燈物體的計算過程中的一部分。
為了定義在網路里和物體類別單元的位置,研究人員將網路解構應用於網路中的每一層。在實驗中,參考的分割模型和閾值和用來分析VGG-16分類器的相同。
然而,和分析和輸入數據中對象之間關係不同的是,研究人員分析了和輸出影像中的物體之間的關係,如下圖所示:概念單元數目的極值的出現並沒有像在分類器那樣出現在網路的邊緣——它出現在中間層——第五層具有最大數量的物體和部分類別。
下圖展示了每個對象,物體部分,材質和顏色在第五層中和單元的對應關係,其中IoU>4% ,和分類網路相似的事,比如「烤箱」和「椅子」之類的視覺概念和許多單元對應。而和分類器不同的是,對應於某些單元的物體部分種類大於整個物體的種類:   
上圖顯示了,神經單元並沒有嚴格的對應於某種模式,而是展示了廣泛的視覺多樣性,以至於與每個類對應的外形模式都不同:比如對應於烤箱的不同款式或者顏色,抑或是廚具的形狀。
接下來,研究人員將對應於窗戶的單元314作為影像分類器,結果發現在大窗戶被生成與沒有大窗戶生成時候這一單元的活躍度的巨大差異。接著,僅僅一個簡單的閾值(激活峰值>8.03%)即可令預測生成影像是否有大窗戶這一任務具有78.2%的準確度:
然而,分布密度曲線顯示了包含大窗戶的影像在不激活單元314的情況下也能被頻繁生成,下面是兩個樣本例子:
  
這些例子可以表明,其他單元也具有生成窗戶的潛力。

GAN中神經元的角色 

神經單元和生成物體的類別之間的關聯具有一定啟發性,但是它並沒有證明和某個物體類別相關的神經單元的確使得生成器去渲染了這些物體。為了更好的理解神經單元在GAN生成器中的邏輯角色,研究人員將直接移除或者激活某些神經單元的情況下,測試了生成器的輸出結果。
首先,研究人員連續將一部分代表樹的單元從Progressive GAN中移除(此GAN是在LSUN教堂場景數據集中訓練的),然後根據將第四層的單元進行了排序,來定義和樹最具有關聯的單元。
隨著這些「樹單元」的逐漸移除,GAN的生成影像中樹的含量和大小都在逐漸減小。一萬個隨機生成的影像顯示,將20個和樹關聯最大的神經單元移除之後,生成輸出中代表著樹的單元數量減小了53.3%:
當「樹單元」被移除的時候,生成影像的真實度幾乎沒有什麼變化,雖然生成的樹越來越少,個頭也越來越小,其他的諸如建築之類的物體並沒有什麼變化。
顯然,被樹遮擋的建築的一部分逐漸生成出來,就好像是移除的樹暴露了它後面的牆和窗戶一樣。生成器看上去比原來計算出了更多的細節,而這些藏在樹後面的建築的細節只有在壓制樹的生成之後,才能被展現出來。
這些隱藏的細節明顯表明了GAN學習到的是圖片的結構資訊,而不是視覺像素模式的簡單扁平總結。
通過強制改變神經單元,研究人員發現可以將新的物體加入到生成場景中。在戶外教堂GAN中,他們使用找到了在第四層中和門最相關的神經單元。
在測試的區域中,這20個單元的激活值都被強制設定為最高的值,下圖展示了在兩個生成影像上的結果:
儘管對四個樣本的插值方式一樣,在結果中,每個門的情況並不一樣:在1-3中,新生成的門具有合適於當下語境的大小,風格和位置,而在4中,當「門單元」在樹上激活的地方,影像中並沒有出現新的門。
下圖展示了在不同地方激活「門單元」的時候結果的敏感度,在某些位置,門可以輕易地被添加上,例如在窗戶上,而在天空和樹上,添加門幾乎是不可能的。
通過研究無監督影像生成問題,一個GAN網路可以學習生成類似於門和樹之類的物體,不僅如此,通過神經單元,它還學習到了有效的計算結構,使得它能夠有效阻止在無意義的位置上渲染出某些物體,比如在樹上以及天空上渲染出一個門出來。


3

實際應用

對分類器的對抗攻擊的分析

在影像分類器對對抗攻擊的敏感性領域的研究很活躍,為了將攻擊的過程可視化來更好地理解,作者指出,相關研究者可以研究這些攻擊在重要物體檢測器上的影響。
在下圖中,經過Carlini–Wagner優化方法,一個被準確分類滑雪勝地影像被攻擊成了「卧室」,這個攻擊演算法計算了一個微小的擾動,而當此微小的擾動被加入之後,結果影像在肉眼完全無法和原圖區別開的同時,被錯誤分類為了卧室,是不是很神奇?
為了更好的理解這個攻擊是如何具有如此強大的威力,研究人員分別研究了滑雪勝地和卧室中最重要的四個神經單元,下圖將原圖和對抗攻擊之後神經單元的激活情況做了可視化:
結果顯示,通過降低對雪,山脈,房屋和樹的檢測以及增加床,人物頭部,沙發檢測器的活躍程度,此攻擊成功戲耍了分類網路(儘管實際情況是,這些物體並沒有在圖片中出現)。
下圖顯示了,受到攻擊之後,改變最大的單元,就是那些對某些類別最重要的那些單元。

使用GAN的語義繪畫

除了在對抗攻擊上的應用,理解神經單元的作用之後,通過直接操控神經單元,研究者還可以創造一個可以控制神經網路的交互介面。
MIT&港科大團隊將這個方法應用在GAN上,創造了一個交互繪畫應用。與使用色板進行繪畫不同的是,這個應用可以令人們直接使用高層視覺概念畫板進行創作。每個視覺概念都和具有最大IoU的神經單元相關。
下圖展示了該交互介面:
當用戶添加一個物體的概念的時候,對應的神經單元得到了激活,反之,當用戶在擦出物體的時候,對應的神經單元被置零。
下圖展示了當用戶添加一個物體時的一個典型結果:
GAN在像素級別的細節上,能夠做巧妙的處理,使得場景保證了真實性。多種改變的組合可以得到創造性的效果。
研究人員還放出了圖片繪畫編輯的動態效果:

詳細的demo可以訪問網站//gandissect.csail.mit.edu.獲得哦!
另外,要想進一步了解本文使用的數據集,測試網路和參考模型,可以去原文一探究竟。
最後,周博磊本人也在知乎上分享了本文研究背後5年的一系列曲折複雜又精彩的故事:《一個神經元的價值和一個神經病的堅持》,歡迎大家閱讀。
傳送門://zhuanlan.zhihu.com/p/237430657

點擊閱讀原文,直達NeurIPS小組~
Tags: