深度神經(jīng)網(wǎng)絡(luò)解釋性不好的問題一直是所有研究人員和商業(yè)應(yīng)用方案上方懸著的一團烏云,現(xiàn)代CNN網(wǎng)絡(luò)固然有強大的特征抽取能力,但沒有完善的理論可以描述這個抽取過程的本質(zhì),人類也很難理解網(wǎng)絡(luò)學(xué)到的表征。
當(dāng)然了,研究人員們從來都不會放棄嘗試。IMCL 2017的最佳論文獎就頒給了 Pang Wei Koh 和 Percy Liang的「Understanding Black-box Predictions via Influence Functions」,探究訓(xùn)練數(shù)據(jù)對模型訓(xùn)練過程的影響(現(xiàn)場演講全文點這里);近期引發(fā)全面關(guān)注的 Geoffery Hinton的膠囊論文也通過多維激活向量帶來了更好的解釋性,不同的維度表征著不同的屬性(雖然解釋性的提高算不上是他的原意;論文全文翻譯看這里)。
近日,來自谷歌大腦和谷歌研究院的一篇技術(shù)文章又從一個新的角度拓展了人類對神經(jīng)網(wǎng)絡(luò)的理解,得到的可視化結(jié)果也非常亮眼、非常魔性,比如下面這樣,文中的結(jié)果也在Twitter上引發(fā)了許多關(guān)注和討論。
這表達的是什么?這又是怎么來的呢?雷鋒網(wǎng)(公眾號:雷鋒網(wǎng)) AI 科技評論把研究內(nèi)容詳細介紹如下。
用優(yōu)化方法形成可視化作者們的目標(biāo)是可視化呈現(xiàn)讓網(wǎng)絡(luò)激活的那些特征,也就是回答“模型都在圖像中找什么特征”這個問題。他們的思路是新生成一些會讓網(wǎng)絡(luò)激活的圖像,而不是看那些數(shù)據(jù)集中已有的能讓網(wǎng)絡(luò)激活的圖像,因為已有圖像中的特征很可能只是“有相關(guān)性”,在分析的時候可能只不過是“人類從許多特征中選出了自己認(rèn)為重要的”,而下面的優(yōu)化方法就能真正找到圖像特征和網(wǎng)絡(luò)行為中的因果性。
總體來說,神經(jīng)網(wǎng)絡(luò)是關(guān)于輸入可微的。如果要找到引發(fā)網(wǎng)絡(luò)某個行為的輸入,不管這個行為只是單個神經(jīng)元的激活還是最終的分類器輸出,都可以借助導(dǎo)數(shù)迭代地更新輸入,最終確認(rèn)輸入圖像和選定特征之間的因果關(guān)系。(實際執(zhí)行中當(dāng)然還有一些技巧,見下文“特征可視化的實現(xiàn)過程”節(jié))
從隨機噪音開始,迭代優(yōu)化一張圖像讓它激活指定的某一個神經(jīng)元(以4a層的神經(jīng)元11為例)作者們基于帶有 Inception 模塊的 GoogLeNet展開了研究,這是一個2014年的模型 (https://arxiv.org/pdf/1409.4842.pdf ),當(dāng)年也以6.67%的前5位錯誤率拿下了 ILSVRC 2014圖像分類比賽的冠軍。模型結(jié)構(gòu)示意圖如下;訓(xùn)練數(shù)據(jù)集是 ImageNet。
GoogLeNet 結(jié)構(gòu)示意圖。共有9個Inception模塊;3a模塊前有兩組前后連接的卷積層和最大池化層;3b和4a、4e和5a之間各還有一個最大池化層。 帶有降維的 Inception 模塊(單個模塊)優(yōu)化目標(biāo)有了思路和網(wǎng)絡(luò)之后就要考慮以網(wǎng)絡(luò)的哪部分結(jié)構(gòu)作為輸入優(yōu)化的目標(biāo);即便對于在數(shù)據(jù)集中找樣本的方法也需要考慮這個。這里就有很多種選擇,是單個神經(jīng)元、某個通道、某一層、softmax前的類別值還是softmax之后的概率。不同的選擇自然會帶來不同的可視化結(jié)果,如下圖
以不同的網(wǎng)絡(luò)結(jié)構(gòu)為目標(biāo)可以找到不同的輸入圖像。這里 n 為層序號,x,y 為空間位置, z 為通道序號,k 為類別序號。要理解網(wǎng)絡(luò)中的單個特征,比如特定位置的某個神經(jīng)元、或者一整個通道,就可以找讓這個特征產(chǎn)生很高的值的樣本。文中多數(shù)的圖像都是以通道作為目標(biāo)生成的。
要理解網(wǎng)絡(luò)中的完整一層,就可以用 DeepDream的目標(biāo),找到整個層覺得“有興趣”的圖像。
要從分類器的階段出發(fā)找到輸入樣本的話,會遇到兩個選擇,優(yōu)化softmax前的類別值還是優(yōu)化softmax后的類別概率。softmax前的類別值其實可以看作每個類別出現(xiàn)的證據(jù)確鑿程度,softmax后的類別概率就是在給定的證據(jù)確鑿程度之上的似然值。不過不幸的是,增大softmax后的某一類類別概率的最簡單的辦法不是讓增加這一類的概率,而是降低別的類的概率。所以根據(jù)作者們的實驗,以softmax前的類別值作為優(yōu)化目標(biāo)可以帶來更高的圖像質(zhì)量。
可視化結(jié)果一:不同的層優(yōu)化得到不同的圖像3a層
第一個Inception層就已經(jīng)顯示出了一些有意思的紋理。由于每個神經(jīng)元只有一個很小的感受野,所以整個通道的可視化結(jié)果就像是小塊紋理反復(fù)拼貼的結(jié)果。
3b層
紋理變得復(fù)雜了一些,但還都是比較局部的特征
4a層
4a層跟在了一個最大池化層之后,所以可以看到復(fù)雜性大幅度增加。圖像中開始出現(xiàn)更復(fù)雜的模式,甚至有物體的一部分。
4b層
可以明顯看到物體的某些部分了,檢測臺球的例子中就能清楚看到球的樣子。這時的可視化結(jié)果也開始帶有一些環(huán)境信息,比如樹的例子中就能看到樹背后的藍天和樹腳下的地面。
4c層
這一層的結(jié)果已經(jīng)足夠復(fù)雜了,只看幾個神經(jīng)元的優(yōu)化結(jié)果可以比看整個通道更有幫助。有一些神經(jīng)元只關(guān)注拴著的小狗,有的只關(guān)注輪子,也有很多其它的有意思的神經(jīng)元。這也是作者們眼中最有收獲的一層。
4d層
這一層中有更復(fù)雜的概念,比如第一張圖里的某種動物的口鼻部分。另一方面,也能看到一些神經(jīng)元同時對多個沒什么關(guān)系的概念產(chǎn)生響應(yīng)。這時需要通過優(yōu)化結(jié)果的多樣性和數(shù)據(jù)集中的樣本幫助理解神經(jīng)元的行為。
4e層
在這一層,許多神經(jīng)元已經(jīng)可以分辨不同的動物種類,或者對多種不同的概念產(chǎn)生響應(yīng)。不過它們視覺上還是很相似,就會產(chǎn)生對圓盤天線和墨西哥寬邊帽都產(chǎn)生反應(yīng)的滑稽情況。這里也能看得到關(guān)注紋理的檢測器,不過這時候它們通常對更復(fù)雜的紋理感興趣,比如冰激凌、面包和花椰菜。這里的第一個例子對應(yīng)的神經(jīng)元正如大家所想的那樣對可以烏龜殼產(chǎn)生反應(yīng),不過好玩的是它同樣也會對樂器有反應(yīng)。
5a層
這里的可視化結(jié)果已經(jīng)很難解釋了,不過它們針對的語義概念都還是比較特定的
5b層
這層的可視化結(jié)果基本都是找不到任何規(guī)律的拼貼組合。有可能還能認(rèn)得出某些東西,但基本都需要多樣性的優(yōu)化結(jié)果和數(shù)據(jù)集中的樣本幫忙。這時候能激活神經(jīng)元的似乎并不是有什么特定語義含義的結(jié)構(gòu)。
可視化結(jié)果二:樣本的多樣性其實得到可視性結(jié)果之后就需要回答一個問題:這些結(jié)果就是全部的答案了嗎?由于過程中存在一定的隨機性和激活的多重性,所以即便這些樣本沒什么錯誤,但它們也只展示了特征內(nèi)涵的某一些方面。
不同激活程度的樣本
在這里,作者們也拿數(shù)據(jù)集中的真實圖像樣本和生成的樣本做了比較。真實圖像樣本不僅可以展現(xiàn)出哪些樣本可以極高程度地激活神經(jīng)元,也能在各種變化的輸入中看到神經(jīng)元分別激活到了哪些程度。如下圖
可以看到,對真實圖像樣本來說,多個不同的樣本都可以有很高的激活程度。
多樣化樣本
作者們也根據(jù)相似性損失或者圖像風(fēng)格轉(zhuǎn)換的方法產(chǎn)生了多樣化的樣本。如下圖
多樣化的特征可視化結(jié)果可以更清晰地看到是哪些結(jié)構(gòu)能夠激活神經(jīng)元,而且可以和數(shù)據(jù)集中的照片樣本做對比,確認(rèn)研究員們的猜想的正確性(這反過來說就是上文中理解每層網(wǎng)絡(luò)的優(yōu)化結(jié)果時有時需要依靠多樣化的樣本和數(shù)據(jù)集中的樣本)。
比如這張圖中,單獨看第一排第一張簡單的優(yōu)化結(jié)果,我們很容易會認(rèn)為神經(jīng)元激活需要的是“狗頭的頂部”這樣的特征,因為優(yōu)化結(jié)果中只能看到眼睛和向下彎曲的邊緣。在看過第二排的多樣化樣本之后,就會發(fā)現(xiàn)有些樣本里沒有包含眼睛,有些里包含的是向上彎曲的邊緣。這樣,我們就需要擴大我們的期待范圍,神經(jīng)元的激活靠的可能主要是皮毛的紋理。帶著這個結(jié)論再去看看數(shù)據(jù)集中的樣本的話,很大程度上是相符的;可以看到有一張勺子的照片也讓神經(jīng)元激活了,因為它的紋理和顏色都和狗的皮毛很相似。
對更高級別的神經(jīng)元來說,多種不同類別的物體都可以激活它,優(yōu)化得到的結(jié)果里也就會包含這各種不同的物體。比如下面的圖里展示的就是能對多種不同的球類都產(chǎn)生響應(yīng)的情況。
這種簡單的產(chǎn)生多樣化樣本的方法有幾個問題:首先,產(chǎn)生互有區(qū)別的樣本的壓力會在圖像中增加無關(guān)的瑕疵;而且這個優(yōu)化過程也會讓樣本之間以不自然的方式產(chǎn)生區(qū)別。比如對于上面這張球的可視化結(jié)果,我們?nèi)祟惖钠诖强吹讲煌臉颖局谐霈F(xiàn)不同種類的球,但實際上更像是在不同的樣本中出現(xiàn)了各有不同的特征。
多樣性方面的研究也揭露了另一個更基礎(chǔ)的問題:上方的結(jié)果中展示的都還算是總體上比較相關(guān)、比較連續(xù)的,也有一些神經(jīng)元感興趣的特征是一組奇怪的組合。比如下面圖中的情況,這個神經(jīng)元對兩種動物的面容感興趣,另外還有汽車車身。
類似這樣的例子表明,想要理解神經(jīng)網(wǎng)絡(luò)中的表義過程時,神經(jīng)元可能不一定是合適的研究對象。
可視化結(jié)果三:神經(jīng)元間的互動如果神經(jīng)元不是理解神經(jīng)網(wǎng)絡(luò)的正確方式,那什么才是呢?作者們也嘗試了神經(jīng)元的組合。實際操作經(jīng)驗中,我們也認(rèn)為是一組神經(jīng)元的組合共同表征了一張圖像。單個神經(jīng)元就可以看作激活空間中的單個基礎(chǔ)維度,目前也沒發(fā)現(xiàn)證據(jù)證明它們之間有主次之分。
作者們嘗試了給神經(jīng)元做加減法,比如把表示“黑白”的神經(jīng)元加上一個“馬賽克”神經(jīng)元,優(yōu)化結(jié)果就是同一種馬賽克的黑白版本。這讓人想起了Word2Vec中詞嵌入的語義加減法,或者生成式模型中隱空間的加減法。
聯(lián)合優(yōu)化兩個神經(jīng)元,可以得到這樣的結(jié)果。
也可以在兩個神經(jīng)元之間取插值,便于更好理解神經(jīng)元間的互動。這也和生成式模型的隱空間插值相似。
不過這些也僅僅是神經(jīng)元間互動關(guān)系的一點點皮毛。實際上作者們也根本不知道如何在特征空間中選出有意義的方向,甚至都不知道到底有沒有什么方向是帶有具體的含義的。除了找到方向之外,不同反向之間如何互動也還存在疑問,比如剛才的差值圖展示出了寥寥幾個神經(jīng)元之間的互動關(guān)系,但實際情況是往往有數(shù)百個神經(jīng)元、數(shù)百個方向之間互相影響。
特征可視化的實現(xiàn)過程如前文所說,作者們此次使用的優(yōu)化方法的思路很簡單,但想要真的產(chǎn)生符合人類觀察習(xí)慣的圖像就需要很多的技巧和嘗試了。直接對圖像進行優(yōu)化可能會產(chǎn)生一種神經(jīng)網(wǎng)絡(luò)的光學(xué)幻覺 —— 人眼看來是一副全是噪聲、帶有看不出意義的高頻圖樣的圖像,但網(wǎng)絡(luò)卻會有強烈的響應(yīng)。即便仔細調(diào)整學(xué)習(xí)率,還是會得到明顯的噪聲。(下圖學(xué)習(xí)率0.05)
這些圖樣就像是作弊圖形,用現(xiàn)實生活中不存在的方式激活了神經(jīng)元。如果優(yōu)化的步驟足夠多,最終得到的東西是神經(jīng)元確實有響應(yīng),但人眼看來全都是高頻圖樣的圖像。這種圖樣似乎和對抗性樣本的現(xiàn)象之間有緊密的關(guān)系。(雷鋒網(wǎng) AI 科技評論編譯也有同感,關(guān)于對抗性樣本的更早文章可以看這里)
作者們也不清楚這些高頻圖樣的具體產(chǎn)生原因,他們猜想可能和帶有步幅的卷積和最大池化操作有關(guān)系,兩者都可以在梯度中產(chǎn)生高頻率的圖樣。
通過反向傳播過程作者們發(fā)現(xiàn),每次帶有步幅的卷積或者最大池化都會在梯度維度中產(chǎn)生棋盤般的圖樣
這些高頻圖樣說明,雖然基于優(yōu)化方法的可視化方法不再受限于真實樣本,有著極高的自由性,它卻也是一把雙刃劍。如果不對圖像做任何限制,最后得到的就是對抗性樣本。這個現(xiàn)象確實很有意思,但是作者們?yōu)榱诉_到可視化的目標(biāo),就需要想辦法克服這個現(xiàn)象。
不同規(guī)范化方案的對比
在特征可視化的研究中,高頻噪音一直以來都是主要的難點和重點攻關(guān)方向。如果想要得到有用的可視化結(jié)果,就需要通過某些先驗知識、規(guī)范化或者添加限制來產(chǎn)生更自然的圖像結(jié)構(gòu)。
實際上,如果看看特征可視化方面最著名的論文,它們最主要的觀點之一通常都是使用某種規(guī)范化方法。不同的研究者們嘗試了許多不同的方法。
文章作者們根據(jù)對模型的規(guī)范化強度把所有這些方法看作一個連續(xù)的分布。在分布的一端,是完全不做規(guī)范化,得到的結(jié)果就是對抗性樣本;在另一端則是在現(xiàn)有數(shù)據(jù)集中做搜索,那么會出現(xiàn)的問題在開頭也就講過了。在兩者之間就有主要的三大類規(guī)范化方法可供選擇。
頻率懲罰直接針對的就是高頻噪音。它可以顯式地懲罰相鄰像素間出現(xiàn)的高變化,或者在每步圖像優(yōu)化之后增加模糊,隱式地懲罰了高頻噪音。然而不幸的是,這些方法同時也會限制合理的高頻特征,比如噪音周圍的邊緣。如果增加一個雙邊過濾器,把邊緣保留下來的話可以得到一些改善。如下圖。
變換健壯性會嘗試尋找那些經(jīng)過小的變換以后仍然能讓優(yōu)化目標(biāo)激活的樣本。對于圖像的例子來說,細微的一點點變化都可以起到明顯的作用,尤其是配合使用一個更通用的高頻規(guī)范器之后。具體來說,這就代表著可以隨機對圖像做抖動、宣傳或者縮放,然后把它應(yīng)用到優(yōu)化步驟中。如下圖。
先驗知識。作者們一開始使用的規(guī)范化方法都只用到了非常簡單的啟發(fā)式方法來保持樣本的合理性。更自然的做法是從真實數(shù)據(jù)學(xué)出一個模型,讓這個模型迫使生成的樣本變得合理。如果有一個強力的模型,得到的效果就會跟搜索整個數(shù)據(jù)集類似。這種方法可以得到最真實的可視化結(jié)果,但是就很難判斷結(jié)果中的哪些部分來自研究的模型本身的可視化,哪些部分來自后來學(xué)到的模型中的先驗知識。
有一類做法大家都很熟悉了,就是學(xué)習(xí)一個生成器,讓它的輸出位于現(xiàn)有數(shù)據(jù)樣本的隱空間中,然后在這個隱空間中做優(yōu)化。比如GAN或者VAE。也有個替代方案是學(xué)習(xí)一種先驗知識,通過它控制概率梯度;這樣就可以讓先驗知識和優(yōu)化目標(biāo)共同優(yōu)化。為先驗知識和類別的可能性做優(yōu)化是,就同步形成了一個限制在這個特定類別數(shù)據(jù)下的生成式模型。
預(yù)處理與參數(shù)化
前面介紹的幾種方法都降低了梯度中的高頻成分,而不是直接去除可視化效果中的高頻;它們?nèi)匀辉试S高頻梯度形成,只不過隨后去減弱它。
有沒有辦法不讓梯度產(chǎn)生高頻呢?這里就有一個強大的梯度變換工具:優(yōu)化中的“預(yù)處理”??梢园阉醋魍粋€優(yōu)化目標(biāo)的最速下降法,但是要在這個空間的另一個參數(shù)化形式下進行,或者在另一種距離下進行。這會改變最快速的那個下降方向,以及改變每個方向中的優(yōu)化速度有多快,但它并不會改變最小值。如果有許多局部極小值,它還可以拉伸、縮小它們的范圍大小,改變優(yōu)化過程會掉入哪些、不掉入哪些。最終的結(jié)果就是,如果用了正確的預(yù)處理方法,就可以讓優(yōu)化問題大大簡化。
那么帶有這些好處的預(yù)處理器如何選擇呢?首先很容易想到的就是讓數(shù)據(jù)去相關(guān)以及白化的方法。對圖像來說,這就意味著以Fourier變換做梯度下降,同時要縮放頻率的大小這樣它們可以都具有同樣的能量。
不同的距離衡量方法也會改變最速下降的方向。L2范數(shù)梯度就和L∞度量或者去相關(guān)空間下的方向很不一樣。
所有這些方向都是同一個優(yōu)化目標(biāo)下的可選下降方向,但是視覺上看來它們的區(qū)別非常大。可以看到在去相關(guān)空間中做優(yōu)化能夠減少高頻成分的出現(xiàn),用L∞則會增加高頻。
選用去相關(guān)的下降方向帶來的可視化結(jié)果也很不一樣。由于超參數(shù)的不同很難做客觀的比較,但是得到的結(jié)果看起來要好很多,而且形成得也要快得多。這篇文章中的多數(shù)圖片就都是用去相關(guān)空間的下降和變換健壯性方法一起生成的(除特殊標(biāo)明的外)。
那么,是不是不同的方法其實都能下降到同一個點上,是不是只不過正常的梯度下降慢一點、預(yù)處理方法僅僅加速了這個下降過程呢?還是說預(yù)處理方法其實也規(guī)范化(改變)了最終達到的局部極小值點?目前還很難說得清。一方面,梯度下降似乎能一直讓優(yōu)化過程進行下去,只要增加優(yōu)化過程的步數(shù) —— 它往往并沒有真的收斂,只是在非常非常慢地移動。另一方面,如果關(guān)掉所有其它的規(guī)范化方法的話,預(yù)處理方法似乎也確實能減少高頻圖案的出現(xiàn)。
結(jié)論文章作者們提出了一種新的方法創(chuàng)造令人眼前一亮的可視化結(jié)果,在呈現(xiàn)了豐富的可視化結(jié)果同時,也討論了其中的重大難點和如何嘗試解決它們。
在嘗試提高神經(jīng)網(wǎng)絡(luò)可解釋性的漫漫旅途中,特征可視化是最有潛力、得到了最多研究的方向之一。不過單獨來看,特征可視化也永遠都無法帶來完全讓人滿意的解釋。作者們把它看作這個方向的基礎(chǔ)研究之一,雖然現(xiàn)在還有許多未能解釋的問題,但我們也共同希望在未來更多工具的幫助下,人們能夠真正地理解深度學(xué)習(xí)系統(tǒng)。
(完)