您的位置:首頁>科技>正文

如何從信號分析角度理解卷積神經網路的複雜機制?

機器之心原創

作者:Qintong Wu

參與:Jane W

隨著複雜和高效的神經網路架構的出現, 卷積神經網路(CNN)的性能已經優於傳統的數位影像處理方法, 如 SIFT 和 SURF。 在電腦視覺領域, 學者們開始將研究重點轉移到 CNN, 並相信 CNN 是這一領域的未來趨勢。 但是, 人們對成效卓著的 CNN 背後的機理卻缺乏瞭解。 研究 CNN 的運行機理是當今一個熱門話題。 基本上, 有三種主流觀點:1>優化、2>近似、3>信號。 前兩種觀點主要集中在純數學分析, 它們試圖分析神經網路的統計屬性和收斂性, 而第三種觀點信號嘗試解決以下問題:1)為什麼非線性啟動函數(activation function)對所有中間層的過濾式輸出(filter output)是必不可少的?2)雙層級聯系統(two-layer cascade system)比單層系統的優勢在哪裡?

球面修正相關性(REctified COrrelations on a Sphere/RECOS)

眾所周知, 前饋神經網路(FNN)可以被看作是一個萬能的近似器, 在給定包含有限數量神經元的單個隱藏層的情況下, 它能夠近似任何連續的函數。 FNN 的特殊之處在於神經元的非線性啟動函數。 有的神經網路龐大且深度, 但如果離開非線性啟動函數, 它們的複雜架構的效果與一個簡單的單層線性模型沒什麼不同, 都是將輸入映射到另一個輸出空間。 具體來說, 非線性啟動函數學習到的輸入的表徵集合更適合解決實際問題。

CNN 只是 FNN 或 MLP(多層感知器/perceptron)的另一種類型。 為了分析 CNN 的非線性, 作者提出了一個數學模型來理解 CNN 的行為。

在模型中, CNN 被視為由基本操作單元組成的一個網路, 它們計算「球面修正相關(RECOS)」。 因此, 它被稱為 RECOS 模型。 在 CNN 訓練期間, 首先初始化核權重, 然後通過梯度下降法(gradient descent)和反向傳播(back propagation)演算法進行調整。 在 RECOS 模型中, 權重被稱為錨向量(anchor vector), 以表示它們在聚類輸入資料中的作用。 也就是說, 我們試圖計算輸入向量和錨向量之間的相關性, 然後測量其相似度。

為什麼用非線性啟動函數?

與 MLP 僅用 1 步考慮所有圖元的交互作用不同, CNN 將輸入圖像分解成較小的圖像塊(patch), 在某些層中又被稱為節點的感受域(receptive field)。 演算法逐漸擴大感受域的範圍以覆蓋更大的圖像。 神經元計算輸入向量與其錨向量之間的相關性, 以測量它們的相似度。 每個 RECOS 單元中有 K 個神經元。

我們將模型表示為 Y = AX, 其中 X 是輸入向量, Y 是輸出向量, A 是我們的錨向量(核篩檢程式(kernel filter)的權重矩陣)。 這個方程表示 CNN 將輸入映射到另一個空間。 通過研究 RECOS 模型, 我們可以立即得出結論:學習到的核權重傾向於將相似的物件映射到同一個區域。 例如, 如果 x_i 與 x_j 的歐式距離相近, 則相應的輸出 y_i 和 y_j 在新空間中也必須相近。 對於用於捕獲貓的特徵的篩檢程式, 學習到的錨向量 A 將所有代表貓特徵的向量 X_cat 映射為 Y_cat, 而其它代表狗特徵的向量 X_dog 或代表車特徵的向量 X_car 將永遠不會出現在這個區域。 這就是 CNN 能夠有效識別不同物件的原因。

但為什麼我們必須使用非線性啟動函數?考慮上面兩幅圖像:(左)原始的貓圖像, (右)左圖像的負片。 從人的角度判斷, 這兩個圖像可以是一樣的, 但也可以是不同的。 我們可以得出結論, 兩幅圖中的貓是相同的貓, 並且它們是負相關的。 因為黑貓只是通過從白貓圖像的圖元值減去 255 來獲得。 那麼 CNN 如何理解這兩隻貓呢?

