卷積神經網絡模型可解釋性
缺乏可解釋性仍然是在許多應用中采用深層模型的一個關鍵障礙。在這項工作中,明確地調整了深層模型,這樣人類用戶可以在很短的時間內完成他們預測背后的過程。具體地說,訓練了深度時間序列模型,使得類概率預測具有較高的精度,同時被節點較少的決策樹緊密地建模。使用直觀的玩具例子以及治療白血症和HIV的醫療任務,這種新的樹正則化產生的模型比簡單的L1或L2懲罰更容易模擬,而不犧牲預測能力。
使用普通的反向傳播得到的圖像噪聲較多,基本看不出模型的學到了什么東西。使用反卷積可以大概看清楚貓和狗的輪廓,但是有大量噪聲在物體以外的位置上。導向反向傳播基本上沒有噪聲,特征很明顯的集中貓和狗的身體部位上。
雖然借助反卷積和導向反向傳播“看到”了CNN模型神秘的內部,但是卻並不能拿來解釋分類的結果,因為它們對類別並不敏感,直接把所有能提取的特征都展示出來了。在剛才的圖片中,模型給出的分類結果是貓,但是通過反卷積和導向反向傳播展示出來的結果卻同時包括了狗的輪廓。換句話說,並不知道模型到底是通過哪塊區域判斷出當前圖片是一只貓的。要解決這個問題,必須考慮其他辦法。
對時間序列模型的樹正則化方法進行評估。將重點放在GRU-RNN模型上,以后將對新的混合GRU-HMM模型進行一些實驗。與MLP一樣,每個正則化技術(tree,L2,L1)都可以應用於GRU的輸出節點上的一系列強度參數λ。重要的是,算法可以計算給定參數的任何固定深度模型的平均決策樹路徑長度,因此可以用於測量任何正則化(包括L1或L2)下的決策邊界復雜性。這意味着,在訓練任何模型時,都可以跟蹤預測性能(按ROC曲線(AUC)下的面積測量;較高的值意味着更好的預測),以及解釋每個模型所需的決策樹的復雜性(按的平均路徑長度度量;較低的值意味着更多的可解釋模型)。展示沒有任何相關深度模型的基線獨立決策樹分類的結果,掃描控制分支大小的一系列參數,以探索該基線如何權衡路徑長度和預測質量。
CAM
大家在電視上應該都看過熱成像儀生成的圖像
圖像中動物或人因為散發出熱量,所以能夠清楚的被看到。接下來要介紹的CAM(Class Activation Mapping)產生的CAM圖與之類似,當需要模型解釋其分類的原因時,它以熱力圖(Saliency Map,不知道怎么翻譯最適合,叫熱力圖比較直觀一點)的形式展示它的決策依據,如同在黑夜中告訴哪有發熱的物體。
對一個深層的卷積神經網絡而言,通過多次卷積和池化以后,它的最后一層卷積層包含了最豐富的空間和語義信息,再往下就是全連接層和softmax層了,其中所包含的信息都是人類難以理解的,很難以可視化的方式展示出來。所以說,要讓卷積神經網絡的對其分類結果給出一個合理解釋,必須要充分利用好最后一個卷積層。
CAM利用GAP(Global Average Pooling)替換掉了全連接層。可以把GAP視為一個特殊的average pool層,只不過其pool size和整個特征圖一樣大,其實說白了就是求每張特征圖所有像素的均值.
GAP的優點在NIN的論文中說的很明確了:由於沒有了全連接層,輸入就不用固定大小了,因此可支持任意大小的輸入;此外,引入GAP更充分的利用了空間信息,且沒有了全連接層的各種參數,魯棒性強,也不容易產生過擬合;
還有很重要的一點是,在最后的 mlpconv層(也就是最后一層卷積層)強制生成了和目標類別數量一致的特征圖,經過GAP以后再通過softmax層得到結果,這樣做就給每個特征圖賦予了很明確的意義,也就是categories confidence maps。
如果當時不理解這個categories confidence maps是個什么東西,結合CAM應該就能很快理解。
重點看下經過GAP之后與輸出層的連接關系(暫不考慮softmax層),實質上也是就是個全連接層,只不過沒有了偏置項,如圖所示:
對每一個類別C,每個特征圖k的均值都有一個對應的w,記為wckwkc 。
CAM的基本結構就是這樣了,下面就是和普通的CNN模型一樣訓練就可以了。訓練完成后才是重頭戲:如何得到一個用於解釋分類結果的熱力圖呢?其實非常簡單,比如說要解釋為什么分類的結果是羊駝,把羊駝這個類別對應的所有wckwkc 取出來,求出它們與自己對應的特征圖的加權和即可。由於這個結果的大小和特征圖是一致的,需要對它進行上采樣,疊加到原圖上去,如下所示。
CAM以熱力圖的形式告訴了,模型是重點通過哪些像素確定這個圖片是羊駝了。
Grad-CAM方法
前面看到CAM的解釋效果已經很不錯了,但是它有一個致使傷,就是它要求修改原模型的結構,導致需要重新訓練該模型,這大大限制了它的使用場景。如果模型已經上線了,或着訓練的成本非常高,幾乎是不可能為了它重新訓練的。於是乎,Grad-CAM橫空出世,解決了這個問題。
Grad-CAM的基本思路和CAM是一致的,也是通過得到每對特征圖對應的權重,最后求一個加權和。
整體結構如下圖所示
注意這里和CAM的另一個區別是,Grad-CAM對最終的加權和加了一個ReLU,加這么一層ReLU的原因在於只關心對類別c有正影響的那些像素點,如果不加ReLU層,最終可能會帶入一些屬於其它類別的像素,從而影響解釋的效果。使用Grad-CAM對分類結果進行解釋的效果如下圖所示:
除了直接生成熱力圖對分類結果進行解釋,Grad-CAM還可以與其他經典的模型解釋方法如導向反向傳播相結合,得到更細致的解釋。
這樣就很好的解決了反卷積和導向反向傳播對類別不敏感的問題。當然,Grad-CAM的神奇之處還不僅僅局限在對圖片分類的解釋上,任何與圖像相關的深度學習任務,只要用到了CNN,就可以用Grad-CAM進行解釋,如圖像描述(Image Captioning),視覺問答(Visual Question Answering)等,所需要做的只不過是把yc換為對應模型中的那個值即可。
限於篇幅,本文就不展開了,更多細節,強烈建議大家去讀讀論文,包括Grad-CAM與CAM權重等價的證明也在論文中。如果只是想在自己的模型中使用Grad-CAM,可以參考這個鏈接,熟悉tensorflow的話實現起來真的非常簡單,一看就明白。
LIME
前面共同的局限性:當模型對來說完全為一個黑盒時就無能為力了。針對這個問題,這里介紹另一套辦法,即使對模型一無所知也能夠對它的行為作出解釋。
LIME是KDD 2016上一篇非常漂亮的論文,思路簡潔明了,適用性廣,理論上可以解釋任何分類器給出的結果。其核心思想是:對一個復雜的分類模型(黑盒),在局部擬合出一個簡單的可解釋模型,例如線性模型、決策樹等等。這樣說比較籠統,從論文中的一張示例圖來解釋:
如圖所示,紅色和藍色區域表示一個復雜的分類模型(黑盒),圖中加粗的紅色十字表示需要解釋的樣本,很難從全局用一個可解釋的模型(例如線性模型)去逼近擬合它。
但是,當把關注點從全局放到局部時,可以看到在某些局部是可以用線性模型去擬合的。具體來說,從加粗的紅色十字樣本周圍采樣,所謂采樣就是對原始樣本的特征做一些擾動,將采樣出的樣本用分類模型分類並得到結果(紅十字和藍色點),同時根據采樣樣本與加粗紅十字的距離賦予權重(權重以標志的大小表示)。虛線表示通過這些采樣樣本學到的局部可解釋模型,在這個例子中就是一個簡單的線性分類器。在此基礎上,就可以依據這個局部的可解釋模型對這個分類結果進行解釋了。
一個看似復雜的模型通過巧妙的轉換,就能夠從局部上得到一個讓人類理解的解釋模型,光這樣說還是顯得有些空洞,具體來看看LIME在圖像識別上的應用。希望LIME最好能生成和Grad-CAM一樣的熱力圖解釋。但是由於LIME不介入模型的內部,需要不斷的擾動樣本特征,這里所謂的樣本特征就是指圖片中一個一個的像素了。存在一個問題,LIME采樣的特征空間太大的話,效率會非常低,而一張普通圖片的像素少說也有上萬個。若直接把每個像素視為一個特征,采樣的空間過於龐大,嚴重影響效率;如果少采樣一些,最終效果又會比較差。
所以針對圖像任務使用LIME時還需要一些特別的技巧,也就是考慮圖像的空間相關和連續的特性。不考慮一些極小特例的情況下,圖片中的物體一般都是由一個或幾個連續的像素塊構成,所謂像素塊是指具有相似紋理、顏色、亮度等特征的相鄰像素構成的有一定視覺意義的不規則像素塊,稱之為超像素。相應的,將圖片分割成一個個超像素的算法稱為超像素分割算法,比較典型的有SLIC超像素分割算法還有quickshit等,這些算法在scikit-image庫中都已經實現好了,quickshit分割后如圖所示:
從特征的角度考慮,實際上就不再以單個像素為特征,而是以超像素為特征,整個圖片的特征空間就小了很多,采樣的過程也變的簡單了許多。更具體的說,圖像上的采樣過程就是隨機保留一部分超像素,隱藏另一部分超像素,如下所示:
從圖中可以很直觀的看出這么做的意義:找出對分類結果影響最大的幾個超像素,也就是說模型僅通過這幾個像素塊就已經能夠自信的做出預測。這里還涉及到一個特征選擇的問題,畢竟不可能窮舉特征空間所有可能的樣本,所以需要在有限個樣本中找出那些關鍵的超像素塊。雖然這部分沒有在論文中過多提及,但在LIME的代碼實現中是一個重要部分,實現了前向搜索(forward selection)、Lasso和嶺回歸(ridge regression)等特征選擇方式,默認當特征數小於等於6時采用前向搜索,其他情況采用嶺回歸。
整體流程如圖:
和Grad-CAM一樣,LIME同樣可以對其他可能的分類結果進行解釋。
LIME除了能夠對圖像的分類結果進行解釋外,還可以應用到自然語言處理的相關任務中,如主題分類、詞性標注等。因為LIME本身的出發點就是模型無關的,具有廣泛的適用性。
雖然LIME方法雖然有着很強的通用性,效果也挺好,但是在速度上卻遠遠不如Grad-CAM那些方法來的快。當然這也是可以理解的,畢竟LIME在采樣完成后,每張采樣出來的圖片都要通過原模型預測一次結果。
比較GRUs與各種正則化的實驗的主要結論概述如下。
樹正則化模型比其他形式的正則化有更少的節點。通過任務,發現在小決策樹(低平均路徑長度)的目標區域中,提出的樹正則化實現了更高的預測質量(更高的AUCs)。在信號和噪聲HMM任務中,當樹的平均路徑長度為10時,樹正則化(圖3(d)中的綠線)實現了接近0.9的AUC值。具有L1或L2正則化的類似模型僅使用復雜度幾乎為2倍的樹(路徑長度超過25)達到該AUC。在任務(圖4)中,看到在路徑長度為2-10時AUC增加0.05-0.1。在TIMIT任務(圖5a)中,看到路徑長度為20-30時的AUC增益為0.05-0.1。在圖5b中的HIV CD4血細胞計數任務中,看到路徑長度為10-15的AUC在0.03和0.15之間的差異。圖5d中的HIV粘附任務在19到25的路徑長度范圍內的AUC增益在0.03到0.05之間,而在較小的路徑上,所有方法都非常差,這表明問題的難度。總之,這些AUC增益在確定如何實施后續的HIV治療中特別有用。對於獨立決策樹(橙色線)、L1正則化深度模型(紅色線)或L2正則化深度模型(藍色線),樹正則化通常在短路徑長度上實現高auc的最佳點。在非自舉實驗中,還測試了L1和L2懲罰的線性組合彈性網正則化(Zou和haste2005)。發現彈性網遵循與L1和L2相同的趨勢線,沒有明顯的差異。在需要人的可模擬性的領域中,在小復雜度的情況下,預測精度的提高可能意味着提供任務價值的模型與不可用的模型之間的差異,這可能是因為性能太差或預測不可預測。
結論
介紹了一種新的層次樹正則化技術,它鼓勵任何可微模型的復雜決策邊界都能很好地用人工模擬函數來逼近,從而使領域專家能夠快速理解和近似計算更復雜的模型在做什么。總的來說,培訓程序是穩健和有效的;未來的工作可以繼續探索和提高學習模型的穩定性,並確定如何將方法應用於輸入本身不可解釋的情況(例如圖像中的像素)。在三個復雜的現實世界領域(HIV治療、膿毒症治療和人類語音處理)中,樹正則化模型在更簡單、近似人類模擬模型的情況下提供了預測精度的提高。未來的工作可以將樹正則化應用於局部的、具體的損失近似(Ribeiro、Singh和Guestrin 2016)或表示學習任務(鼓勵簡單邊界的嵌入)。更廣泛地說,一般訓練程序可以將樹正則化或其他程序正則化應用於廣泛的一類流行模型,幫助超越稀疏性,走向人類可以輕松模擬並因此信任的模型。