收藏 | 影象識別的視覺化解釋神經網路

重磅乾貨,第一時間送達

僅作學術分享,不代表本公眾號立場,侵權聯絡刪除

轉載於:新智元

使用機器學習(ML)演算法(尤其是現代深度學習)進行影象識別的最大挑戰之一,是難以理解為什麼一個特定的輸入影象會產生它所預測的結果。我們為過去十年中最先進的影象解釋技術整合了視覺介面,並對每種技術進行了簡要描述。

過去11年中用於解釋神經網路的最新方法是如何發展的呢?

本文在 Inception 網路影象分類器上嘗試使用引導反向傳播進行解釋演示。

收藏 | 影象識別的視覺化解釋神經網路

為什麼「解釋」很重要?

使用機器學習(ML)演算法(尤其是現代深度學習)進行影象識別的最大挑戰之一,是難以理解為什麼一個特定的輸入影象會產生它所預測的結果。

ML模型的使用者通常想了解影象的哪些部分是預測中的重要因素。這些說明或“解釋”之所以有價值,有很多原因:

機器學習開發人員可以分析除錯模型的解釋,識別偏差,並預測模型是否可能推廣到新的影象

如果提供了為何做出特定預測的解釋,則機器學習模型的使用者可能會更信任模型

像 GDPR 這樣圍繞機器學習的規則要求一些演算法決策能夠用人類的術語來解釋

因此,至少從2009年開始,研究人員就開發了許多不同的方法來開啟深度學習的“黑匣子”,從而使基礎模型更容易解釋。

下面,我們為過去十年中最先進的影象解釋技術整合了視覺介面,並對每種技術進行了簡要描述。

我們使用了許多很棒的庫,但是特別依賴 Gradio 來建立你在下面的 gif 檔案和 PAIR-code 的 TensorFlow 實現中看到的介面。

用於所有介面的模型是Inception Net影象分類器,可以在此jupyter筆記本和Colab上找到複製此部落格文章的完整程式碼。

在我們深入研究論文之前,讓我們先從一個非常基本的演算法開始。

七種不同的解釋方法

Leave-one-out (LOO)

收藏 | 影象識別的視覺化解釋神經網路

Leave-one-out (LOO) 是最容易理解的方法之一。如果你想了解影象的哪個部分負責預測,這可能會是你想到的第一個演算法。

其思想是首先將輸入影象分割成一組較小的區域,然後,執行多個預測,每次都遮蔽一個區域。根據每個區域的「被遮蔽」對輸出的影響程度,為每個區域分配一個重要性分數。這些分數是對哪個區域最負責預測的量化。

這種方法很慢,因為它依賴於執行模型的許多迭代,但是它可以生成非常準確和有用的結果。上面是杜賓狗的圖片示例。

LOO是Gradio庫中的預設解釋技術,完全不需要訪問模型的內部——這是一個很大的優點。

Vanilla Gradient Ascent [2009 and 2013]

收藏 | 影象識別的視覺化解釋神經網路

Paper: Visualizing Higher-Layer Features of a Deep Network [2009]

Paper: Visualizing Image Classification Models and Saliency Maps [2013]

這兩篇論文的相似之處在於,它們都透過使用梯度上升來探索神經網路的內部。換句話說,它們認為對輸入或啟用的微小更改將增加預測類別的可能性。

第一篇論文將其應用於啟用,作者報告說,「有可能找到對高階特徵的良好定性解釋, 我們證明,也許是違反直覺的,但這種解釋在單位水平上是可能的,它很容易實現,並且各種技術的結果是一致的。」

第二種方法也採用梯度上升,但是直接對輸入影象的畫素點進行探測,而不是啟用。

作者的方法「計算特定於給定影象和類的類顯著性圖,這樣的地圖可以使用分類ConvNets用於弱監督的物件分割。」

Guided Back-Propogation [2014]

收藏 | 影象識別的視覺化解釋神經網路

Paper: Striving for Simplicity: The All Convolutional Net [2014]

本文提出了一種新的完全由卷積層構成的神經網路。由於以前的解釋方法不適用於他們的網路,因此他們引入了引導式反向傳播。

該反向傳播可在進行標準梯度上升時過濾掉傳播時產生的負啟用。作者稱,他們的方法「可以應用於更廣泛的網路結構。」

Grad-CAM [2016]

收藏 | 影象識別的視覺化解釋神經網路

Paper: Grad-CAM: Visual Explanations from Deep Networks via Gradient-based Localization [2016]

接下來是梯度加權類啟用對映(gradient-weighted class activation mapping,Grad-CAM) 。它利用「任何目標概念的梯度,流入最後的卷積層,生成一個粗糙的定位對映,突出影象中的重要區域,以預測概念。」

該方法的主要優點是進一步推廣了可以解釋的神經網路類(如分類網路、字幕和視覺化問答(VQA)模型) ,以及一個很好的後處理步驟,圍繞影象中的關鍵物件對解釋進行集中和定位。

SmoothGrad [2017]

收藏 | 影象識別的視覺化解釋神經網路

Paper: SmoothGrad: removing noise by adding noise [2017]

像前面的論文一樣,此方法從計算類評分函式相對於輸入影象的梯度開始。

但是,SmoothGrad透過在輸入影象中新增噪聲,然後針對影象的這些擾動版本中的每一個來計算梯度,從而在視覺上銳化這些基於梯度的靈敏度圖。將靈敏度圖平均在一起可以得到更清晰的結果。

Integrated Gradients [2017]

收藏 | 影象識別的視覺化解釋神經網路

Paper: Axiomatic Attribution for Deep Networks [2017]

不同於以往的論文,本文的作者從解釋的理論基礎入手。它們「確定了歸因方法應該滿足的兩個基本公理——敏感性和實現不變性」。

他們用這些原理來指導設計一種新的歸屬方法(稱為綜合梯度),該方法可以產生高質量的解釋,同時仍然只需要訪問模型的梯度; 但是它添加了一個「基線」超引數,這可能影響結果的質量。

Blur Integrated Gradients [2020]

收藏 | 影象識別的視覺化解釋神經網路

Paper: Attribution in Scale and Space [2020]

論文研究了一個最新技術—— 這種方法被提出來用於解決具體的問題,包括消除「基線」引數,移除某些在解釋中傾向於出現的視覺偽影。

此外,它還「在尺度/頻率維度上產生分數」,本質上提供了影象中重要物體的尺度感。

下面這張圖比較了所有這些方法:

收藏 | 影象識別的視覺化解釋神經網路

下載1:OpenCV-Contrib擴充套件模組中文版教程

下載2:Python視覺實戰專案52講

下載3:OpenCV實戰專案20講

交流群