當前位置:
首頁 > 新聞 > 谷歌大腦發布神經網路的「核磁共振」,並公開相關代碼

谷歌大腦發布神經網路的「核磁共振」,並公開相關代碼

神經網路的可解釋性一直是所有研究人員心頭的一團烏雲。傳統的嘗試進行可解釋性研究的方法是通過查看網路中哪個神經元被激發來來理解,但是即使我們知道「第538號神經元被激發了一點點」也毫無意義,並不能幫助我們理解神經元在網路中的意義。為了解決這樣的問題 Google Brain的一些研究人員開發了神經網路特徵可視化方法。

2015 年上半年的時候,谷歌大腦的人員就嘗試將神經網路理解圖像並生成圖像的過程進行可視化。隨後他們開源了他們的代碼 DeepDream。這個方法出乎他們意料的是,竟然促成了一個小小的藝術運動,很多人通過可視化神經網路的技術生成了各種魔幻的作品。

去年在在線期刊 Distill 上,谷歌大腦的研究人員再次使用這項技術將單個神經元在網路中是如何工作的進行了可視化,這項工作讓我們可以看到在網路中間的各個神經元如何一步步檢測到圖像中的各個事物,並且讓我們看到隨著網路層次的加深圖像如何越來越複雜。雷鋒網曾經在下面這篇文章中詳細介紹過

《谷歌的新CNN特徵可視化方法,構造出一個華麗繁複的新世界》

但是去年的這項工作漏掉了一項重要的事情:這些神經元如何像網路那樣連接起來的?

繼去年發布神經網路特徵可視化方法之後,今天 Google Brain 在神經網路的可視化上又進了一步。Google Brain 將這項工作稱為「神經網路的核磁共振成像」,我們知道核磁共振技術是生理學家可視化大腦工作機理的最有用的工具之一。

Google Brain 在 Distill 發布的「The Building Blocks of Interpretability」這篇文章中,作者探討了如何將特徵可視化與其他可解釋性技術相結合,進而可以了解網路如何一步步做出決策的。這讓我們能夠「站在神經網路之中」看著網路如何一步步做出決策的整個過程。

目前作者已經公開其全部代碼 Lucid,並放出 colab notebooks 以方便任何人使用 Lucid 來重現他們的文章。

雷鋒網 AI 科技評論將 Google Brain 在 Distill 上的研究內容全文翻譯如下:


可解釋性的基石

前言

研究神經網路可解釋性的技術往往都是單獨研究的。這篇論文里,作者們提出了強有力的可視化界面,讓讀者得以把各種技術結合在一起;不僅如此,現在還可以探索合併後的空間的複雜結構。

比如,嘗試把特徵可視化(一個神經元在尋找什麼)和歸因(它對輸出的影響如何)結合起來,我們可以開始探究網路是如何把拉布拉多和豹貓區分開的。

谷歌大腦發布神經網路的「核磁共振」,並公開相關代碼

從網路中發現,識別狗時有好幾個檢測軟塌塌的耳朵的檢測器發揮了重要作用;而檢測貓時就換成了尖耳朵的檢測器

背景

隨著神經網路越來越成功,新的需求也隨之而來,那就是解釋它們是如何做出決定的:包括基礎性的研究證據說明它們在真實世界中的表現如何,如何檢測模型的偏倚,以及純粹為了科研目標。為了達到這些目標,我們不僅需要構建足夠深入的抽象,而且也需要以豐富的可視化形式把它們表現出來。然而,目前關於可解釋性的絕大多數研究都並沒有做出很好的成果。(幾個很有價值的是 Visualizing Representations: Deep Learning and Human Beings,Understanding neural networks through deep visualization(arXiv:1506.06579),Using Artificial Intelligence to Augment Human Intelligence)

整個機器學習社區的主要精力都花在了開發更強有力的新方法上,比如特徵可視化(feature visualization)、歸因(attribution)以及降維,以便理解和推理神經網路的行為。然而,這些技術都是各自沿著不同的研究路徑在前進,相應需要的把成果具體化、實例化的研究卻被忽略了。另一方面,人機交互研究社區已經開始探索為神經網路設計豐富的用戶界面,不過他們對機器學習領域的抽象方法並沒有多少接觸。對於如何使用這些抽象結果,目前都還是以相對標準的方法。所以最終我們看到的就是過於簡單的界面(比如顯著性映射圖或者相關的抽象神經元),其中有許多的值是留著未解釋的。更糟糕的是,有很多關於可解釋性的技巧並沒有完全實施到抽象中來,因為研究者們並沒有遇到什麼壓力來讓結果更通用化和組合化。

