機器之心分析師網絡
分析師:立早
編輯: H4O
一直以來,深度網絡在圖像識別,檢測,語言等領域都有強大的能力。研究者們的重點都在如何提升網絡性能上,很少有人能說清楚深度神經網絡為何能夠得到較好的泛化能力,有的研究者習慣從原理上來說明這個問題,有的研究者則會從中間結果來解釋,當然這些觀點都各有千秋。在 NeurIPS 2019 上,有些學者在網絡的可解釋性上發表了自己的研究。
以下就兩篇論文從兩種不同的角度來描述研究者們對於泛化能力的理解和解釋。
論文 1:Intrinsic dimension of data representations in deep neural networks
論文連結:https://arxiv.org/pdf/1905.12784v1.pdf
對於一個深度網絡,網絡通過多層神經層漸進的轉換輸入,這其中的幾何解釋應該是什麼樣的呢?本文的作者通過實驗發現,以固有維度(ID:intrinsic dimensionality)為切入點,可以發現訓練好的網絡相比較未訓練網絡而言,其每層的固有維度數量級均小於每層單元數,而且 ID 的存在可以來衡量網絡的泛化性能。
1 首先,ID是什麼?
ID 是描述數據信息所需要的最小的且不造成重要信息損失的維度。目前的深度神經網絡中,我們普遍的都知道過量的參數導致了模型的過參數化,帶來了冗餘信息,神經網絡壓縮就是由此產生的。那麼,有沒有什麼定量的統計量來顯示網絡的複雜度或者評估網絡呢,本文就是以固有維度為切入點來探索該統計量和模型泛化能力之間的關係。
2 ID 的評估方法
作者用 TwoNN 這個方法來估計 ID,TwoNN 的簡單流程如下圖所示。
圖 1:TwoNN 估計 ID 的流程。
圖 1 左圖表示的是某神經網絡第二層的兩個維度的數據點集,右圖是運用 TwoNN 算法簡要估計 ID 的流程。首先,TwoNN 算法隨機採樣一個數據點,並通過計算距離選取出這個數據點對應的最近鄰(r1)和其次近鄰(r2),計算這兩個鄰居之間的比值。通過概率分布估算出這個比值的分布,最後通過多次採樣計算估算出數據的 ID,例如,在圖 1 中的數據中 ID 約為 1。
當 ID 在 20 以下的時候,TwoNN 算法可以無限的逼近真實的 ID。而 ID 的真實數值較大,且僅有有限的採樣數據的時候,TwoNN 估計出來的 ID 是小於真實值的。因此,在這個情況下,利用 TwoNN 估計出來的 ID 值可以看做一個真實 ID 值的下界。
3 實驗結果和結論
以上是對 ID 的介紹以及評估方法的介紹。利用這個估算方法,本文。但是,總的來說本文的重點部分就是通過對 ID 的研究,回答如下的幾個問題。
在 CNN 網絡中,不同的 layer 之間,ID 是否會變化?ID 和網絡的線性維度是否有區別?ID 和網絡泛化性能之間是否有聯繫?
接下來,我們來一個個的回答如上的三個問題。
問題 1:在 CNN 網絡中,不同的 layers 之間,ID 是否會變化?
首先,作者在 VGG-16 上用 ImageNet 預訓練,並在一個 1440 張的綜合數據集上微調,得到如下圖所示的曲線。
圖 2:ID 在不同的 layer 之間的變化。
從圖 2 中,我們可以明顯的看到,ID 在不同層之間是有個先上升後下降的過程。尤其是在最後一層,ID 達到一個最小的量級。
圖 3:ID 和絕對深度、相對深度的關係。
在圖 2 中,我們已經發現 ID 在層級之間是夠「駝背」的樣式,那麼這個駝峰的出現是和絕對深度還是相對深度有關呢?
圖 3 可以回答這個問題,在圖 3 的右圖中,我們可以發現這個趨勢跟相對深度有關,基本的駝峰出現在 0.2-0.4 的相對深度之間。當然從圖 3 的大量實驗,也更能佐證圖 2 的 ID 和層之間的趨勢。
問題 2:ID 和網絡的線性維度是否有區別?
為了回答第二個問題,作者選用了 PCA 作為線性降維的方法來和 ID 對比。
圖 4:PCA 和 ID 與模型數據降維之間的關係。
在圖 4A 中,PCA 的特徵值譜中出現了一個間隙,這個可以表明數據降維之後並不在一個線性的空間中,而是一個彎曲流形中。
問題 3:ID 和網絡泛化性能之間是否有聯繫?
圖 5:網絡最後一層 ID 和精度之間的關係。
圖 5 是作者在一系列的網絡實驗中,以精度為衡量指標,計算不同網絡最後一層的 ID。我們可以看到這個趨勢大概是一個線性的關係。這就表明,最後一層的 ID 跟網絡的測試精度之間是存在這緊密的聯繫的,那是否也可以換句話說,該層的 ID 可以表明網絡的泛化性能。
4 討論
作者還做了很多的其他輔助的實驗,比如以上的結論在未訓練的網路上不成立,在隨機的標籤 labels 上訓練出來的網絡中也不成立等等。但是,總的來說作者還是集中在是三個問題。
ID 可以用來表明網絡中的信息。其趨勢表現為層級之間的先上升後下降。網絡的泛化性能可以用 ID 來衡量,也就是最後一層的 ID。深度網絡的降維過程將數據降維到一個彎曲流形的空間,而不是線性空間,這也可以在一定程度上表明網絡的泛化性能。
筆者認為,僅僅用 ID 這個統計量來解釋網絡性能當然還是不夠的,但是這並不妨礙通過 ID 來指明之後網絡訓練或者測試的提升方向。比如說,我們是否可以用 ID 的趨勢來判斷一個網絡設計的是夠合理,訓練的是否充分呢,或者又比如說,我們還能夠通過最後一層的 ID 來初步評估網絡的泛化性能呢?
論文 2:This Looks Like That: Deep Learning for Interpretable Image Recognition
論文連結:https://arxiv.org/pdf/1806.10574.pdf
當人遇到圖像判斷的時候,總是會分解圖片並解釋分類的理由,而機器在判斷的時候總是跟人的判斷會有些差距。本文旨在縮小機器分類和人分類之間的差距,提出了一個 ProtoPNet,根據人判斷的機理來分類圖像。本文網絡通過分解圖像,得到不同的原型部分,通過組成這些信息最終得到正確的分類。
1 人怎麼分類?This looks like that
圖 1:怎麼判斷這個鳥的種類?
圖 1 顯示的是一個褐雀鵐,那麼你怎麼判斷出來的呢?通常來說,我們會回答,它的頭部、它的翅膀部分很像一個典型的褐雀鵐。這個時候,你會發現在人類的判斷機制中,我們是著重關注圖像的幾個部分並且跟給定的物種典型的部分來對比。這就是所謂的「這個看上去像那個」。
2 ProtoPNet怎麼學習人?
既然人是通過 this looks like that 來解釋的,那麼機器學習的模型是否可以模仿這個過程來解釋模型推理的依據呢?本文提出的 ProtoPNet 就是從推理的可解釋性角度來處理圖像。該網絡的結構如下圖所示:
圖 2:ProtoPNet 網絡結構。
如圖 2 所示,輸入一張推理圖片,輸出分類的結果。該網絡主要由卷積網絡 f,原型層(prototype layer)以及一個全連接層 h 組成。
卷積網絡 f:在卷積網絡部分,網絡可以是 VGG,ResNet 等經典結構,並且以 ImageNet 的預訓練參數初始化。假設輸入圖像的大小為 224*243,通過卷積網絡輸出的大小為 HWD(e.g H=W=7),令 z=f(x) 表示卷積輸出。這一部分也就是常見的特徵提取作用。
原型層(prototype layer):在 prototype layer 部分,網絡學習了 m 個原型 P,這些原型 P 以卷積層的特徵圖為輸入,經過 m 組的卷積網絡得到不同 patch 的原型激活值,該原型激活圖的大小在本文中為 h=w=1。不同的原型 p 可以表示不同的典型部位,計算 pj 和 z 之間的 L2 距離,並將這個距離轉換為相似度分數。這種由分數表示的激活圖表明了圖像中的典型部分的顯著強度。
全連接層 h:經過前面的提取特徵並聚類到原型得到相似度分數後,m 個相似度分數通過全連接層 h,得到最終的輸出單元,經過 softmax 之後得到預測概率,分類圖片結果。
本文在訓練這個網絡的時候,通過對以下三個步驟迭代的進行優化完成網絡更新。
除了最後一層前面運用 SGD典型特徵的映射過程最後一層的凸優化
3 網絡的可解釋性
在第二部分,我們概述了這個網絡的結構部分並且解釋了每個部分的作用和組成,但是我們並不知道這個網絡為什麼能學習人的解釋機制呢?那麼接下來,我們來看看如何通過這個網絡的前向來描述這個網絡的解釋原理。
圖 3:網絡的解釋過程。
如圖 3 所示,最上面的是一張測試圖片。在網絡的推理過程中,為什麼可以判定為一個紅腹啄木鳥而不是紅頂啄木鳥呢?
圖 3 的左半部分是網絡判斷測試圖片為紅腹啄木鳥的依據。
第一列的三張圖為測試照片的經過網絡圈出來的典型部分,第二列和第三列表示的是訓練圖片中的原型,第四列為激活特徵圖顯示測試圖像中的原型所在的顯著性位置。
在第二列和第三列我們可以看到三個典型的特徵部分,頭部,翅膀以及喙。當網絡通過卷積層 f 提取特徵之後,並通過原型層得到這些顯著特徵之後,網絡通過對這些典型分數進行加權求和(也就是全連接層),最終網絡得到判斷為紅腹啄木鳥的置信度得分 32.736。
同樣,圖 3 的右邊是判斷為紅頂啄木鳥的置信度分數為 16.886。通過選取最大的 softmax 的數值,網絡可以得出這個測試圖像的最終分類。這一個過程也就是網絡在推理過程中,looks like 可以得到很好的解釋。
4 實驗對比
作為一個解釋性的網絡,並不代表網絡本身的推理(識別)能力不強,作者在這個角度上做了如下的對比實驗。
圖 4:ProtoPNet 和其他網絡的性能對比。
網絡主要以沒有解釋功能的網絡為主,也就是識別網絡,比如常見的分類網絡。圖 4 上半部分對比沒有可解釋性功能的網絡例如 VGG16,ResNet34 等等,ProtoPNet 精度下降約 3.5%。但是,通過增加合適的原型數量,ProtoPNet 還是可以提升性能的。
而與其他研究者提出的解釋網絡相比,圖 4 下半部分對比這些網絡的識別性能,比如關注目標層面的 CAM,關注部分注意力的 Part R-CNN,ProtoPNet 利用部分層次注意力和原型之間的結合,能達到一個比較好的結果。
總而言之,本文的解釋性網絡不僅僅在解釋網絡的判別原理,而且根據這個原理能夠達到一個較好的識別精度。在我看來,通過對比 ProtoPNet 和不同網絡性能,驗證了作者論述的,ProtoPNet 不僅僅關注實例層或者僅僅關注部分信息,而是結合了部分層次以及原型 case 之間的信息,才能在解釋和識別之間達到一個很好的平衡。
5 總結
本文的主要目的是探索機器模型在推理過程中的為什麼這個問題,其比較別出心裁的參照了人類的「這個看上去像那個」的回答思路,提出的 ProtoPNet,在可解釋性和分類精度上都有不錯的表現。
這兩篇論文均是研究論文可解釋性原理的,只不過論述的角度有所不同。論文 1 從統計學的角度,分析網絡的固有維度,以此來展示網絡的泛化性能。而論文 2 從可視化的角度來展示了這個網絡的推理的功能。這些不同的角度都試圖分析網絡的可解釋性,並給網絡性能的提升提出不同的提升方向。
分析師簡介:立早,工學碩士,研究方向為模式識別。目前從事人臉識別、檢測和神經網絡壓縮方向的工作。希望能夠一直學習,多多交流,不斷進步。