近年來, 以深度神經(jīng)網(wǎng)絡(luò)(Deep neural networks, DNN)為代表的機器學(xué)習(xí)方法逐漸興起[1]. 由于訓(xùn)練數(shù)據(jù)的增加[2-3]及計算能力的大幅提升, DNN的網(wǎng)絡(luò)結(jié)構(gòu)及與之相適應(yīng)的優(yōu)化算法[4-6]變得更加復(fù)雜, DNN在各項任務(wù)上的性能表現(xiàn)也越來越好, 產(chǎn)生了多種適用于不同類型數(shù)據(jù)處理任務(wù)的經(jīng)典深度網(wǎng)絡(luò)結(jié)構(gòu), 如卷積神經(jīng)網(wǎng)絡(luò)(Convolutional neural network, CNN)和循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent neural network, RNN). 對于圖像數(shù)據(jù)處理與識別領(lǐng)域, CNN是一種十分常用的網(wǎng)絡(luò)結(jié)構(gòu), 在圖像分類、目標(biāo)檢測、語義分割等任務(wù)上取得了非常好的效果, 已經(jīng)成為該領(lǐng)域應(yīng)用最廣泛的基礎(chǔ)模型[7].
如圖1所示, 傳統(tǒng)機器學(xué)習(xí)算法采用人工設(shè)計的特征集, 按照專家經(jīng)驗和領(lǐng)域知識將其組織到機器學(xué)習(xí)算法中. 由于設(shè)計人員本身了解這些被定義特征的具體含義, 因此, 傳統(tǒng)機器學(xué)習(xí)方法一定程度上是可解釋的, 人們大致明白算法對各種特征的依賴以及算法的決策依據(jù). 例如, 線性模型可使用特征對應(yīng)的權(quán)重代表特征重要程度. 相比于傳統(tǒng)機器學(xué)習(xí)算法, 以CNN為代表的深度學(xué)習(xí)算法屬于特征學(xué)習(xí)或表示學(xué)習(xí), 可對輸入數(shù)據(jù)進(jìn)行自動特征提取及分布式表示, 解決了人工特征設(shè)計的難題. 這一優(yōu)勢使其能夠?qū)W習(xí)到更加豐富完備的且含有大量深層語義信息的特征及特征組合, 因此在性能表現(xiàn)上超過多數(shù)傳統(tǒng)機器學(xué)習(xí)算法.
?圖 1 傳統(tǒng)機器學(xué)習(xí)與深度學(xué)習(xí)的學(xué)習(xí)過程對比[8]
Fig. 1 Comparison of the learning process between traditional machine learning and deep learning[8]
然而, CNN這一優(yōu)勢的背后也存在著一定局限性. 一方面, 人們至今無法較好地理解CNN內(nèi)部知識表示及其準(zhǔn)確的語義含義. 即使是模型設(shè)計者也難以回答CNN到底學(xué)習(xí)到了哪些特征、特征的具體組織形式以及不同特征的重要性度量等問題, 導(dǎo)致CNN模型的診斷與優(yōu)化成為經(jīng)驗性、甚至盲目性的反復(fù)試探, 這不僅影響了模型性能, 還可能遺留潛在的漏洞; 另一方面, 基于CNN模型的現(xiàn)實應(yīng)用在日常中已經(jīng)大量部署, 如人臉識別、行人檢測和場景分割等, 但對于一些風(fēng)險承受能力較低的特殊行業(yè), 如醫(yī)療、金融、交通、軍事等領(lǐng)域, 可解釋性和透明性問題成為其拓展和深入的重大阻礙. 這些領(lǐng)域?qū)NN等深度學(xué)習(xí)模型有著強烈的現(xiàn)實需求, 但受限于模型安全性與可解釋性問題, 目前仍無法大規(guī)模使用. 模型在實際中可能犯一些常識性錯誤, 且無法提供錯誤原因, 導(dǎo)致人們難以信任其決策.
因此, 對CNN的理解和解釋逐漸受到人們關(guān)注, 研究者們嘗試從不同角度出發(fā), 解釋CNN的特征編碼和決策機制. 表征可視化作為其中一種解釋方法, 采用基于特征重要性的解釋思路, 尋找輸入變量、特征編碼及輸出結(jié)果之間的相關(guān)性, 并以視覺展示的方式直觀呈現(xiàn), 是一種較為直接的理解CNN的途徑. 本文對該領(lǐng)域的現(xiàn)有研究進(jìn)行了系統(tǒng)性整理和回顧, 對其中涉及的相關(guān)概念及內(nèi)容、典型方法、效果評估、應(yīng)用等方面作了歸納總結(jié), 著重介紹了可視化方法的分類及算法的具體過程. 最后, 分析了該領(lǐng)域仍存在的難點并展望了未來研究趨勢.
相關(guān)概念與研究內(nèi)容
1.1.1
CNN
目前, CNN已成為基于深度學(xué)習(xí)的圖像識別領(lǐng)域應(yīng)用最廣泛、效果最佳的網(wǎng)絡(luò)結(jié)構(gòu). 最早的CNN由LeCun等[9]于1998年提出, 用于手寫體數(shù)字識別. CNN的基本結(jié)構(gòu)中含有輸入層、卷積層、全連接層及輸出層. 其中輸入層、全連接層、輸出層與其他網(wǎng)絡(luò)大致相同, 僅卷積層是CNN特有的結(jié)構(gòu). 經(jīng)典CNN卷積層中含有卷積、激活和池化3種操作: 1)卷積操作使用多個卷積核(濾波器)在輸入張量上平移作內(nèi)積運算, 得到對應(yīng)的特征圖. 同層的不同卷積核用來提取不同模式的特征, 不同層的卷積核則用來提取不同層級的特征. 2)激活操作使用非線性激活函數(shù)處理卷積結(jié)果, 用于提升網(wǎng)絡(luò)的非線性特性, 增強非線性擬合能力, 常用的激活函數(shù)如tanh、sigmoid、rectified linear unit (ReLU)[6]和改進(jìn)版[10-11]等. 3)池化操作一般使用最大值池化和平均值池化, 按照池化窗口處理整個窗口內(nèi)的值, 用于壓縮參數(shù)和降低過擬合.
稀疏連接和權(quán)重共享是CNN相對于前饋神經(jīng)網(wǎng)絡(luò)的主要特點. 基于這些經(jīng)典的CNN結(jié)構(gòu)及其特性, 研究人員通過不斷改進(jìn)和優(yōu)化[12], 逐漸設(shè)計出結(jié)構(gòu)更復(fù)雜且識別性能更優(yōu)異的CNN, 以在Imagenet Large Scale Visual Recognition Competition (ILSVRC)數(shù)據(jù)集[2]圖像分類任務(wù)上的優(yōu)勝CNN模型為例:
2012年, Krizhevsky等[1]提出了AlexNet, 在圖像分類任務(wù)上以巨大優(yōu)勢取得冠軍, 成功吸引了學(xué)術(shù)界的關(guān)注, 成為新階段CNN興起的標(biāo)志.
2013年, Zeiler等[13]提出了ZFNet, 利用反卷積可視化技術(shù)診斷AlexNet的內(nèi)部表征, 然后對其針對性地做了改進(jìn), 使用較小的卷積核和步長, 從而提升了性能.
2014年, 谷歌公司Szegedy等[14]提出了GoogLeNet, 核心是其中的Inception模塊, 使用了不同尺寸的卷積核進(jìn)行多尺度的特征提取和融合, 從而更好地表征圖像. 同年, 牛津大學(xué)的Simonyan等[15]提出了視覺幾何組網(wǎng)絡(luò)(Visual geometry group network, VGGNet), 僅使用2 × 2和3 × 3兩種典型的卷積核, 通過簡單地增加層的深度實現(xiàn)了性能提升.
2015年, 微軟公司He等[16]提出了殘差網(wǎng)絡(luò)(Residual networks, ResNet), 使用殘差連接實現(xiàn)跨層的信息傳播, 緩解了之前由于深度增加引起的梯度消失問題, 并以3.57%的錯誤率首次超越人類水平.
2016年, Huang等[17]提出了DenseNet, 相比于ResNet, 使用了密集連接操作, 強化特征的傳播和復(fù)用.
2017年, Hu等[18]提出了壓縮激勵網(wǎng)絡(luò)(Squeeze-and-excitation networks, SENet), 通過特征圖各通道間的權(quán)值自適應(yīng)再調(diào)整, 實現(xiàn)各個通道之間的特征重標(biāo)定, 提升了網(wǎng)絡(luò)的特征提取能力.
CNN在圖像數(shù)據(jù)處理上有天然的優(yōu)勢, 因而在圖像分類、目標(biāo)檢測、語義分割和場景識別等領(lǐng)域應(yīng)用廣泛, 在其他模態(tài)的數(shù)據(jù)如視頻、語音和文本等領(lǐng)域也有較多應(yīng)用. 圖像分類是CNN最典型的應(yīng)用領(lǐng)域, 許多圖像分類系統(tǒng)使用預(yù)訓(xùn)練的CNN進(jìn)行部署. 預(yù)訓(xùn)練的CNN是指已經(jīng)在某個數(shù)據(jù)集上完成訓(xùn)練的CNN模型. 一般情況下, 預(yù)訓(xùn)練的CNN由研究人員設(shè)計并調(diào)整至最佳狀態(tài), 在實際場景中可以直接使用而無需再訓(xùn)練. 由于預(yù)訓(xùn)練CNN模型在現(xiàn)實中經(jīng)常使用, 因此, 針對預(yù)訓(xùn)練CNN模型的理解和解釋是可解釋性研究中的一項重要內(nèi)容.
1.1.2
可解釋性
可解釋性是近年來深度學(xué)習(xí)領(lǐng)域的研究熱點. 可解釋性與可理解性的含義并不相同[19-20], 文獻(xiàn)[19]從CNN特征表示形式的角度出發(fā), 對CNN的“可解釋性”和“可理解性”做了區(qū)分: 可解釋性表示從抽象概念(向量空間、非結(jié)構(gòu)化特征空間)到人類可理解的領(lǐng)域(圖像和文字等)的映射, 而可理解性表示可解釋域內(nèi)促使模型產(chǎn)生特定決策的一組特征. 從這種區(qū)分看, “可解釋性”研究重點在于將參數(shù)化形式表示的特征映射到人類可直觀感受的表示形式, 而“可理解性”側(cè)重在人類可理解的領(lǐng)域中尋找與模型某個決策相關(guān)的具體特征. 也就是說, “解釋”是一種從不可解釋域到可解釋域的映射動作, “理解”則是一種在可解釋域內(nèi)尋找感興趣證據(jù)的過程. 麻省理工的研究人員認(rèn)為[20], 通過“解釋”能夠?qū)崿F(xiàn)對深度網(wǎng)絡(luò)的“理解”, 可解釋性的研究目標(biāo)是以某種人類可理解的方式描述一個系統(tǒng)的內(nèi)部機制. 同時, 將可解釋性的研究內(nèi)容分為DNN處理過程的理解、DNN內(nèi)部表征的理解和自解釋的DNN三個方面.
深度學(xué)習(xí)可解釋性的研究內(nèi)容非常豐富, 本文從可解釋性研究的模型對象出發(fā), 根據(jù)待解釋的目標(biāo)模型是否已經(jīng)完成訓(xùn)練, 將深度學(xué)習(xí)可解釋性研究劃分為兩部分: 事后解釋和自解釋模型, 如圖2所示[21].
?圖 2 可解釋性深度學(xué)習(xí)的研究內(nèi)容劃分
Fig. 2 The division of the research content of the interpretable deep learning
事后解釋是對預(yù)訓(xùn)練模型的解釋. 現(xiàn)實中, 由于模型已經(jīng)完成訓(xùn)練和部署, 而重新訓(xùn)練模型耗費的時間和資源成本過大, 因此不具備重新訓(xùn)練的可能性. 針對這種模型的解釋, 需要在不修改模型自身結(jié)構(gòu)及參數(shù)的情況下完成, 結(jié)合預(yù)訓(xùn)練模型的輸入、中間層參數(shù)和輸出等信息, 實現(xiàn)對模型內(nèi)部表征及決策結(jié)果的解釋.
對于預(yù)訓(xùn)練模型的事后解釋方法, 現(xiàn)有研究主要分為以下3類:
表征可視化. 表征可視化是一種基于特征重要性的解釋方法, 主要研究模型內(nèi)部的特征表示及這些特征與模型輸入、輸出之間的關(guān)系. 梯度歸因方法[22-23]是最具代表性的表征可視化方法, 使用輸入空間中像素自身的梯度 (或絕對值、平方等)來衡量該像素與預(yù)測結(jié)果的關(guān)聯(lián)程度. 表征可視化與模型結(jié)構(gòu)可視化不同, 前者重在研究模型內(nèi)部特征(以參數(shù)的形式)的語義理解, 以及輸入、特征編碼及輸出之間的因果關(guān)系, 后者研究模型結(jié)構(gòu)、數(shù)據(jù)流向及形狀的變化.
基于樣例的解釋. 基于樣例的解釋是一種基于樣本重要性的解釋方法, 采用訓(xùn)練數(shù)據(jù)中的樣本原型作為當(dāng)前決策結(jié)果的解釋[24-25]. 這種方法模擬人對事物的解釋過程[26], 從數(shù)據(jù)集中已有樣本(已經(jīng)學(xué)習(xí)過)中找到相似樣本, 作為對新的樣本預(yù)測結(jié)果的比較.
自然語言解釋. 自然語言解釋以人類可理解的自然語言形式, 對CNN識別結(jié)果進(jìn)行解釋[27]. 該過程中, 需要將CNN的圖像特征編碼映射為RNN的自然語言特征編碼, 通過跨模態(tài)的表征融合來生成用于解釋CNN輸入與輸出的自然語言. 該過程與圖像描述[28]和視覺問答[29]相似.
自解釋模型不同于事后解釋, 其在模型設(shè)計時即考慮了內(nèi)在可解釋性, 在此基礎(chǔ)上進(jìn)行訓(xùn)練和優(yōu)化, 形成結(jié)構(gòu)上或邏輯上具有內(nèi)生可解釋性的模型. 自解釋模型能夠在應(yīng)用的同時由其自身為用戶提供對輸出結(jié)果的解釋.
對于建立具有自身可解釋性的模型, 現(xiàn)有研究主要分為以下2類:
分離式表征: 在模型結(jié)構(gòu)或優(yōu)化過程中添加一些約束, 以降低模型復(fù)雜性, 同時保證模型的性能, 使模型內(nèi)部的表征分離可理解. 例如, Zhang等[30]對濾波器的學(xué)習(xí)進(jìn)行約束, 訓(xùn)練出可解釋的濾波器, 使每個濾波器有針對性地關(guān)注特定目標(biāo)部位.
集成方法: 結(jié)合傳統(tǒng)可解釋性較好的機器學(xué)習(xí)方法, 構(gòu)建在深度神經(jīng)網(wǎng)絡(luò)的識別性能和傳統(tǒng)方法的可解釋性之間折衷的新模型. 例如, 將神經(jīng)網(wǎng)絡(luò)集成到?jīng)Q策樹算法中, 使用神經(jīng)網(wǎng)絡(luò)提取的特征作為輸入, 這樣訓(xùn)練得到的模型同時具有兩者的優(yōu)點, 可實現(xiàn)決策路徑的清晰可理解[31].
1.1.3
表征可視化
表征可視化是一種事后解釋方法, 通常以視覺的方式對CNN內(nèi)部表征和輸出決策進(jìn)行解釋. 表征可視化嘗試解釋CNN內(nèi)部特征的表示形式、輸入–內(nèi)部特征–輸出三者之間的關(guān)系、促使網(wǎng)絡(luò)做出當(dāng)前預(yù)測的輸入等問題。與其他方法相比, 表征可視化方法具有以下優(yōu)點: 1)簡單直觀, 從視覺上為用戶提供觀察. 2)便于深度分析網(wǎng)絡(luò)表征, 診斷訓(xùn)練效果, 進(jìn)而改進(jìn)網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計. 3)無需修改模型結(jié)構(gòu), 多數(shù)表征可視化方法可在模型完成訓(xùn)練之后進(jìn)行特征分析與決策結(jié)果解釋, 無需修改或重新訓(xùn)練模型. 表征可視化方法生成的解釋結(jié)果以熱力圖的方式呈現(xiàn). 熱力圖是一個由不同顏色強度構(gòu)成的圖像, 像素顏色的強度與其重要性相對應(yīng). 從數(shù)學(xué)角度看, 熱力圖實際上是一組與輸入變量對應(yīng)的重要性值 (或相關(guān)性值)的集合, 集合中的每個元素值表示其對應(yīng)的輸入變量與輸出結(jié)果之間的相關(guān)性.
1) CNN表征可視化
表征可視化過程與CNN預(yù)測過程相互依賴, 如圖3所示. 圖3上方為CNN預(yù)測過程, 下方為可視化方法的解釋過程, 箭頭表示這兩個過程中各階段之間的相互關(guān)系.
?圖 3 CNN表征可視化的研究思路
Fig. 3 The research idea of CNN representation visualization
CNN預(yù)測過程: 實現(xiàn)從輸入變量到輸出預(yù)測的映射. 其中, 輸入變量對應(yīng)的輸入空間被認(rèn)為是人類可理解的空間(例如圖像和語言文本), 而特征編碼對應(yīng)的特征空間經(jīng)過了CNN的自動特征提取與特征組合. 可視化解釋CNN的目的就是將中間層特征編碼和輸出層預(yù)測結(jié)果反向映射到輸入空間, 實現(xiàn)不可解釋域向可解釋域的映射.
可視化方法的解釋過程涉及3種: 1)解釋內(nèi)部特征: 研究黑盒中間編碼了哪些知識, 以怎樣的形式組織這些知識的. 2)決策與特征關(guān)聯(lián): 研究中間層的知識與輸出預(yù)測之間的關(guān)系. 3)解釋輸入–輸出關(guān)系: 研究輸入變量、中間層特征編碼和輸出預(yù)測三者之間的關(guān)系.
2) CNN、RNN和生成對抗網(wǎng)絡(luò)表征可視化的比較
CNN在圖像數(shù)據(jù)處理領(lǐng)域應(yīng)用較為廣泛, 層次化的表征方式使其適用于圖像數(shù)據(jù)逐層學(xué)習(xí)的特性, 與人類非常相似. 因此, CNN表征可視化主要研究各個隱含層所編碼的特征、這些特征的語義含義及與輸入輸出之間的關(guān)系. 對于另外兩種常見的DNN: 循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)與生成對抗網(wǎng)絡(luò)(Generative adversarial network, GAN), 表征可視化研究的關(guān)注點略有不同.
RNN是一種隨時間步迭代的深度網(wǎng)絡(luò), 有長短時記憶網(wǎng)絡(luò) 、門控循環(huán)單元等擴展版結(jié)構(gòu), 擅長處理時序型數(shù)據(jù), 在自然語言處理領(lǐng)域應(yīng)用廣泛. RNN的主要特點在于其迭代式的處理數(shù)據(jù), 這些迭代信息存儲于網(wǎng)絡(luò)結(jié)構(gòu)中的隱狀態(tài)中, 每個時間步的隱狀態(tài)含義不同, RNN的長距離依賴關(guān)系學(xué)習(xí)能力也在于這些隱狀態(tài)的學(xué)習(xí)效果. 因此, RNN可視化研究多專注于對這些隱藏狀態(tài)的理解與解釋. 例如, 文獻(xiàn)[32]可視化RNN的隱狀態(tài)對于輸入的預(yù)期響應(yīng), 用于觀察RNN內(nèi)部的正面與負(fù)面輸入時的激活分布. 文獻(xiàn)[33]開發(fā)了一個長短時記憶網(wǎng)絡(luò)可視化工具, 用于了解這些隱藏狀態(tài)的動力學(xué)過程. 文獻(xiàn)[34]通過可視化的方式解釋了長短時記憶網(wǎng)絡(luò)在長距離依賴關(guān)系學(xué)習(xí)上的優(yōu)勢. 此外, 一些圖像領(lǐng)域常用的表征可視化方法如層級相關(guān)性反饋(Layer-wise relevance propagation, LRP)方法, 也被用于解釋RNN的表征及量化輸入–輸出之間的關(guān)系[35-36].
GAN是一種生成式神經(jīng)網(wǎng)絡(luò), 由生成器和判別器兩部分構(gòu)成, 二者之間通過對抗學(xué)習(xí)的方式互相提升性能[37]. 從結(jié)構(gòu)上看, GAN的生成器一般使用反卷積結(jié)構(gòu), 判別器可視為一個CNN結(jié)構(gòu). 由于GAN主要用于學(xué)習(xí)數(shù)據(jù)的潛在分布, 然后用于生成式任務(wù), 因此, GAN可視化的關(guān)注點主要在于生成器部分. 更具體地, 在于理解和解釋生成器隱變量的作用. 典型的如InfoGAN[38], 對輸入向量進(jìn)行分解, 使其轉(zhuǎn)為可解釋的隱變量及不可壓縮的噪聲, 進(jìn)而約束隱變量與輸出之間的關(guān)系, 從而學(xué)習(xí)可解釋的特征表達(dá). 文獻(xiàn)[39]和文獻(xiàn)[40]通過操縱生成器的隱變量來觀察生成結(jié)果的變化情況, 進(jìn)而理解GAN的過程. 文獻(xiàn)[41]專門研究了GAN隱空間的語義解糾纏問題, 提出了一種效果較好的人臉編輯方法, 可通過編輯GAN的隱空間來調(diào)整生成人臉的屬性, 如姿勢、性別和年齡等.
審核編輯:湯梓紅
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4814瀏覽量
103724 -
機器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8505瀏覽量
134677
發(fā)布評論請先 登錄
評論