在這篇文章中,作者們把現有的各種可解釋性方法看作基礎的、可以相互組合的基礎結構,在它們基礎之上構建豐富的用戶界面。他們發現這些互相獨立的技巧也能夠以統一的形式組合起來,在最後得到的界面中發揮補充性作用。更重要的是,這種統一的形式可以讓我們系統地探索可解釋性界面的整個空間,讓我們得以評估它們是否達到了特定目標。下文中將展示各種樣式的界面,從中展示網路檢測發現了什麼,並且解釋網路對物體的理解是如何逐步生成的,同時還把其中涉及到的信息保持在適合人類理解的尺度下。比如,我們將會看到一個看到了拉布拉多犬的網路是如何檢測它軟塌塌的耳朵的,以及這種檢測行為是如何影響網路的分類結果的。

這篇文章的研究基於的模型是谷歌 GoogLeNet,選用它展現作者們的界面構建想法的原因是因為其中的神經元有強於一般網路的語義性。雖然這篇文章中作者們採用的是精心選擇的任務和網路結構,其中的基礎抽象手段和組合它們的方式還是可以用在其它領域的神經網路中。

讓隱藏層有意義

近期關於可解釋性的大部分工作都涉及神經網路的輸入和輸出層。 可以說,這主要是由於這些層具有明確的含義:在計算機視覺中,輸入層代表輸入圖像中每個像素的紅、綠、藍通道的值,而輸出層由類標籤以及它們相關的概率。

然而,神經網路的強大之處是在於它們的隱藏層 —— 在每一層,網路都會發現新的輸入表示。 在計算機視覺中,我們使用神經網路在圖像中的每個位置運行相同的特徵檢測器。我們可以將每個圖層的學習表示看作一個三維立方體。立方體中的每個單元格都是一個激活,或者神經元激活的數量。x軸和y軸對應圖像中的位置,z軸是正在運行的通道(或檢測器)。

谷歌大腦發布神經網路的「核磁共振」,並公開相關代碼

圖中用於計算機視覺任務的神經網路的不同的隱含層如何組成了激活值的「立方體」。對立方體的不同分割方法可以把激活值具體到單個神經元、單個空間位置或者單個通道

理解這些激活是很困難的,因為我們通常將它們作為抽象向量來工作:

谷歌大腦發布神經網路的「核磁共振」,並公開相關代碼

通過特徵可視化,我們可以將這個抽象矢量轉換成更有意義的「語義字典」。

根據可視化結果,似乎可以認為網路中有一些檢測器,分別對應軟塌塌的耳朵、凸鼻子、貓頭、毛茸茸的腿、草地等等。

為了製作一個語義詞典,我們將每個神經元激活與該神經元的可視化進行配對,並根據激活的大小對它們進行排序。 激活與特徵可視化的結合改變了我們與潛在數學對象的關係。 激活現在映射到圖標表示,而不是抽象的索引,其中許多表現形式類似於人類的思想,如「鬆軟的耳朵」、「狗鼻子」或「毛皮」。

語義詞典的強大功能不僅僅是因為它們擺脫了無意義的索引,還因為它們用典型的例子表達了神經網路的學習抽象。通過圖像分類,神經網路學習一組視覺抽象,因此圖像是表示它們的最自然的符號。如果我們使用音頻,更自然的符號很可能是音頻剪輯。這很重要,因為當神經元看起來符合人類的想法時,很容易將它們縮減為單詞。

但是,這樣做是一項有損失的操作 —— 即使對於熟悉的抽象,網路也可能學到了更深的細微差別。例如,GoogLeNet具有多個「鬆軟耳朵」檢測器,它們可以檢測到耳朵的下垂度,長度和周圍環境略有不同。也可能存在視覺熟悉的抽象概念,但我們缺乏良好的自然語言描述,例如,在太陽浮於水面的地方拍攝特定的光線。此外,網路可能會學習到對我們來說異乎尋常的新抽象概念 —— 在這裡,自然語言會使我們完敗!一般來說,規範化的例子是一種更自然的方式來表示神經網路學習的外來抽象,而不是原生的人類語言。

