0
雷鋒網 AI 科技評論按:現代神經網絡經常被吐槽為「黑盒子」。盡管它們在各類問題上都取得了成功,但我們仍無法直觀地理解它們是如何在內部做出決策的。隨著人工智能系統被應用到更多重要的場景中,更好地了解其內部決策過程將有助于研究者能夠及時發現其中的缺陷和錯誤。對此,谷歌 AI 研究院與 OpenAI 一起合作提出了能夠弄清這個「黑盒子」里面到底有什么的新方法——激活圖集。谷歌在博客上發布文章介紹了這一意義重大的成果,雷鋒網 AI 科技評論編譯如下。
神經網絡已成為圖像相關計算任務中的實際標準,目前已被部署在多種場景中:從自動標記圖像庫中的照片到自動駕駛系統,我們都能看到神經網絡的身影。鑒于機器學習系統的在執行方面的準確性比不使用機器學習、直接由人為設計的系統更好,機器學習系統開始變得無處不在。但是,由于這些系統所了解的基本信息都是在自動訓練過程中學習到的,因此我們對于網絡處理其給定任務的整個過程的了解,有時仍然隔著一層紗。
近期,經過與 OpenAI 同事的通力合作,我們在發表的《用激活圖集探索神經網絡》論文中(「Exploring Neural Networks with Activation Atlases」,論文地址:https://distill.pub/2019/activation-atlas)論文中,描述了一種新技術,旨在幫助回答「給定一張圖像時,圖像分類的神經網絡能“看到”什么」的問題。激活圖集提供了一種融入卷積視覺網絡的新方法,為網絡的隱藏層內部提供了一個全局的、層級化和可解釋的概念綜述。我們認為,激活圖集揭示了機器針對圖像學到的字母表,即一系列簡單、基礎的概念,它們被組合并重組進而形成更復雜得多的視覺概念。同時,我們還開源了部分 jupyter notebooks 的代碼,以期幫助開發者們開始制作自己的激活圖集。
InceptionV1 視覺分類網絡其中一層的激活圖的詳細視圖。它展示了網絡用于對圖像進行分類的許多視覺檢測器,例如不同類型的水果狀紋理,蜂窩圖案和類似織物的紋理。
下面顯示的激活圖集是根據在 ImageNet 數據集上訓練的卷積圖像分類網絡 Inceptionv1 構建的。通常,給分類網絡輸入一張圖像,然后令其標記出該圖像屬于 1000 個預定類別中的哪一類,例如「意大利面」,「通氣管」或「煎鍋」。為此,我們通過一個約十層的網絡來評估圖像數據,該網絡每層由數百個神經元組成,且對于不同類型的圖塊,每個神經元在圖像塊的激活程度不同。某層中的一個神經元可能對「狗耳朵」圖像塊的激活程度更大,而另一層的另一個神經元可能會對高對比度的「垂直線」圖像更敏感。
我們從一百萬張圖像的神經網絡的每個層中收集到了內部激活圖,并構建了一套激活圖集。這些激活圖由一組復雜的高維向量表示,通過 UMAP 投影到有用的二維布局中,其中 UMAP 是一種保持原始高維空間局部結構的降維技術。
這就需要組織激活向量,并且因為激活圖太多而無法一目了然,所以我們也需要將它們整合成一個更易于管理的數量。為此,我們在之前創建的 2D 布局上提前繪制好了網格。對于網格中的每個單元格,我們對位于其邊界內的所有激活取均值,并使用特征可視化來創建圖標表示。

左:通過網絡輸入一組一百萬張隨機圖像,每個圖像收集一個隨機空間激活圖。中間:通過 UMAP 提供激活以將其降維到二維。然后繪制,相似的激活圖彼此臨近。右:然后我們繪制一個網格,對一個單元格內的激活取均值,并對平均激活做特征轉置。
下面我們可以看到僅一層神經網絡的激活圖集(請記住,這些分類模型可以有六個或更多層)。它顯示了在該層,網絡在做圖像分類時學到的一般視覺概念。這張圖集第一眼看上去氣勢如虹——感覺很多東西在一起涌過來!這種多樣性反映了模型所演化出來的各種視覺抽象和概念。

總覽多層(mixed4c)Inceptionv1 網絡中其中一層的的激活圖集。它大約是整個網絡的一半。

在這個細節中,我們可以看到不同類型的葉子和植物的探測器

在這里,我們可以看到不同的水,湖泊和沙洲探測器。

在這里,我們看到不同類型的建筑物和橋梁。
正如我們前面提到的,該網絡中還有更多層。讓我們看一下這個層之前的層,并深入網絡中探索視覺概念是如何變得更加細化的(每個層在前一層的激活頂部構建其激活)。

在前面的一層——mixed4a 中,有一個模糊的「哺乳動物」區域。

通過網絡的下一層,mixed4b,動物和人類已被分離開,中間出現了一些水果和食物。

通過層 mixed4c,這些概念被進一步細化并區分為小「半島」。
在這里,我們已經看到了從一層發展到另一層的全局構架,但每個概念在層的發展過程中也變得更加具體和復雜。如果我們聚焦于有助于特定分類的三層區域,比如「白菜」,我們可以清楚地看到這一點。

左圖:與其他圖層相比,這個早期圖層發特征非常不突出。中心:在中間層,圖像完全與葉子類似,但它們可以是任何類型的植物。右圖:在最后一層,圖像非常明顯像卷心菜,它們的葉子彎曲成圓形球。
這里還有另一個值得注意的現象:當你從一層到另一層移動時,不僅概念被細化,還會出現舊概念組合之外的新概念。

您可以看到,在 mixed4c(左和中)中,沙子和水是完全不同的概念,兩者都有被分類為「沙洲」的明顯屬性。將其與后一層(右),mixed5b 進行對比,以上兩種概念似乎被融合為了一個激活圖。
除了放大特定圖層整個激活圖集的某些區域外,我們還可以在 ImageNet 中僅為 1000 個類中的一類創建特定圖層的圖集。下面將展示網絡分類任務中的常用概念和探測器,例如「紅狐貍」。

這里,我們可以更清楚地看到網絡正在用什么標準來分類「紅狐貍」。他們有尖尖的耳朵,被紅色的皮毛包圍的白色嘴鼻,以及繁茂樹木或雪域的背景。

這里,我們可以看到「瓦屋頂」探測器的許多不同尺度和角度。

對于「野山羊」,我們看到了角和棕色皮毛的探測器,還有我們可能會發現這些動物的環境,如巖石山坡。

像瓦片屋頂的探測器一樣,「朝鮮薊」也有許多不同大小的探測器,用于探測朝鮮薊的紋理,但我們也有一些紫色的花探測器,它們可能是檢測朝鮮薊植物的花朵。
這些圖集不僅揭示了模型中細微的視覺抽象概念,而且還揭示了高層次的誤解。例如,通過查看「大白鯊」的激活圖集,我們可以看到水和三角形的鰭(正如預期的那樣),但我們也會看到看起來像棒球的東西。這暗示了這個研究模型所采用的捷徑,它將紅色棒球與大白鯊的張開嘴混合在一起。

我們可以用棒球圖像的補丁來測試這一點,以將模型的特定圖像的分類從「灰鯨」切換為「大白鯊」。

我們希望激活圖集能成為一種使機器學習更易于理解且解釋性更強的技術的有用工具。為了幫助開發者入門,我們還發布了部分 jupyter notebooks 代碼(https://github.com/tensorflow/lucid#activation-atlas-notebooks),通過單擊 colab(https://colab.research.google.com/) 就能立即在瀏覽器中執行程序。它們創建的基礎就是之前發布的工具包 Lucid,其中包括了許多其他可解釋性可視化技術的代碼。很期待各位能有所發現!
via:https://ai.googleblog.com/2019/03/exploring-neural-networks.html 雷鋒網
雷峰網原創文章,未經授權禁止轉載。詳情見轉載須知。