卷積神經網路表徵視覺化研究綜述
關鍵詞:深度學習、卷積神經網路、可解釋性、表徵視覺化、顯著圖
近年來, 以深度神經網路(Deep neural networks, DNN)為代表的機器學習方法逐漸興起[1]. 由於訓練資料的增加[2-3]及計算能力的大幅提升, DNN的網路結構及與之相適應的最佳化演算法[4-6]變得更加複雜, DNN在各項任務上的效能表現也越來越好, 產生了多種適用於不同型別資料處理任務的經典深度網路結構, 如卷積神經網路(Convolutional neural network, CNN)和迴圈神經網路(Recurrent neural network, RNN). 對於影像資料處理與識別領域, CNN是一種十分常用的網路結構, 在影像分類、目標檢測、語義分割等任務上取得了非常好的效果, 已經成為該領域應用最廣泛的基礎模型[7].
如圖1所示, 傳統機器學習演算法採用人工設計的特徵集, 按照專家經驗和領域知識將其組織到機器學習演算法中. 由於設計人員本身瞭解這些被定義特徵的具體含義, 因此, 傳統機器學習方法一定程度上是可解釋的, 人們大致明白演算法對各種特徵的依賴以及演算法的決策依據. 例如, 線性模型可使用特徵對應的權重代表特徵重要程度. 相比於傳統機器學習演算法, 以CNN為代表的深度學習演算法屬於特徵學習或表示學習, 可對輸入資料進行自動特徵提取及分散式表示, 解決了人工特徵設計的難題. 這一優勢使其能夠學習到更加豐富完備的且含有大量深層語義資訊的特徵及特徵組合, 因此在效能表現上超過多數傳統機器學習演算法.
Fig. 1 Comparison of the learning process between traditional machine learning and deep learning[8]
然而, CNN這一優勢的背後也存在著一定侷限性. 一方面, 人們至今無法較好地理解CNN內部知識表示及其準確的語義含義. 即使是模型設計者也難以回答CNN到底學習到了哪些特徵、特徵的具體組織形式以及不同特徵的重要性度量等問題, 導致CNN模型的診斷與最佳化成為經驗性、甚至盲目性的反覆試探, 這不僅影響了模型效能, 還可能遺留潛在的漏洞; 另一方面, 基於CNN模型的現實應用在日常中已經大量部署, 如人臉識別、行人檢測和場景分割等, 但對於一些風險承受能力較低的特殊行業, 如醫療、金融、交通、軍事等領域, 可解釋性和透明性問題成為其擴充和深入的重大阻礙. 這些領域對CNN等深度學習模型有著強烈的現實需求, 但受限於模型安全性與可解釋性問題, 目前仍無法大規模使用. 模型在實際中可能犯一些常識性錯誤, 且無法提供錯誤原因, 導致人們難以信任其決策.
因此, 對CNN的理解和解釋逐漸受到人們關注, 研究者們嘗試從不同角度出發, 解釋CNN的特徵編碼和決策機制. 表徵視覺化作為其中一種解釋方法, 採用基於特徵重要性的解釋思路, 尋找輸入變數、特徵編碼及輸出結果之間的相關性, 並以視覺展示的方式直觀呈現, 是一種較為直接的理解CNN的途徑. 本文對該領域的現有研究進行了系統性整理和回顧, 對其中涉及的相關概念及內容、典型方法、效果評估、應用等方面作了歸納總結, 著重介紹了視覺化方法的分類及演算法的具體過程. 最後, 分析了該領域仍存在的難點並展望了未來研究趨勢.
相關概念與研究內容
1.1.1
CNN
目前, CNN已成為基於深度學習的影像識別領域應用最廣泛、效果最佳的網路結構. 最早的CNN由LeCun等[9]於1998年提出, 用於手寫體數字識別. CNN的基本結構中含有輸入層、卷積層、全連線層及輸出層. 其中輸入層、全連線層、輸出層與其他網路大致相同, 僅卷積層是CNN特有的結構. 經典CNN卷積層中含有卷積、啟用和池化3種操作: 1)卷積操作使用多個卷積核(濾波器)在輸入張量上平移作內積運算, 得到對應的特徵圖. 同層的不同卷積核用來提取不同模式的特徵, 不同層的卷積核則用來提取不同層級的特徵. 2)啟用操作使用非線性啟用函式處理卷積結果, 用於提升網路的非線性特性, 增強非線性擬合能力, 常用的啟用函式如tanh、sigmoid、rectified linear unit (ReLU)[6]和改進版[10-11]等. 3)池化操作一般使用最大值池化和平均值池化, 按照池化視窗處理整個視窗內的值, 用於壓縮引數和降低過擬合.
稀疏連線和權重共享是CNN相對於前饋神經網路的主要特點. 基於這些經典的CNN結構及其特性, 研究人員透過不斷改進和最佳化[12], 逐漸設計出結構更復雜且識別效能更優異的CNN, 以在Imagenet Large Scale Visual Recognition Competition (ILSVRC)資料集[2]影像分類任務上的優勝CNN模型為例:
2012年, Krizhevsky等[1]提出了AlexNet, 在影像分類任務上以巨大優勢取得冠軍, 成功吸引了學術界的關注, 成為新階段CNN興起的標誌.
2013年, Zeiler等[13]提出了ZFNet, 利用反摺積視覺化技術診斷AlexNet的內部表徵, 然後對其針對性地做了改進, 使用較小的卷積核和步長, 從而提升了效能.
2014年, 谷歌公司Szegedy等[14]提出了GoogLeNet, 核心是其中的Inception模組, 使用了不同尺寸的卷積核進行多尺度的特徵提取和融合, 從而更好地表徵影像. 同年, 牛津大學的Simonyan等[15]提出了視覺幾何組網路(Visual geometry group network, VGGNet), 僅使用2 × 2和3 × 3兩種典型的卷積核, 透過簡單地增加層的深度實現了效能提升.
2015年, 微軟公司He等[16]提出了殘差網路(Residual networks, ResNet), 使用殘差連線實現跨層的資訊傳播, 緩解了之前由於深度增加引起的梯度消失問題, 並以3.57%的錯誤率首次超越人類水平.
2016年, Huang等[17]提出了DenseNet, 相比於ResNet, 使用了密集連線操作, 強化特徵的傳播和複用.
2017年, Hu等[18]提出了壓縮激勵網路(Squeeze-and-excitation networks, SENet), 透過特徵圖各通道間的權值自適應再調整, 實現各個通道之間的特徵重標定, 提升了網路的特徵提取能力.
CNN在影像資料處理上有天然的優勢, 因而在影像分類、目標檢測、語義分割和場景識別等領域應用廣泛, 在其他模態的資料如影片、語音和文字等領域也有較多應用. 影像分類是CNN最典型的應用領域, 許多影像分類系統使用預訓練的CNN進行部署. 預訓練的CNN是指已經在某個資料集上完成訓練的CNN模型. 一般情況下, 預訓練的CNN由研究人員設計並調整至最佳狀態, 在實際場景中可以直接使用而無需再訓練. 由於預訓練CNN模型在現實中經常使用, 因此, 針對預訓練CNN模型的理解和解釋是可解釋性研究中的一項重要內容.
1.1.2
可解釋性
可解釋性是近年來深度學習領域的研究熱點. 可解釋性與可理解性的含義並不相同[19-20], 文獻[19]從CNN特徵表示形式的角度出發, 對CNN的“可解釋性”和“可理解性”做了區分: 可解釋性表示從抽象概念(向量空間、非結構化特徵空間)到人類可理解的領域(影像和文字等)的對映, 而可理解性表示可解釋域內促使模型產生特定決策的一組特徵. 從這種區分看, “可解釋性”研究重點在於將引數化形式表示的特徵對映到人類可直觀感受的表示形式, 而“可理解性”側重在人類可理解的領域中尋找與模型某個決策相關的具體特徵. 也就是說, “解釋”是一種從不可解釋域到可解釋域的對映動作, “理解”則是一種在可解釋域內尋找感興趣證據的過程. 麻省理工的研究人員認為[20], 透過“解釋”能夠實現對深度網路的“理解”, 可解釋性的研究目標是以某種人類可理解的方式描述一個系統的內部機制. 同時, 將可解釋性的研究內容分為DNN處理過程的理解、DNN內部表徵的理解和自解釋的DNN三個方面.
深度學習可解釋性的研究內容非常豐富, 本文從可解釋性研究的模型物件出發, 根據待解釋的目標模型是否已經完成訓練, 將深度學習可解釋性研究劃分為兩部分: 事後解釋和自解釋模型, 如圖2所示[21].
圖 2 可解釋性深度學習的研究內容劃分
Fig. 2 The division of the research content of the interpretable deep learning
事後解釋是對預訓練模型的解釋. 現實中, 由於模型已經完成訓練和部署, 而重新訓練模型耗費的時間和資源成本過大, 因此不具備重新訓練的可能性. 針對這種模型的解釋, 需要在不修改模型自身結構及引數的情況下完成, 結合預訓練模型的輸入、中間層引數和輸出等資訊, 實現對模型內部表徵及決策結果的解釋.
對於預訓練模型的事後解釋方法, 現有研究主要分為以下3類:
表徵視覺化. 表徵視覺化是一種基於特徵重要性的解釋方法, 主要研究模型內部的特徵表示及這些特徵與模型輸入、輸出之間的關係. 梯度歸因方法[22-23]是最具代表性的表徵視覺化方法, 使用輸入空間中畫素自身的梯度 (或絕對值、平方等)來衡量該畫素與預測結果的關聯程度. 表徵視覺化與模型結構視覺化不同, 前者重在研究模型內部特徵(以引數的形式)的語義理解, 以及輸入、特徵編碼及輸出之間的因果關係, 後者研究模型結構、資料流向及形狀的變化.
基於樣例的解釋. 基於樣例的解釋是一種基於樣本重要性的解釋方法, 採用訓練資料中的樣本原型作為當前決策結果的解釋[24-25]. 這種方法模擬人對事物的解釋過程[26], 從資料集中已有樣本(已經學習過)中找到相似樣本, 作為對新的樣本預測結果的比較.
自然語言解釋. 自然語言解釋以人類可理解的自然語言形式, 對CNN識別結果進行解釋[27]. 該過程中, 需要將CNN的影像特徵編碼對映為RNN的自然語言特徵編碼, 透過跨模態的表徵融合來生成用於解釋CNN輸入與輸出的自然語言. 該過程與影像描述[28]和視覺問答[29]相似.
自解釋模型不同於事後解釋, 其在模型設計時即考慮了內在可解釋性, 在此基礎上進行訓練和最佳化, 形成結構上或邏輯上具有內生可解釋性的模型. 自解釋模型能夠在應用的同時由其自身為使用者提供對輸出結果的解釋.
對於建立具有自身可解釋性的模型, 現有研究主要分為以下2類:
分離式表徵: 在模型結構或最佳化過程中新增一些約束, 以降低模型複雜性, 同時保證模型的效能, 使模型內部的表徵分離可理解. 例如, Zhang等[30]對濾波器的學習進行約束, 訓練出可解釋的濾波器, 使每個濾波器有針對性地關注特定目標部位.
整合方法: 結合傳統可解釋性較好的機器學習方法, 構建在深度神經網路的識別效能和傳統方法的可解釋性之間折衷的新模型. 例如, 將神經網路整合到決策樹演算法中, 使用神經網路提取的特徵作為輸入, 這樣訓練得到的模型同時具有兩者的優點, 可實現決策路徑的清晰可理解[31].
1.1.3
表徵視覺化
表徵視覺化是一種事後解釋方法, 通常以視覺的方式對CNN內部表徵和輸出決策進行解釋. 表徵視覺化嘗試解釋CNN內部特徵的表示形式、輸入–內部特徵–輸出三者之間的關係、促使網路做出當前預測的輸入等問題。與其他方法相比, 表徵視覺化方法具有以下優點: 1)簡單直觀, 從視覺上為使用者提供觀察. 2)便於深度分析網路表徵, 診斷訓練效果, 進而改進網路結構設計. 3)無需修改模型結構, 多數表徵視覺化方法可在模型完成訓練之後進行特徵分析與決策結果解釋, 無需修改或重新訓練模型. 表徵視覺化方法生成的解釋結果以熱力圖的方式呈現. 熱力圖是一個由不同顏色強度構成的影像, 畫素顏色的強度與其重要性相對應. 從數學角度看, 熱力圖實際上是一組與輸入變數對應的重要性值 (或相關性值)的集合, 集合中的每個元素值表示其對應的輸入變數與輸出結果之間的相關性.
1) CNN表徵視覺化
表徵視覺化過程與CNN預測過程相互依賴, 如圖3所示. 圖3上方為CNN預測過程, 下方為視覺化方法的解釋過程, 箭頭表示這兩個過程中各階段之間的相互關係.
圖 3 CNN表徵視覺化的研究思路
Fig. 3 The research idea of CNN representation visualization
CNN預測過程: 實現從輸入變數到輸出預測的對映. 其中, 輸入變數對應的輸入空間被認為是人類可理解的空間(例如影像和語言文字), 而特徵編碼對應的特徵空間經過了CNN的自動特徵提取與特徵組合. 視覺化解釋CNN的目的就是將中間層特徵編碼和輸出層預測結果反向對映到輸入空間, 實現不可解釋域向可解釋域的對映.
視覺化方法的解釋過程涉及3種: 1)解釋內部特徵: 研究黑盒中間編碼了哪些知識, 以怎樣的形式組織這些知識的. 2)決策與特徵關聯: 研究中間層的知識與輸出預測之間的關係. 3)解釋輸入–輸出關係: 研究輸入變數、中間層特徵編碼和輸出預測三者之間的關係.
2) CNN、RNN和生成對抗網路表徵視覺化的比較
CNN在影像資料處理領域應用較為廣泛, 層次化的表徵方式使其適用於影像資料逐層學習的特性, 與人類非常相似. 因此, CNN表徵視覺化主要研究各個隱含層所編碼的特徵、這些特徵的語義含義及與輸入輸出之間的關係. 對於另外兩種常見的DNN: 迴圈神經網路(RNN)與生成對抗網路(Generative adversarial network, GAN), 表徵視覺化研究的關注點略有不同.
RNN是一種隨時間步迭代的深度網路, 有長短時記憶網路 、門控迴圈單元等擴充套件版結構, 擅長處理時序型資料, 在自然語言處理領域應用廣泛. RNN的主要特點在於其迭代式的處理資料, 這些迭代資訊儲存於網路結構中的隱狀態中, 每個時間步的隱狀態含義不同, RNN的長距離依賴關係學習能力也在於這些隱狀態的學習效果. 因此, RNN視覺化研究多專注於對這些隱藏狀態的理解與解釋. 例如, 文獻[32]視覺化RNN的隱狀態對於輸入的預期響應, 用於觀察RNN內部的正面與負面輸入時的啟用分佈. 文獻[33]開發了一個長短時記憶網路視覺化工具, 用於瞭解這些隱藏狀態的動力學過程. 文獻[34]透過視覺化的方式解釋了長短時記憶網路在長距離依賴關係學習上的優勢. 此外, 一些影像領域常用的表徵視覺化方法如層級相關性反饋(Layer-wise relevance propagation, LRP)方法, 也被用於解釋RNN的表徵及量化輸入–輸出之間的關係[35-36].
GAN是一種生成式神經網路, 由生成器和判別器兩部分構成, 二者之間透過對抗學習的方式互相提升效能[37]. 從結構上看, GAN的生成器一般使用反摺積結構, 判別器可視為一個CNN結構. 由於GAN主要用於學習資料的潛在分佈, 然後用於生成式任務, 因此, GAN視覺化的關注點主要在於生成器部分. 更具體地, 在於理解和解釋生成器隱變數的作用. 典型的如InfoGAN[38], 對輸入向量進行分解, 使其轉為可解釋的隱變數及不可壓縮的噪聲, 進而約束隱變數與輸出之間的關係, 從而學習可解釋的特徵表達. 文獻[39]和文獻[40]透過操縱生成器的隱變數來觀察生成結果的變化情況, 進而理解GAN的過程. 文獻[41]專門研究了GAN隱空間的語義解糾纏問題, 提出了一種效果較好的人臉編輯方法, 可透過編輯GAN的隱空間來調整生成人臉的屬性, 如姿勢、性別和年齡等.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70020013/viewspace-2909576/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 卷積神經網路中的視覺化方法卷積神經網路視覺化
- 利用Python實現卷積神經網路的視覺化Python卷積神經網路視覺化
- 94頁論文綜述卷積神經網路:從基礎技術到研究前景卷積神經網路
- 卷積神經網路十五問:CNN與生物視覺系統的研究探索卷積神經網路CNN視覺
- 卷積神經網路卷積神經網路
- 卷積神經網路概述卷積神經網路
- 解密卷積神經網路!解密卷積神經網路
- 5.2.1 卷積神經網路卷積神經網路
- 卷積神經網路CNN卷積神經網路CNN
- 卷積神經網路-AlexNet卷積神經網路
- 卷積神經網路-1卷積神經網路
- 卷積神經網路-2卷積神經網路
- 卷積神經網路-3卷積神經網路
- RNN神經網路模型綜述RNN神經網路模型
- 卷積神經網路四種卷積型別卷積神經網路型別
- 全卷積神經網路FCN卷積神經網路
- 深度剖析卷積神經網路卷積神經網路
- 卷積神經網路鼻祖LeNet網路分析卷積神經網路
- 【Python教程】計算機視覺的基石——讀懂 CNN卷積神經網路Python計算機視覺CNN卷積神經網路
- CNN神經網路之卷積操作CNN神經網路卷積
- 卷積神經網路 part2卷積神經網路
- 14 卷積神經網路(進階)卷積神經網路
- 卷積神經網路(CNN)詳解卷積神經網路CNN
- 何為神經網路卷積層?神經網路卷積
- Tensorflow-卷積神經網路CNN卷積神經網路CNN
- 神經網路原理的視覺化神經網路視覺化
- 谷歌公司提出的卷積神經網路GoogLeNet 系列作品簡述谷歌卷積神經網路Go
- 【深度學習篇】--神經網路中的卷積神經網路深度學習神經網路卷積
- 吳恩達《卷積神經網路》課程筆記(1)– 卷積神經網路基礎吳恩達卷積神經網路筆記
- 掌握視覺化卷積神經網路模型,帶你暢遊影像識別技術領域視覺化卷積神經網路模型
- 吳恩達《卷積神經網路》課程筆記(2)– 深度卷積模型:案例研究吳恩達卷積神經網路筆記模型
- Tensorflow系列專題(四):神經網路篇之前饋神經網路綜述神經網路
- 卷積神經網路中的Winograd快速卷積演算法卷積神經網路演算法
- 卷積神經網路:Convolutional Neural Networks(CNN)卷積神經網路CNN
- 卷積神經網路(Convolutional Neural Network,CNN)卷積神經網路CNN
- 直白介紹卷積神經網路(CNN)卷積神經網路CNN
- 卷積神經網路—基本部件(2)卷積神經網路
- 卷積神經網路-啟用函式卷積神經網路函式