從上圖中, 我們可以看到使用非線性啟動函數的必要性。 X 是輸入向量, a_1、a_2 和 a_3 是學習到的不同的錨向量。 在 RECOS 模型中, 線性運算 Y = AX 用於測量輸入向量和錨向量之間相似度。 因此, 對於錨向量 a_1 和 a_3, 可以看到 x 與兩個錨向量之間的相似度在幅度上是相同的, 但是符號相反。 此時, 對於 CNN 來說貓是不同的。 但是例如在有兩個卷積層的 LeNet5 中, 當原始輸入 x 通過兩層之後,最終的輸出結果將會被混淆:以下兩種情況不能被沒有非線性啟動函數的系統正確區分:1)第一層的正回應遇到第二層的負過濾權重;和 2)第一層的負回應遇到第二層的正過濾權重。然而,通過使用非線性啟動函數,CNN 可以很容易地排除負值的影響,從而得到魯棒的系統。

此外,作者還進行了一個有趣的實驗,結果如下:

我們用 MNIST 訓練集訓練了 LeNet-5 網路,在 MNIST 測試集上得到了 98.94% 的正確識別率。然後,我們將這個 LeNet-5 網路應用於如圖 5 所示的灰度反轉的測試圖像。準確率下降為 37.36%。接下來,我們將 conv1 中的所有過濾權重改為負值,同時保持網路的其餘部分不變。經過微修改的 LeNet-5 網路對灰度反轉測試集的正確識別率為 98.94%,而原始測試集的準確率下降為 37.36%。

可以看到,改變第一個卷積層中的所有過濾權重將得到對稱的結果。該結果表明,引入啟動函數將消除負相關關係,若我們在學習灰度反轉圖像的特徵時不僅保留學習原圖像的錨向量同時加入灰度翻轉圖像的錨向量,則對兩個測試集均能夠達到高識別效果。

級聯層的優勢是什麼?

通常來講,隨著 CNN 層數的深入,核函數會試圖基於所有之前核函數的輸出來構建自己的抽象特徵。所以相比淺層,深層可以捕捉全域語義和高級特徵。在 RECOS 模型中,CNN 利用與測量相似度類似的一系列非線性變換來逐層聚類相似的輸入資料。輸出層預測所有可能決策(如,物件的類)的似然值。訓練樣本含有圖像與其決策標籤之間的關係,並能夠幫助 CNN 生成更適合的錨向量(從而形成更好的聚類),最終將聚類資料與決策標籤聯繫起來。

上圖顯示了深度網路的有效性,實驗細節如下:

我們用一個例子來說明這一點。首先,我們通過在 MNIST 資料集的原始手寫數字上隨機添加 10 個不同的背景來修改 MNIST 的訓練集和測試集。對上面的三行圖像,每行最左邊的列顯示 3 個數位圖像輸入,中間列是分別來自卷積層和 ReLU 層的 6 個譜圖像(spectral image)輸出,最右邊兩列是分別來自卷積層和 ReLU 層的 16 個譜圖像輸出。由於背景的多樣性,難以為第一層找到的良好的錨向量矩陣。然而,這些圖像的背景在空間域中是不一致的,而它們的前景數字是一致的。

對於不同的變形背景,CNN 成功地捕捉到了代表性模式。值得注意的是,第一層含有很多冗餘和無關的資訊,通過在級聯層運用特徵提取,CNN 學習到了全域樣式而不是局部細節。也就是說,對於輸入向量 x,RECOS 變換產生一組 K 個非負相關值作為 K 維度的輸出向量。這種方式實現了逐層重複聚類。最後,訓練圖像的標籤説明 CNN 在不同背景的圖像中找到相同的模式。

從上面的分析可以看出,卷積層模型對於自動選擇特徵是很有用的。它能在沒有人工干預的情況下測量輸入資料的相似性並將其聚類到不同區域。

那麼完全連接層的作用是什麼?

通常 CNN 被分解為兩個子網路:特徵提取(FE)子網路和決策(DM)子網路。FE 子網路由多個卷積層組成,而 DM 子網路由幾個完全連接層組成。簡而言之,FE 子網路通過一系列 RECOS 變換以形成用於聚類的新表徵。DM 子網路將資料表征與決策標籤聯繫起來,它的作用與 MLP 的分類作用類似。

到這裡我們可以得出結論,CNN 比電腦視覺中經典的機器學習演算法要好得多。因為 CNN 可以自動提取特徵並且基於這些特徵學習分類輸入資料,而隨機森林(RF)和支援向量機(SVM)則非常依賴於特徵工程,而這種特徵工程往往很難操作。

結論

總而言之,RECOS 模型用信號分析的角度為我們剖析了卷積神經網路。從這個角度來看,我們可以看到啟動函數和深度架構的有效性。然而,以下幾個方面仍需要重點研究:網路架構設計、弱監督學習、對錯誤標籤的魯棒性、資料集偏差和過擬合問題等。