通過為隱藏層帶來意義,語義字典為我們現有的可解釋性技術設置了可組合的構建塊。正如我們將看到的,就像它們的基礎向量一樣,我們可以對它們應用降維。在其他情況下,語義詞典允許我們進一步推進這些技術。例如,除了我們目前使用輸入和輸出層執行的單向歸因外,語義詞典還允許我們將特定的隱藏層歸屬到特定的隱藏層。原則上,這項工作可以在沒有語義詞典的情況下完成,但是結果意味著什麼還不清楚。

網路看到了什麼?

語義詞典讓我們能夠對某個激活進行細緻的考察,即每一個單個神經元能夠檢測到什麼。建立了這種表示之後,我們同樣也可以將一個激活向量作為整體來考慮。這裡不再是將單個神經元可視化,而是將在給定空間範圍內處於 fire 狀態的神經元組合進行可視化。(具體來說就是,我們優化圖像,以最大化激活點與原始激活向量的點積)

谷歌大腦發布神經網路的「核磁共振」,並公開相關代碼

將這種技術應用於所有的激活向量,使我們不僅可以看到網路在每個位置檢測到的內容,而且還可以了解網路對整個輸入圖像的理解程度。

谷歌大腦發布神經網路的「核磁共振」,並公開相關代碼

mixed4d 層激活可視化

另外,通過跨層(例如「mixed3a」,「mixed4d」)的工作,我們還可以觀察到網路對輸入的理解是如何發展的:從檢測早期圖層中的邊緣,到後期更複雜的形狀以及物體的部分。

谷歌大腦發布神經網路的「核磁共振」,並公開相關代碼

谷歌大腦發布神經網路的「核磁共振」,並公開相關代碼

同一幅貓狗圖像,不同層的神經元對同一個區域的激活可視化

不過,前面的這些可視化忽略了一個關鍵的信息——激活的量級大小。我們通過按照激活矢量的大小來縮放每個單元的面積,就可以指出網路在該位置檢測到特徵的強度了:

谷歌大腦發布神經網路的「核磁共振」,並公開相關代碼

如何組裝概念?

特徵可視化幫助我們回答了「網路能夠檢測到什麼」這個問題,但是它並沒有回答網路如何組裝這些單獨的部分來達成後面的決策,或者為什麼會做出這些決策。

歸因(Attribution)是一組通過解釋神經元之間的關係來回答這些問題的技術。現在市場上有各種各樣的歸因方法,但到目前為止卻似乎沒有一個能夠給出明確的、正確的答案;事實上,我們甚至有理由認為我們目前的所有答案都不太正確。儘管如此,就本文而言,確切的歸因方法並不重要,所以我們作為案例,使用一種最簡單的方法——線性逼近關係。這種方法可以很容易地用其他任何技術來代替,所以未來對歸因的改進也會相應地改善基於它們的界面。

關於歸因方法有很多重要的研究,但就本文而言,確切歸因方法並不重要。我們使用一種相當簡單的方法,線性逼近關係,但很容易用其他任何技術來替代。未來對歸因的改進,當然會相應地改善基於它們的界面。

顯著圖的空間歸因

最常見的歸因界面稱為顯著圖(saliency map)——一種簡單的熱圖,突出顯示輸入圖像中最能引起輸出分類的像素部分。我們發現這種方法存在兩個缺陷。

首先,不清楚個別像素是否應該是歸因的主要單元。這裡每個像素的含義與其他像素極為糾纏,即使對簡單的視覺變換(例如,亮度,對比度等)也會有很差的魯棒性,此外單個的像素還遠離高級概念(如輸出類)。其次,傳統的顯著圖是一種非常有限的界面類型——它們一次只能顯示一個類的屬性,並且不允許你更深入地探究單個點。由於它們沒有明確地處理隱藏層,因此很難全面探索隱藏層的設計空間。

作為一種改進,我們將歸因視為另一個用戶界面的構建塊(building block),並將其應用於神經網路的隱藏層。這樣做了之後,我們同時也改變了我們的問題,我們不再問特定像素的顏色是否對「拉布拉多獵犬」的分類很重要,而是問在這個像素位置檢測到的高級別想法(例如「鬆軟的耳朵」)是否重要。這種方法與類激活映射(CAM)方法類似,但由於它們將結果解釋回輸入圖像,因此它們錯過了以網路隱藏層的豐富行為進行交互的機會。

