Deep Inside Convolutional Networks: Visualising Image Classification Models and Saliency Maps

zxyhhjs2017發表於2019-03-19

開源:http://code.google.com/p/cuda-convnet/

網上的程式碼實現(在這個網頁裡面,自己尋找):https://www.jianshu.com/p/e46b1aa48886

摘要:

問題:

1.視覺化神經網路,得知神經網路在做什麼

方法:我們使用兩種視覺化技術,都是計算關於相關圖片類得分的梯度

(1).視覺化類的概念,最大化類得分(?)

(2).計算所給影像對應類的類顯著圖(?)

(3).我們建立了基於梯度的視覺化方法與基於反摺積的視覺化方法之間的聯絡

結果:

我們展示了了這些圖可以應用到弱監督中的分割和分類當中。

 

介紹:

別人的工作:

1.rk, Erhan et al. [5] 視覺化通過最大化神經元的啟用,通過梯度上升的一個方法,這個方法被Deep Belief Network (DBN) [7]和Le et al.[9]採用做視覺化工作

2.Zeiler et al. [13].等人使用了Deconv的轉置卷積方法來視覺化神經網路

我們的工作:

貢獻:

1.我們證明了使用輸入影像的數值優化可以獲得ConvNet分類模型的可理解的視覺化(注意,在我們的例子中,與[5]不同,網路是以監督的方式訓練的,因此我們知道最終完全連線的分類層中哪個神經元應該最大化以顯示感興趣的類別(在無監督的情況下,[9] ]必須使用單獨的帶註釋的影像集來找出負責特定類的神經元)不懂??)

2.我們提出了一個方法(基於梯度的方法),通過反傳來計算顯著圖(這個圖可以被用於弱監督目標定位??)

3.最後我們將基於梯度的方法推廣到反摺積神經網路當中(相當於摘要中的建立聯絡)

使用的網路以及結果:

網路

1.使用與alexnet(但是沒有alexnet那麼寬)相似的網路,在imagenet上訓練

結果

2.ILSVRC-2013:top1/top5分類誤差為39.7%/ 17.7%,略高於alexnet的40.7%/ 18.2%。

 

第一種方法:Class Model Visualisation(摘要裡的最大化類得分)

(1).固定已經訓練好的網路權重,然後輸入一張全是0的圖,損失函式使用如上式所示的公式,使用L2正則化防止影像某些值太大(?這個太大不懂)

(2).如果你想看最大啟用某一類(用於分類的全連線的類別)得分,你需要將你感興趣的類設定為1,其他類設定為0(比如你對鵝感興趣,就在全連線層在鵝這一類設定為1,其他類別設定為0)

(3).然後根據以上的損失函式,更新輸入全0的圖片最後就會看到最大啟用鵝這一類的圖片是什麼樣子

如下圖所示:

觀察此圖:可以觀察這張圖,舉個例子,假如你對鵝這一類感興趣,那麼你看goose這張圖片,可以觀察出恨不得滿圖都是鵝的身影,所以訓練出來的圖片就是鵝。

 

基於梯度的一種方法:Class Model Visualisation(摘要裡第二個方法)

1.I代表的是一個影像的one-vector向量,Sc(I)代表是某一類的分數,Wc代表的是每一個元素對應的權重,所以就是相當於根據得分計算原圖上每一個畫素的梯度,一次反傳就可以計算出全部

2.在灰度影像的情況下,w中的元素數等於影像I0中的畫素數,因此可以將對映計算為M ij = | wh(i,j)|,其中h(i ,j)是w的元素的索引,對應於第i行和第j列中的影像畫素。 在多通道(例如RGB)影像的情況下,讓我們假設影像I的畫素(i,j)的顏色通道c對應於具有索引h(i,j,c)的w的元素。 為了得到每個畫素(i,j)的單個類顯著性值,我們在所有顏色通道上取最大w值:M ij = max c | w h(i,j,c)|。(也就是對於灰度圖,直接求出每個畫素點所對應的梯度即可,如果是RGB,則求出3個通道上最大的那個梯度)

2.從另一種方向去理解這個基於梯度的演算法是,求出每個畫素點的梯度(梯度即表示變化最快的方向),即表示畫素對所得分數的影響大小,梯度越大影響越大。

Weakly Supervised Object Localisation:

可以將這個類顯示圖用作輸入去做目標定位,可不可以用來分類呢?

和轉置卷積方法的聯絡Relation to Deconvolutional Networks:

1.反摺積與梯度值相似或者相等(這個確實不能理解,也許需要重新結合轉置卷積去理解吧)

2.基於梯度的方法在反傳時候,對於那些前向傳播中啟用值為0的神經元不計算梯度,而反摺積僅使得反向傳播時的值大於0(使用relu函式),對於前向傳播的啟用值不管大於0還是等於0,都計算

3.deconv有一個switch操作,

相關文章