近年來, 以深度神經網絡(Deep neural networks, DNN)為代表的機器學習方法逐漸興起[1]. 由于訓練數據的增加[2-3]及計算能力的大幅提升, DNN的網絡結構及與之相適應的優化算法[4-6]變得更加復雜, DNN在各項任務上的性能表現也越來越好, 產生了多種適用于不同類型數據處理任務的經典深度網絡結構, 如卷積神經網絡(Convolutional neural network, CNN)和循環神經網絡(Recurrent neural network, RNN). 對于圖像數據處理與識別領域, CNN是一種十分常用的網絡結構, 在圖像分類、目標檢測、語義分割等任務上取得了非常好的效果, 已經成為該領域應用最廣泛的基礎模型[7].
如圖1所示, 傳統機器學習算法采用人工設計的特征集, 按照專家經驗和領域知識將其組織到機器學習算法中. 由于設計人員本身了解這些被定義特征的具體含義, 因此, 傳統機器學習方法一定程度上是可解釋的, 人們大致明白算法對各種特征的依賴以及算法的決策依據. 例如, 線性模型可使用特征對應的權重代表特征重要程度. 相比于傳統機器學習算法, 以CNN為代表的深度學習算法屬于特征學習或表示學習, 可對輸入數據進行自動特征提取及分布式表示, 解決了人工特征設計的難題. 這一優勢使其能夠學習到更加豐富完備的且含有大量深層語義信息的特征及特征組合, 因此在性能表現上超過多數傳統機器學習算法.
?圖 1 傳統機器學習與深度學習的學習過程對比[8]
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的隱空間來調整生成人臉的屬性, 如姿勢、性別和年齡等.
審核編輯:湯梓紅
-
神經網絡
+關注
關注
42文章
4812瀏覽量
103236 -
機器學習
+關注
關注
66文章
8499瀏覽量
134347
發布評論請先 登錄
評論