1. 程式人生 > >DeepEyes: 用於深度神經網絡設計的遞進式可視分析系統 (DeepEyes: Progressive Visual Analytics for Designing Deep Neural Networks)

DeepEyes: 用於深度神經網絡設計的遞進式可視分析系統 (DeepEyes: Progressive Visual Analytics for Designing Deep Neural Networks)

失誤 min 使用 包括 系統 所有 訓練 如果 blog

深度神經網絡,在模式識別問題上,取得非常不錯的效果。但設計一個性能好的神經網絡,需要反復嘗試,是個非常耗時的過程。這個工作[1]實現了用於深度神經網絡設計的可視分析系統,DeepEyes。該系統可以在DNNs訓練過程中,提取數據,從網絡整體效果,神經層和神經元角度,分析神經網絡運行狀態,進而協助用戶更新DNNs。

DeepEyes系統主要關註以下5種任務:

  1. 識別穩定層。在DNNs訓練過程中,用戶可以選擇穩定的神經層,進行細節分析。
  2. 識別退化的神經元。當某個神經元對所有樣本的反應都一樣時,認為該神經元不能提供額外的信息,已經退化了,可以剔除。
  3. 識別未檢測到的特征。如果某些特征未被檢測到,表明當前網絡需要更多的神經元和神經層。
  4. 識別過大的神經層。當某個神經層內存在許多退化的神經元,表明這個神經層內的神經元數目太多,可以減少。
  5. 識別神經網絡中的神經層數目是否合適。

基於這些任務,他們設計實現了可視分析系統DeepEyes (圖1)。

技術分享

圖1 DeepEyes系統架構

DeepEyes系統的輸入數據是,感知區域的實例(instances of receptive fields)以及神經元對其的激勵(activation)。感知區域的實例通過采樣獲得,采樣率為50%。系統主要包括5個視圖。

訓練視圖(Training Overview), 采用折線圖形式實時展示DNNs訓練過程中的失誤度和準確度(loss and accuracy)。該視圖結合困惑度直方圖(perplexity histogram),可以幫助用戶識別某個神經層是否處於穩定狀態。

困惑度直方圖,用於分析某個神經層的穩定程度。困惑度,常用來度量概率分布或概率模型的預測結果與樣本的契合程度。困惑度越低,契合度越好。困惑度直方圖的計算流程如圖2所示:

技術分享

圖2 困惑度直方圖的構建流程。(a)采樣獲得的感知區域實例;(b)針對每個感知區域實例,該層神經元的激勵,顏色映射了激勵值的大小;(c)將該層一系列神經元的激勵轉化為概率分布;(d)計算該神經層對每個實例響應的困惑度;(e)將連續的困惑度離散化,構建直方圖。

在系統中,困惑度直方圖如圖3所示,紅色的條柱表示困惑度處於該區間的實例在減少;綠色表示其數量在增加;高度與具體數值成正相關。

技術分享

圖3 困惑度直方圖分析樣例。上圖描述某個神經網絡第一個卷積層在不同叠代次數下的穩定狀況;下圖描述該神經網絡第二個卷積層在不同叠代次數下的穩定狀況。

當某個神經層處於穩定狀態時,系統支持用戶進行更為細節的探索。如圖1所示,細節探索主要包括三個視圖。

激勵熱力圖(activation heatmap)(圖4,5),幫助用戶發現退化的神經元。在最大激勵值熱力圖中(圖4),如果矩形塊的顏色偏深綠色,表示該神經元的最大激勵值很小。說明該神經元已經退化,甚至死去(dead filters),在特征識別中,不能提供格外的信息,可以剔除。

技術分享

圖4 最大激勵值的熱力圖。每個矩形塊表示一個神經元,顏色與該神經元在一系列輸入實例中,最大的激勵值相對應。

頻率熱力圖中(圖5),如果矩形塊的顏色偏深藍色,表示該神經元幾乎在所有的輸入實例上,都是活躍的。說明該神經元在特征識別中,不能提供額外的信息,可以剔除。

技術分享

圖5 頻率熱力圖。每個矩形塊表示一個神經元,顏色與該神經元成功激勵實例的概率相關。

輸入圖(input map)(圖6),用神經元對實例的激勵,描述每個實例;采用降維的方法,在二維平面上,分析描述實例的激勵向量之間的關系。在圖6中,如果兩個節點很相近,說明這兩個實例的激勵向量很相似的,進一步可以推測,在該神經層,神經元認為這兩個實例是相似的。

技術分享

圖6, 輸入圖。每個節點表示感知區域的實例,顏色表示該實例的標簽。

神經元視圖(filter map)(圖7),展示神經元在激勵實例上的相似程度。

技術分享

圖7 神經元視圖。每個節點表示神經元;顏色表示神經元主要激勵的實例對應的標簽;大小表示該神經元與該標簽的緊密程度,越大,表示越緊密。

在DeepEyes系統, 當用戶在熱力圖或神經元視圖中,選擇某個神經元,輸入圖將展現出該神經元激勵的實例(圖8)。

技術分享

圖8 左圖,某個神經元激勵的實例;右圖,退化的神經元幾乎不能激勵實例。

接下來,我將通過一個例子MNIST 網絡,介紹DeepEyes的使用。在這個例子中,數據是7萬張手寫的阿拉伯數字圖片,其中有1萬張是帶標簽的數據。訓練網絡包括兩個卷積層,每層的神經元數量分別是20和50;兩個全連接層,每層的神經元數量是500和10。

MNIST網絡的分析如圖9所示。第一個卷積層的輸入圖(圖9(a))非常混亂,不存在明顯的聚類。表明該層只能識別比較基本的特征,不能對輸入圖象進行分類;從最大激勵值熱力圖,我們可以發現一些退化的神經元 。說明該層神經元數量可以減少一點。觀察第二個卷積層的輸入圖(圖9(b))。其輸入圖相比圖9(a),具有比較好的聚類特征,但依舊不夠明顯。但在第一個全連接層(圖9(c)),我們發現輸入圖具有非常明顯的聚類特點。每個類別內,節點的顏色一致,說明該層具備較強的分類識別能力。但類別之間存在一些模糊區域,查看實例,我們發現這是一些比較難識別的數字,比如7和9。但在第二個全連接圖的輸入圖(圖9(d)),我們發現聚類之間的距離比較大,說明該層的識別分類能力好。同時,在神經元視圖中,我們發現每個神經元識別的標簽是不一樣的,且相互之間的距離比較大。

通過這個分析,發現MINST網絡,可以減少第一個卷積層和第一個全連接層中神經元的數量。最後,他們將第一個卷積層神經元數量從20減少到10,將第一個全連接層神經元數量從500減少到100。經過2000次叠代後,網絡的準確率達到98.2%。

技術分享

圖9 MNIST網絡分析圖。從左至右,依次是第一個卷積層,第二個卷積層,第一個全連接層,第二個全連接層。

總的來說,DeepEyes是一個用於設計深度神經網絡的可視分析系統。該系統支持用戶從穩定的神經層入手,分析輸入實例獲得的激勵向量之間的相似性和神經元激勵行為的相似程度,幫助用戶分析神經網絡狀況,比如神經層數量是否不夠,神經層內神經元的數量是否太多等。

DeepEyes: 用於深度神經網絡設計的遞進式可視分析系統 (DeepEyes: Progressive Visual Analytics for Designing Deep Neural Networks)