谷歌大腦發布神經網路的「核磁共振」,並公開相關代碼

越向後的層的歸因結果看起來有越強的語義性。就像我們期待的那樣,歸因的結果就是軟塌塌的耳朵、凸鼻子、貓頭之類的我們熟悉的局部特徵

谷歌大腦發布神經網路的「核磁共振」,並公開相關代碼

令人驚訝的是,mixed4d 層中下方的凸鼻子特徵和網球的特徵有不少重合之處,這個特徵之後也為「網球」和「拿著蘋果的奶奶」這樣的識別結果提供了支持

上圖的界面為我們提供了較為靈活的歸因關係。首先,我們從每個隱藏層的每個空間位置向所有 1,000 個輸出類顯示屬性。為了將這個 1000 維的向量可視化,我們使用降維來產生多向顯著圖。在我們多尺度的激活網格上疊加這些顯著圖,從而提供歸因空間的信息。激活網格能夠將語義詞典建立的視覺辭彙屬性固定下來。在某個像素上懸停,我們可以看到這個空間位置最有助於哪些類別的輸出。

也許最有趣的是,這個界面允許我們互動式地查看隱藏層之間的歸因。懸停時,額外的顯著圖會遮蓋隱藏層,這在某種意義上就相當於「將光線照入黑箱」。這種層到層的歸因或許將成為界面設計促進傳統意義上可解釋性抽象概括的一個主要例子。

通過這個圖,我們開始考慮更高層次概念的歸因。但是在某個特定位置上,會同時檢測到許多概念,通過這個界面很難將它們分開。如果還繼續關注空間位置,那麼這些概念將仍然糾纏在一起。

通道歸因

顯著圖通過對隱藏層的空間位置歸因,隱式地切割了我們的激活立方體。在這種切割中聚合了所有的通道(Channel),因此我們無法確定每個位置上的哪個特定檢測器對最終輸出分類貢獻最大。

當然還有另一種切割激活立方體的方法,那就是對通道的切割,而不是對空間位置的切割。這樣做的結果就是,我們可以進行通道歸因——每個檢測器對最終輸出的貢獻到底有多大?(這種方法類似於Kim等人的同時期工作,他們對學習的通道組合進行了歸因。)

谷歌大腦發布神經網路的「核磁共振」,並公開相關代碼

這個圖與我們前面看到的類似:我們進行層到層的歸因,但這次是通過通道而不是空間位置。我們再一次使用語義詞典中的圖標來表示對最終輸出分類有貢獻的通道。將滑鼠懸停在單個通道上會顯示覆蓋在輸入圖像上的激活熱圖。

圖例還同時更新顯示其對輸出類的歸因(即此通道支持的top類是什麼?)。點擊一個通道可以讓我們深入了解層到層的歸因,讓我們顯式地確定較低層中哪些是最有貢獻的通道,或者較高層中哪些是最受支持的通道。

雖然這些圖側重於層到層的歸因,但將注意力集中在單個隱藏層上仍然很有價值。 例如,先行圖(teaser ?gure)可以讓我們評估為什麼某個類會更有優勢。

從以上的討論中,我們可以看到空間位置歸因和通道歸因在揭示網路模型方面的強大功能,特別是當我們將兩者組合在一起的時候。但不幸的是,這類方法有兩個顯著的問題。一方面,它會給我們反饋大量的信息,由於長尾效應,這可能需要人工幾個小時的審查才能弄明白哪些對輸出只有輕微的影響;二是,這兩種聚合方法會有大量的丟失,這可能會導致錯過重要的情節。當然,我們可以通過對單個神經元進行工作來避免有損聚合,或者根本就不聚合,但這反過來又會出現第一個問題。

以人類為尺度

在前面章節中,我們考慮了三種將激活狀態的立方體進行分割的方法:空間激活、通道、單個神經元。每一種方式都存在缺點。如果只使用空間激活或通道,會忽略掉整個情節中非常重要的部分。例如,「鬆軟耳朵」探測器(?oppy ear detector)幫助我們將圖像分類為一隻拉布拉多犬,當與那些沒有利用到的地方相結合時,情節會有趣得多。你可以深入到神經元的層面來講述整個情節,但是成千上萬的神經元中包含太多信息了。即使是數百個通道,在分裂成單個神經元之前,也包含著太多信息!

