可視化神經網路:Grad-CAM小簡介 — 論文筆記(3)Grad-CAM的活用
主要分為三個部分:診斷原有神經網路及資料集、圖片細部構造解讀,和物件捕捉/VQA任務。
診斷神經網路及資料集(section 6)
診斷神經網路
作者以VGG-16為測試對象,訓練資料集則使用ImageNet。首先整理出VGG-16分類錯誤的圖片清單,再使用Grad-CAM去看模型在這些圖片上的熱圖。在視覺化的時候,會看正確分類的標籤,以及VGG-16分類的錯誤標籤。如下圖:
看起來真的蠻有趣的。有些圖片看起來也不能說VGG-16做錯了,例如(b):車子的後照鏡的確是有圓形款的,如果他認為影像是倒映在後照鏡上,好像也沒錯(當然,人眼可以判斷照片沒有左右顛倒)。(a)則是正確的分類,因為照片中確實有沙灘。(d)因為VGG-16只抓了一部分,所以認為是蛇。Guided Grad-CAM的好處就是可以告訴人為什麼模型這樣分類,即使是錯的,也錯得有道理。配合具鑑別性的分類,以及細部特徵抓取,這個能力展現得強大且穩定。
Goodfellow — 鼎鼎大名的GAN作者 — 提過作為分類任務的神經網路,其實很容易在圖片被施加一些對抗雜訊(adversarial noise)之後,就很有信心的錯誤分類[2]。當然,這個雜訊不是亂加的,而是經過梯度和損失函數對於該圖片的狀況而計算得出,如下:
所以本篇作者也想知道這個現象能不能在Grad-CAM上面看到。他們用類似的作法處理ImageNet的圖片,然後給VGG-16辨認。果然,VGG-16「很有信心的」把圖片分類到完全不相干的項目。如下圖:
本來該分類到貓跟狗的圖片,經過對抗雜訊處理之後,VGG-16把它分到客機(>0.9999)去了。對於原本貓狗的分類,信心只剩1.1e-20和6.5e-17而已。然而,看到最右上跟最左下的兩張圖,可以發現Grad-CAM在面對指定「狗」和「貓」的分類時,其熱區仍可正確指出目標所在。下排的中間和右邊圖片則是用Grad-CAM去找模型分類該圖片最高信心的兩個項目:客機(>0.9999)及太空梭(1e-5)的熱圖,看起來是抓到周遭背景了。不過可惜的是,作者並沒有對於Grad-CAM為何仍可抓到正確分類的位置,以及為何經過擾亂之後,模型的判斷會改成去抓周邊背景有所解釋。一來可能是因為沒有想到原因,二來也可能是因為對抗雜訊本來就是刻意生成的資料,在正常的隨機場合下要吻合並不容易。其背後本來就是數學的計算導出,也就不必再回到數學分析。
診斷資料集
作者一樣使用經過ImageNet訓練的VGG-16來做測試,這次測試的是「醫師」與「護理師」的二元分類任務,模型要將圖片分類為醫師或護理師。由於職業在性別上的比例落差,在實驗時,在測試資料部分將兩個職業的性別數量調整過,而訓練資料則沒有。由此,果然模型受到訓練資料集中性別比例差別的影響,在測試集的表現下降(82%)。
可以看得很清楚,受到資料偏差影響的模型,在判斷時確實將臉、頭髮長度列入參考。因此,在測試資料集,該模型把一部分男護理師判斷成醫師,而把女醫師判斷成護理師,反映出資料集內的性別偏差(78%的醫師圖片為男性,而93%的護理師圖片為女性)。作者再把訓練資料集中的性別-職業比例調整到接近。重新訓練出來的模型,在測試集表現達到90%,而且其分類依據轉為袖子長度及聽診器,而不再是「看臉」了。這個實驗,反映出資料集的組成,但似乎也同時反映了一部分的社會文化。
圖片細部構造解讀(section 7)
在第一篇我們提過Grad-CAM的數學式:
α是權重,某種程度反映某個神經元在特定分類的重要性:如為正值,則表示有分類相關意義,值越大,關聯越高;如為負值,則表示與分類越無關,移除此部分,對於辨識該分類有幫助。由於神經元是卷積層的接受區(receptive field)的運算結果,可以把它視為「關注圖片的某個區域」的概念。
有一個概念是幫神經元自動命名,其依據為神經元所看到的圖片部分對應哪個概念[3]。作者利用這個做法,是想知道神經元,或神經網路從圖片中看到哪些據以判斷為該分類的構造。如下圖:
例如(a),判斷為書店分類是根據「書」、「架子」等,接收到對應區域的神經元較為活躍;反之,對應到「車」、「天空」等等概念的神經元就被抑制。因為神經網路在訓練的時候會看到各種圖片,這種分析神經元的方式可以看到神經網路捕捉到圖片中那些結構,並據此來判斷分類。就像人腦一樣,某些部位的神經元在某些活動時特別活躍。
物件捕捉和VQA(section 8)
這兩個任務屬於視覺-語言都有涵括的任務。例如:模型要把看到的物件轉換成對應的詞彙,並利用介係詞連接,產生人們看得懂的描述句。由於Grad-CAM本身具有分類鑑別及細部特徵捕捉的能力,加上其穩定的可解釋性和模型忠實度,作者認為Grad-CAM應該很適合這類任務。
物件捕捉(Image captioning)
先回顧一下這篇論文一開始的架構示意圖:
作者選用neuraltalk2[4],這是一個VGG-16搭配LSTM的模型,也就是上圖中間那一條。視覺化的做法和前面雷同,取CNN的最後一層做梯度運算。
可以看到Grad-CAM將模型進行物件捕捉任務時關注的焦點以熱圖的方式呈現。尤其是右圖,熱圖聚焦在主詞「男人」,並沒有標到女人身上。
Johnson et al.[5] 提出一個基於全卷積網路的物件偵測模型,模型會以bounding box圈出關注的區域,再以LSTM產生語句描述物件的狀態。作者將先前搭在neuraltalk2的Grad-CAM用這個模型來驗證結果。
為了量化Grad-CAM產生的熱圖區域和bounding box重疊的程度,將均質的顯影整張圖片訂為1.0,其比值為bounding box內/外的顯像值。Grad-CAM可達到3.27±0.18,而若是Guided Grad-CAM則可達到6.38 ± 0.99。顯示出其一致性,尤其Grad-CAM架在的neuraltalk2並沒有受到有bouding box資料的訓練,但仍可做到如此差異。
Visual Question Answering(VQA)
模型看圖片,根據問題回答[6]。答案是選項,所以其實…還是一個分類任務。但觀察的比較細,也可以從另一個角度檢視模型判斷的根據,即模型學到什麼,因此在幫助人了解深度學習的運作機轉上,還是有一定貢獻。
Grad-CAM架在這樣的模型上,主要是根據回答選項作為加權,來運算梯度,得到熱圖。
Grad-CAM一樣可以給出很精確的答案。例如(a),消防栓的頂部是黃色,因此用黃色計算權重時,熱圖只呈現頂部。身體是紅色,用紅色計算時則只顯示身體。也因此很忠實地反映模型學到的位置,和回答的依據。(b)則是視覺化ResNet-based VQA模型的結果。
結論
我想作者的目的,就是藉由視覺化的方法,讓模型「為何可以學習」變得具體一點。當然,他們不是用解釋原因的方式,而是呈現模型學習的結果來表示。作者的結論我很同意,就是一個好的AI模型,應該 —
不僅聰明,而且能告訴人們他判斷及行動的依據,從而取信於人。
這應該是這一波AI發展浪潮,非常重要的核心概念之一。
參考資料
[1] 本篇原文,https://doi.org/10.1007/s11263-019-01228-7
[2] Goodfellow, I. J., Shlens, J., & Szegedy, C. (2015). Explaining and
harnessing adversarial examples. stat.
[3] Bau, D.,Zhou, B.,Khosla,A., Oliva, A.,&Torralba, A. (2017).Network
dissection: Quantifying interpretability of deep visual representations.
In computer vision and pattern recognition.
[4] Karpathy, A., & Fei-Fei, L. (2015). Deep visual-semantic alignments for generating image descriptions. In CVPR.
[5] Johnson, J., Karpathy, A., & Fei-Fei, L. (2016). DenseCap: Fully convolutional localization networks for dense captioning. In CVPR.
[6] Lu, J., Lin, X., Batra, D., & Parikh, D. (2015). Deeper LSTM and normalized CNN visual question answering model. https://github.com/GT-Vision-Lab/VQA_LSTM_CNN