天天看點

實戰圖像分類網絡的可視化

實戰圖像分類網絡的可視化
作者:郭冰洋

1 簡介

一直以來,深度學習被認為缺乏可解釋性和基礎理論支撐,往往被人們看做一個“黑匣子”。為了展現神經網絡的内部特征并建構相應的了解過程,使神經網絡更加可靠,相關的網絡可視化研究越來越受人們重視。

實戰圖像分類網絡的可視化

現階段,網絡可視化的研究内容基本上圍繞經典的分類網絡展開,是圖像分類的延伸和升華,大體上可以分為層可視化、卷積核可視化、類激活圖可視化三種,本篇文章我們就走進神經網絡的内部,了解那些千姿百态的可視化知識。

2 方法彙總

2.1 層可視化

衆所周知,神經網絡由若幹卷積層、池化層、非線性激活層等構成,層可視化就是對構成網絡的各層結果進行可視化,以觀測圖像在網絡中的傳播過程。

層可視化的對應操作比較簡單,我們隻需要擷取網絡的各層輸出結果,也就是将圖像由tensor形式轉換為numpy對應的矩陣形式即可。

實戰圖像分類網絡的可視化

如上圖中的蜘蛛,可以輸出每層的結果如下:

實戰圖像分類網絡的可視化

在層數較低時,網絡關注的重點在整幅圖檔,随着層數的加深,關注的重點則放在了某些輪廓邊緣區域,說明網絡會随着學習的深入關注更加細節的部分,這一過程也符合人們由整體到局部的認知方式。

層可視化可以很好的解釋網絡學習的大緻流程,呈現了網絡在圖像傳播過程中關注區域的變化過程。

2.2 卷積核可視化

圖像分類網絡的本質是對卷積核的參數進行學習,不同的卷積核代表對應的類别特征,是分類的核心基準。是以,如何呈現出卷積核的内容,也是評判網絡學習能力的方法之一。

在進行卷積核可視化時,我們需要對網絡中各層學習到的參數進行提取,同樣需要由tensor轉化為轉換為numpy對應的矩陣形式。

仍然以蜘蛛的圖檔為例,可以看到不同層的卷積核可視化如下:

實戰圖像分類網絡的可視化

可以看出淺層的卷積核大多學習點、顔色等基礎特征;随着層數的增加開始學習到線段、邊緣等特征。層數越深,學習到的特征就越具體越抽象。

2.3 類激活圖可視化

層可視化和卷積核可視化所關注的重點在圖像的局部特征,需要通過提取每層的參數才可以獲得對應的可視化圖,并不能反應整幅圖像的完整響應。

如果能得出整幅圖像對其類别的整體響應值,即每個像素在分類所做出的貢獻,我們便可以得到特征在網絡學習過程中的重要程度占比。

在此基礎上,類激活圖的概念被提出。

實戰圖像分類網絡的可視化

通過對特征圖作全局平均值池化可以獲得特征圖的整體均值,并移除全連接配接層,以此作為基準進行分類,可以保留特征的空間位置資訊,進而反應圖像中任意位置特征的重要程度。

實戰圖像分類網絡的可視化

如上圖中的花朵圖像,通過類激活圖我們可以看到網絡關注的重點區域,這也是判定網絡學習是否準确的一種全新思路。

以上實驗代碼可以發送關鍵詞“分類模型可視化”到有三AI公衆号背景擷取。

繼續閱讀