只是想要在神經網路中製造有用的界面,還不足以讓事情變得有意義。我們應根據人類需要,而不是依據大量無用信息。這樣做的關鍵是找到更有意義的方法將激活分解,有充分的理由相信存在這樣的分解。通常,許多通道或空間位置將以高度相關的方式協同工作,最有用的方法是將其視為一個單元。其他通道或位置幾乎沒有活動,在高級概述上可以被忽略。所以,如果我們有正確的工具,那就應該能夠找到更好的分解手段。

有一個叫矩陣因子分解(matrix factorization)的研究領域,研究分解矩陣的最優策略。通過將立方體壓成空間位置和通道的矩陣,我們可以應用這些技術來獲得更有意義的神經元組群。這些組群不會像我們之前看到的組那樣自然地隨著立方體排列整齊,它們將是空間位置和通道的組合。此外,這些組群是用來解釋網路在特定圖像上的行為,在另一個圖像上重用相同的分組是無效的,每個圖像都需要計算一組獨特的組。

谷歌大腦發布神經網路的「核磁共振」,並公開相關代碼

除了之前那樣把隱層中的神經元自然地分為單個神經元、空間位置、不同通道之外,作者們也考慮更靈活地跨越部分空間位置和通道把神經元分成不同的組

源於這個因子分解的組將是用戶使用界面的原子。不幸的是,任何分組本質上都是將事物減少到人類規模與保存信息之間的折衷,因為任何聚合都是有損的。矩陣因子分解可以讓我們挑選出針對特定內容優化的組,這比之前的自然分組要好。

用戶界面的目標應該會影響矩陣因子分解優化的優先順序。例如,如果想要優先考慮網路檢測到的東西,我們就希望因子分解能充分地描述激活。相反,如果想要優先考慮改變網路行為的因素,我們希望因子分解能充分描述梯度。最後,如果想要優先考慮是什麼導致了現在的行為,我們希望因子分解能充分地描述歸因。當然,我們可以在這三個目標之間實現平衡,而不是僅僅只優化一個目標。

下圖中,我們已經構建了一些組,我們利用非負矩陣因子分解,按優先順序來分解激活。請注意大量神經元被簡化成一小套組群的過程。

谷歌大腦發布神經網路的「核磁共振」,並公開相關代碼

通過非負的矩陣分解,作者們把總數目很大的神經元分為一個個小組,讓它們簡明地總結出整個網路的運行狀況。右圖小方塊的不同顏色對應了下方不同的特徵分別占不同空間的激活值的主要成分

該圖只關注單個層,但是,正如我們前面看到的,查看多個層以了解神經網路是如何將低級檢測器聚合到高級概念中是很有用的。

我們優化了之前構造的組,以理解獨立於其他層的單個層。為了同時理解多個層,我們希望每一層的因子分解都是「兼容的」——將早期層的組自然地組合到後面的層組中。這裡我們也可以進行因子分解優化。

谷歌大腦發布神經網路的「核磁共振」,並公開相關代碼

谷歌大腦發布神經網路的「核磁共振」,並公開相關代碼

綠線表示正影響,紅線表示負影響

在這一節中,我們認識到對激活立方體的分割方法是一個重要的介面決策。我們不再執著于于自然的切割,而是構建更優化的神經元組合。這些改進的分組更有意義,也更人性化,讓了解網路的行為不再那麼乏味。

我們這次的可視化方法只是基於提供更好的原子來理解神經網路,探索潛在可能性的一個開始。例如,當我們專註於創建更少指示來解釋獨立案例時,最近發現了有意義的「全局」指示,這是令人興奮的工作——這樣的依據在嘗試一次理解多個例子或對比模型時尤其有用。

解釋界面空間

本文中提到的界面思想將功能可視化和歸因等模塊兒結合在一起。編寫這些模塊兒不是一個隨意的過程,而是遵循基於界面目標的結構。例如,如果界面強調網路所能識別的內容,則優先考慮其認知將如何發展,或者專註於讓事情發展在人類可控範圍內。為了評估這些目標,並理解這種權衡,我們需要能夠系統地考慮可能的替代方案。