當原始輸入 x 通過兩層之後,最終的輸出結果將會被混淆:以下兩種情況不能被沒有非線性啟動函數的系統正確區分:1)第一層的正回應遇到第二層的負過濾權重;和 2)第一層的負回應遇到第二層的正過濾權重。然而,通過使用非線性啟動函數,CNN 可以很容易地排除負值的影響,從而得到魯棒的系統。

此外,作者還進行了一個有趣的實驗,結果如下:

我們用 MNIST 訓練集訓練了 LeNet-5 網路,在 MNIST 測試集上得到了 98.94% 的正確識別率。然後,我們將這個 LeNet-5 網路應用於如圖 5 所示的灰度反轉的測試圖像。準確率下降為 37.36%。接下來,我們將 conv1 中的所有過濾權重改為負值,同時保持網路的其餘部分不變。經過微修改的 LeNet-5 網路對灰度反轉測試集的正確識別率為 98.94%,而原始測試集的準確率下降為 37.36%。

可以看到,改變第一個卷積層中的所有過濾權重將得到對稱的結果。該結果表明,引入啟動函數將消除負相關關係,若我們在學習灰度反轉圖像的特徵時不僅保留學習原圖像的錨向量同時加入灰度翻轉圖像的錨向量,則對兩個測試集均能夠達到高識別效果。

級聯層的優勢是什麼?

通常來講,隨著 CNN 層數的深入,核函數會試圖基於所有之前核函數的輸出來構建自己的抽象特徵。所以相比淺層,深層可以捕捉全域語義和高級特徵。在 RECOS 模型中,CNN 利用與測量相似度類似的一系列非線性變換來逐層聚類相似的輸入資料。輸出層預測所有可能決策(如,物件的類)的似然值。訓練樣本含有圖像與其決策標籤之間的關係,並能夠幫助 CNN 生成更適合的錨向量(從而形成更好的聚類),最終將聚類資料與決策標籤聯繫起來。

上圖顯示了深度網路的有效性,實驗細節如下:

我們用一個例子來說明這一點。首先,我們通過在 MNIST 資料集的原始手寫數字上隨機添加 10 個不同的背景來修改 MNIST 的訓練集和測試集。對上面的三行圖像,每行最左邊的列顯示 3 個數位圖像輸入,中間列是分別來自卷積層和 ReLU 層的 6 個譜圖像(spectral image)輸出,最右邊兩列是分別來自卷積層和 ReLU 層的 16 個譜圖像輸出。由於背景的多樣性,難以為第一層找到的良好的錨向量矩陣。然而,這些圖像的背景在空間域中是不一致的,而它們的前景數字是一致的。

對於不同的變形背景,CNN 成功地捕捉到了代表性模式。值得注意的是,第一層含有很多冗餘和無關的資訊,通過在級聯層運用特徵提取,CNN 學習到了全域樣式而不是局部細節。也就是說,對於輸入向量 x,RECOS 變換產生一組 K 個非負相關值作為 K 維度的輸出向量。這種方式實現了逐層重複聚類。最後,訓練圖像的標籤説明 CNN 在不同背景的圖像中找到相同的模式。

從上面的分析可以看出,卷積層模型對於自動選擇特徵是很有用的。它能在沒有人工干預的情況下測量輸入資料的相似性並將其聚類到不同區域。

那麼完全連接層的作用是什麼?

通常 CNN 被分解為兩個子網路:特徵提取(FE)子網路和決策(DM)子網路。FE 子網路由多個卷積層組成,而 DM 子網路由幾個完全連接層組成。簡而言之,FE 子網路通過一系列 RECOS 變換以形成用於聚類的新表徵。DM 子網路將資料表征與決策標籤聯繫起來,它的作用與 MLP 的分類作用類似。

到這裡我們可以得出結論,CNN 比電腦視覺中經典的機器學習演算法要好得多。因為 CNN 可以自動提取特徵並且基於這些特徵學習分類輸入資料,而隨機森林(RF)和支援向量機(SVM)則非常依賴於特徵工程,而這種特徵工程往往很難操作。

結論

總而言之,RECOS 模型用信號分析的角度為我們剖析了卷積神經網路。從這個角度來看,我們可以看到啟動函數和深度架構的有效性。然而,以下幾個方面仍需要重點研究:網路架構設計、弱監督學習、對錯誤標籤的魯棒性、資料集偏差和過擬合問題等。

Next Article
喜欢就按个赞吧!!!
点击关闭提示