python深度神经网络量化_「深度神经网络」(deep neural network)具体是怎样工作的?...
本文將從深度神經網絡本質的視角解釋其黑盒特性。這篇解讀來源于CVPR2017一篇Oral的文章,作者希望通過尋找到網絡中間層與一些語義概念的對應關系,從而實現對于CNN網絡潛在的表達能力的定量化分析,歸納發現深度神經網絡的本質,從而進一步解釋其黑盒特性。
作者首先建立了一個完善的測試數據集,叫做Broden(Broadly and Densely Labeled Dataset),每張圖片都在場景、物體、材質、紋理、顏色等層面有pixel-wise的標定。接下來,將該數據集中的每一張圖喂給需要分析的網絡,拿到每個feature map 上的響應結果,進一步分析該層feature map對應的語義關系,歸納結果。整體流程如下圖a所示。
a. 整體流程
b. Broden圖片樣例
【Unit與Concept的關系】
作者希望將每個卷積核單元(unit)與一些語義上的概念(concept)對應起來,從而使用這些對應關系以及不同concept對應的unit的分布情況來表征該網絡的表達能力。
通過如下公式,作者首先定義某一個單元的與語義上的概念的相關程度:
也即,通過計算該層feature map二值化激活區域與不同語義Ground Truth結果的交并比來確定該層所應該屬于的語義結果。其中,x代表輸入圖像,c代表concept(概念),k代表某個單元, Sk(x) 是該單元特征圖像feature map A(x)縮放回輸入大小后的結果,Mk(x) ≡ Sk(x) ≥ Tk,Mk(x)為大于某個閾值的激活區域。
AlexNet Conv5 Concept 分布
本文設定對于IoU(k,c) > 0.04,則該單元屬于某一個語義概念。如果某個層對應多個語義概念,則取IoU最大的;只有唯一一個語義概念對應的層被稱之為特定概念單元(unique concept unit),而這些特定概念層的數量的大小與分布情況,則定量的表示了該網絡的可解釋性(Interpretability)。
【結果分析】
為了探究網絡的可解釋性(Interpretability)的是否是與units的排列分布有關,作者對于某一層的所有unit進行random linear combination(下圖Q),也即打亂該排布方式,而后將打亂的次序歸位(下圖Q^(-1)),觀察concept的變化情況得到結果。具體如下圖所示:
其中,rotation的大小代表了random Q的程度大小,而打亂這些units的排布并不會對于網絡的最終輸出產生影響,同時也不會改變該網絡的表達能力(discriminative power)。
可以從結果中發現,隨著rotation的逐漸變大,unique concept unit的數量開始急劇減少,因此CNN網絡的可解釋性是受到unit的排序的影響的。(寫者注,這個結論強依賴于公式(1)的定義,是否是恰當的對于可解釋性的描述有待討論)
通過對于AlexNet中conv1~conv5層中各單元響應情況的分析,我們可以歸納出: 淺層的單元更傾向于響應簡單的紋理、顏色特征,而高層的單元則對于更具體的物體有響應,例如人臉、花朵等等。
在網絡結構實驗中,作者將常見的網絡結構在不同的數據集上進行訓練,從中我們可以發現ResNet152的表達能力最強,而不同的訓練集對于同一網絡的表達能力也有影響,Places 365更多是場景分類,而且圖片數量較ImageNet更多,因此網絡會有更多的concept響應單元。
訓練過程的探究實驗中,我們可以發現,網絡在訓練初期更容易學習到物體的底層的特征,而到后期,逐漸學習到更為高階的一些物體特征;而在Fine-tune的實驗中,作者也發現,隨著finetune的進行,不少的層的concept對應關系也會因為finetune數據集不同而發生對應數據集的遷移轉變。
【QA問答】
在2017年CVPR的Poster中,我們有幸遇到了本文的第二作者周博磊童鞋,并且就本文中的一些問題與他進行了深入地交流,Poster可以從以下地址獲取:http://netdissect.csail.mit.edu/poster.pdf
問答的記錄如下:
如何理解文中提到的rotation實驗
A:rotation指的是對于某個層中的units的組合進行打亂,然后再將打亂的關系還原,從本質上來說,這樣一種打亂不會導致最后的結果發生改變,然而當隨機打亂的程度加大(rotation變大)則會發生sematic的concepts急劇下降(AlexNet conv5 從72下降為18),因此,unit之間的位置排序是有關系的,或者說sematic不在feature space, 而是在unit維度的,也即單個神經元是有意義的,不是像以前說的整個conv是有語義的。
同一個網絡,做不同的任務,那么網絡的interpretability是否有不同
A:首先從論文的試驗中可以看到不同的數據集會有bias,因此其中的concept就會有不同,例如ImageNet中非常多種類的Dogs,那么concept會有多數偏向于dogs類;在同樣的數據集上訓練,從理論上來說,如果dominant保持一樣,則大部分應該是一致的。
如何保證結果的正確性?
A:對于超出測試集的類別,本文的方法確實不能夠進行量化分析的,但目前來說這樣一個數據集是能找到的最大的了,我們這邊也會通過一些方式去擴充這樣一個數據集。
如何確認哪個層更重要,是否有考慮過weights,因為weights同樣會影響網絡的后續輸出?
A:可以通過與concept的IOU的大小來確定層的重要性,IOU越大的話這個層作為某個concept的概率也越大,那么這個層更加重要;對于weights方面,作者表示目前沒有考慮。
如何比較不同網絡之間的優劣
A: 根據interpretability可以去推測某個網絡的能力大小,本文認為,interpretability越大的話網絡的表達能力越強,性能也越強
成就下一個偉大 | 自動駕駛公司Momenta校園招聘正式啟動?mp.weixin.qq.com
------------------------------------------------ 知乎機構號:Momenta,打造自動駕駛大腦。 基于深度學習的環境感知、高精度地圖、駕駛決策技術,讓無人駕駛成為可能。Momenta?www.zhihu.com
知乎專欄:Paper Reading,集聚自動駕駛知名大咖的前沿知識分享平臺,歡迎申請加入或直接投稿。Paper Reading?zhuanlan.zhihu.com
總結
以上是生活随笔為你收集整理的python深度神经网络量化_「深度神经网络」(deep neural network)具体是怎样工作的?...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: centos 释放swap_centos
- 下一篇: IntelliJ IDEA竟然出了可以在