我們可以將界面視為各個元素的集合。

谷歌大腦發布神經網路的「核磁共振」,並公開相關代碼

每個元素使用特定的呈現風格(例如,特徵可視化或傳統信息可視化)來顯示特定類型的內容(例如,激活或歸因)。該內容存在於由網路給定層如何分解為原子而定義的底層上,並且可以通過一系列操作(例如,將其過濾或將其投影到另一底層上)進行轉換。例如,我們的語義詞典使用特徵可視化來顯示隱藏層神經元的激活。

表達這種思維方式的一種方法是使用常規語法,但我們發現它對視覺化思考空間是有幫助的。我們可以將網路的底層(我們展示的那些層,以及如何將它們分開)作為網格,將網格的內容和風格繪製為點和連接。

谷歌大腦發布神經網路的「核磁共振」,並公開相關代碼

這個設置為我們提供了一個框架,開始逐步探索可解釋界面的空間。例如,讓我們再次考慮我們的先行圖(teaser figure)。其目標是幫助我們比較輸入圖像的兩種潛在分類。

谷歌大腦發布神經網路的「核磁共振」,並公開相關代碼

在這篇文章中,我們只是抓住了可能性的表面。我們的模塊兒有很多可供探索的組合,並且設計空間為我們提供了一種系統化的方法。

而且,每個模塊兒都代表了一大類技術。我們的界面只採用一種方法,但正如我們在每節中看到的,還有許多功能可視化,歸因和矩陣分解的替代方法。下一步就是嘗試使用這些替代技術和研究方法來改進它們。

最後,這不是一套完整的模塊。隨著新的發現,研究員們擴大了空間。例如,Koh&Liang 提出了解數據集示例對模型行為影響的方法。我們可以將數據集示例作為我們設計空間中的另一個底層,從而成為與其他基礎塊兒完全組合的另一個模塊兒。

在這樣做的時候,我們可以想像界面不僅允許我們檢查「數據集示例」對最終輸出分類的影響(如 Koh 和 Liang 提出的),而且可以觀察「數據集示例」如何影響隱藏層的特徵以及它們如何影響這些功能與輸出之間的關係。例如,如果我們考慮我們的「拉布拉多獵犬」(Labrador retriever)圖像,我們不僅可以看到哪些「數據集示例」對模型分類的影響最大,而且可以看到哪些「數據集示例」最能引起「鬆軟耳朵」檢測器觸發,以及哪個數據集對探測器影響最大,增加了「拉布拉多獵犬」的分類。

谷歌大腦發布神經網路的「核磁共振」,並公開相關代碼

儘管今天大多數模型都經過了優化簡單目標函數的訓練,而我們希望模型在現實世界中做的許多事情都是微妙的,並且很難用數學來描述。為這些微妙目標去訓練模型的一個非常有用的方法是從人類的反饋中學習。然而,即使有了人類的反饋,如果模型的有問題的方面在人類反饋的訓練體系中沒有表現出強烈的意圖,那麼仍然很難訓練模型讓它以我們想要的方式行事。

人們對模型決策過程的反饋,可通過可解釋界面進行推動,這可能是解決這些問題的有力解決方案。它可以讓我們訓練模型,不僅是為了做出正確的決定,也是是為了正確的可解釋性。(然而,這裡存在危險:我們正在優化我們的模型,以便我們的界面中查找我們想要的方式;如果不小心,這可能會導致模型愚弄我們)

另一個可能性是比較多個模型界面。例如,我們可能想要了解一個模型在訓練期是如何演變的,或者當你把它遷移到新任務時,模型會如何變化。或者,可能想了解整個模型家族是如何相互比較的。現有的工作主要側重於比較模型的輸出行為,但最近的工作也開始探索比較它們的內部表示。這項工作的挑戰之一是我們可能想要對齊每個模型的原子; 如果我們有完全不同的模型,我們能找到它們之間最相似的神經元嗎?再聚焦,我們能開發介面,讓我們一次性評估模型的大型空間嗎?

這些界面有多大可信度?

為了讓這些提供解釋性的界面發揮出效果,我們就需要相信它們給出的故事和結論是可靠的。對於目前我們用的這一組技術和架構,作者們認為其中有兩點是有疑慮的。

  • 對於不同的輸入圖像,神經元們的意義是相對固定的嗎,並且特徵可視化這個過程對這些意義的表達是準確的嗎?語義字典,以及在語義字典基礎上建立的界面,都是建立在前面的問題有肯定答案的基礎上的。

  • 歸因的結果是合理的嗎?我們目前有的歸因方法都是可以信任的嗎?

有許多更早的研究都發現神經網路中的「方向」從語義角度講是有意義的。其中有一個非常有力的例子,就是可以做「語義算數」,比如「皇帝」-「男人」+「女人」=「皇后」。在前一篇關於特徵可視化的文章中作者們就基於 GoogLeNet 深入探索了這個問題,發現其中的多數神經元都可以對應某個有意義的想法。然而除了這部分神經元之外,作者們也發現了有很多神經元並沒有非常確定的意義,其中有一些神經元會同時會對幾種突出的特徵產生響應(比如同時對汽車和貓)。對於這種狀況,上述提出的界面也有自然的方法可以處理:可以用差異化的特徵可視化結果發掘神經元可以接受的各種不同的含義,或者對語義字典做一些調整,讓其中的部件之間更加去耦合。當然了,就像模型可以被欺騙一樣,這些組成了可視化的特徵也可以被欺騙,包括對於對抗性樣本的情況。在作者們看來,思考研究特徵的時候並不需要它們是完美無缺的,現在就已經可以起到很大作用。實際上,檢測器「走火」的情況可能會更值得仔細琢磨。

對於歸因方法,近期有研究表明許多目前所用的方法都不是很可靠。有的人可能會問,既然一個函數的輸出是它的輸入的非線性互動產生的結果,那麼歸因的設想怎麼會有根本性問題呢。這種互動有可能展現出的一種問題就是「路徑依賴」。對這個問題的自然的回答是在用戶界面中顯式地展現出這個信息:這個歸因結果的路徑依賴程度有多高。然而,我們還有更深入的擔憂,就是這種路徑依賴性是否是歸因結果的主要成因。很顯然,對於相鄰的層來說,由於它們之間的連接映射很簡單(近乎於線性),所以這並不是個問題。但同時相關聯的輸入也會帶來一些技術問題,所以作者們相信歸因方法還是站得住腳的。並且,即便對於相聚較遠的層,作者們的經驗也是高級別特徵與輸出結果之間的歸因的穩定性也要比高級別特徵與輸入之間的穩定性更好。所以作者們認為在這裡路徑依賴並不是一個重要影響因素。

模型行為是非常複雜的一件事,受到目前的基礎技術的限制,現在所能揭示出的只有其中的部分視角。關於可解釋性的未來研究的一個重要方向將會是開發新的技術,藉助它們覆蓋到模型行為的更多方面。不過,即便有了這些改進,作者們也認為讓人們對這些方法建立起信心的關鍵因素應當是展現出的界面不會誤導人們。接觸到和界面上顯示出的顯式信息的同時,不應該引發用戶對模型產生不正確的隱式推斷。作者們認為這篇文章中展示出的界面毋庸置疑在這方面還有提高的空間。基礎研究,在機器學習和人機交互的交叉口部分的基礎研究,必須要想辦法解決這些問題。

對於可解釋性的種種應用,作者們認為很大程度上需要相信他們的方法有效、可靠。這一方面是因為不考慮可解釋性的風險很高(比如在安全和醫療領域),另一方面也是因為人們已經有了這樣的想法,想要訓練一個帶有可解釋性反饋的模型,就可以在對抗性訓練的過程中使用所提的可解釋性方法。

結論 & 未來研究

關於如何和枚舉性的演算法互動,還有非常大的設計空間,作者們相信和神經網路互動的設計空間也同樣地大。為了構建出強有力的、值得信任的關於可解釋性的用戶界面,研究者們面前還有很多的工作要做,不過一旦做出了全面的成果,可解釋性必將成為人類指導構建公平、安全、協調的 AI 系統的有力方法。

via GoogleBlog&Distill,雷鋒網 AI 科技評論編譯

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 雷鋒網 的精彩文章:

趙福全、海茲曼、李斌論道:新一輪汽車革命,傳統車企與新造車,誰執牛耳?(上篇)
基於TensorFlow的強化學習,在《毀滅戰士》遊戲里訓練Agent

TAG:雷鋒網 |