04.23 全連接網絡到卷積神經網絡逐步推導(組圖無公式)

在圖像分析中,卷積神經網絡(Convolutional Neural Networks, CNN)在時間和內存方面優於全連接網絡(Full Connected, FC)。這是為什麼呢?卷積神經網絡優於全連接網絡的優勢是什麼呢?卷積神經網絡是如何從全連接網絡中派生出來的呢?卷積神經網絡這個術語又是從哪裡而來?這些問題在本文中一一為大家解答。

1.介紹

對於圖像分析而言,具體可以將其劃分為很多類型的任務,比如分類、對象檢測、識別、描述等。對於圖像分類器而言,即使在諸如遮擋、照明變化、視覺等變化的情況下,也應該能夠以高精度的性能工作。以特徵工程為主要步驟的傳統圖像分類方法不適合在豐富環境中工作,即使是該領域的專家也不能給出一組能夠在不同變化下達到高精度的特徵,無法保證手工所選的特徵是否合適。在這個問題的啟發下,特徵學習的思想應運而生,通過自主學習來獲得合適的圖像特徵,這也是人工神經網絡(ANN)對於圖像分析任務魯棒性的原因之一。基於梯度下降算法(GD)等學習算法,ANN可以自動學習到圖像特徵,將原始圖像輸入人工神經網絡後,ANN能夠自動地生成描述它的特徵。

2.基於全連接網絡的圖像分析

現在一起看看人工神經網絡是如何對進行處理的,以及CNN為什麼在時間和內存上相較於全連接網絡更高效。如圖1所示,輸入的是一個3x3大小的灰度圖。例子中使用小尺寸的圖像是為了方便講解,而不是表明ANN只能處理小尺寸的圖像。

全連接網絡到卷積神經網絡逐步推導(組圖無公式)

圖像1

在輸入ANN時,圖像會轉變為像素矩陣。由於ANN使用的是一維向量,而不是二維矩陣,所以將輸入的二維灰度圖轉換成一維向量,其中每個像素點代表一個輸入神經元節點。

全連接網絡到卷積神經網絡逐步推導(組圖無公式)

圖像2

每個像素被映射為向量元素,向量中的每個元素又代表ANN中的神經元。由於圖像有3x3=9個像素點,那麼輸入層(Input Layer)將有9個神經元。由於ANN結構通常水平延伸,因此每層被表示為列向量。

輸入層與隱藏層(Hidden Layer)相連,輸入層的輸出又輸入給隱藏層,隱藏層學習如何將圖像像素轉換為代表性特徵。假設在圖3中有一個具由16個神經元的單個隱藏層。

全連接網絡到卷積神經網絡逐步推導(組圖無公式)

圖像3

由於網絡是全連接網絡,這意味著第i層的每個神經元與第i-1層中的所有神經元相連。即隱藏層中的每個神經元都與輸入層中9個神經元相連。換句話說,每個輸入像素與隱藏層中的16個神經元相連,其中每條連接都具有相應的參數(權重)。通過將每個像素與隱藏層中的所有神經元相連,如圖4所示,該網絡具有9x16=144個參數(權重)。

全連接網絡到卷積神經網絡逐步推導(組圖無公式)

圖像4

3.大量參數

上面例子中的參數數目似乎還可以接受,但是隨著輸入圖像尺寸變大以及隱藏層數量增加,網絡參數將大大增加。

例如,若網絡具有兩個隱層,分別有90和50個神經元,那麼輸入層和第一隱藏層之間的參數數目是9x90=810,兩個隱藏層之間的參數數目為90x50=4500,該網絡的參數總數為810+4500=5310。對於這樣簡單的網絡結構就有這麼多的參數數量,顯然是不合適的;另外一種情況是輸入圖像尺寸較大,比如32x32大小的圖像(1024個像素),如果網絡使用單個隱藏層(含有500個神經元),則總共有1024x500=512000個參數(權重),這對於只含單個隱藏層的網絡而言是一個巨大的數字。因此,必須有一個解決方案來減少網絡參數,那麼針對於此,卷積神經網絡(CNN)應運而生,雖然它網絡模型通常比較大,但大大降低了參數數量。

4.神經元組群

即使是很小的全連接網絡,網絡參數數目變得非常大的原因在於其層與層之間神經元每條連接上都是不同的參數。因此,可以考慮給一組神經元提供相同的參數,如圖5所示,一組神經元內的神經元都將分配同一個參數。

全連接網絡到卷積神經網絡逐步推導(組圖無公式)

圖像5

這樣處理以後,網絡參數數量大大降低。以圖4為例,比如每4個連續神經元作為一組,其結果是參數數量減少了4倍。每個輸入神經元將具有16/4=4個參數。整個網絡將具有144/4=36個參數,參數數量減少了75%。可以看到,其效果很好,但仍然有可優化的地方。

全連接網絡到卷積神經網絡逐步推導(組圖無公式)

圖像6

圖7顯示了每個像素到每個組中第一個神經元的連接,但每組中的每個像素與每個神經元還是相互連接,該網絡仍然是全連接網絡。

全連接網絡到卷積神經網絡逐步推導(組圖無公式)

圖像7

為了簡單起見,只挑選出一組並忽略其它組,如圖8所示。從圖中可以看到,每個組仍然與輸入層所有的9個神經元有所連接,因此具有9個參數。

全連接網絡到卷積神經網絡逐步推導(組圖無公式)

圖像8

5.像素空間相關性

之前所述內容使得每個神經元接受所有像素,若存在接受4個輸入的函數f(x1,x2,x3,x4),則這意味著要基於所有這4個輸入來進行決定。如果只有2個輸入,但其輸出結果與使用4個輸入的結果相同,那麼將不必使用所有的這4個輸入,只需給出對結果有影響的2個輸入即可。借鑑該思想,每個神經元接受輸入的9個像素,若能使用更少的像素獲得相同或更好的結果就大大降低了參數數量,因此可以朝著這個方向優化網絡參數。

通常,在圖像分析中,輸入圖像被轉換為像素矩陣,像素矩陣中的每個像素與它周圍的像素高度相關,兩個像素之間的距離越遠,二者越不相關。例如,如圖9所示,面部的像素與面部周圍的像素相關,但它與天空、地面等像素的相關性較低。

全連接網絡到卷積神經網絡逐步推導(組圖無公式)

圖像9

基於這樣的假設,上述示例中的每個神經元只接受彼此空間相關的像素,而不是將所有9個像素點都應用到每個輸入神經元中,因此可以選擇4個空間相關像素,如圖10所示。對於像素矩陣位置(0,0),那麼空間上最相關的像素是座標點(0,1)、(1,0)以及(1,1)。同一組中的所有神經元共享相同的權重,那麼每組中的4個神經元將只有4個參數而不是9個。總的參數變為4x4=16。與圖4中的全連接網絡相比,減少了128個參數(減少了88.89%)。

全連接網絡到卷積神經網絡逐步推導(組圖無公式)

圖像10

6.卷積神經網絡(CNN)

由於CNN使用權重共享,使用較少的參數,這使得CNN網絡結構一般層數比較多,這是全連接網絡無法具有的特性。

現在只有4個權重分配給同一組中的所有神經元,那麼這4個權重如何涵蓋9個像素點呢?讓我們看看這是如何處理的吧!

圖11展示了圖10中的一個網絡,併為每條連接添加了權重標記。在神經元內部,4個輸入像素中的每一個都與其相應的權重相乘,如圖11中公式所示。

全連接網絡到卷積神經網絡逐步推導(組圖無公式)

圖像11

假設這裡每次移動的步長設置為1(步長可以自己設置),每次相乘後將像素點索引移動一位,權重矩陣與另外一組像素相乘。以此類推,直到整個像素矩陣都與權重矩陣進行了相乘運算。整個過程與卷積運算相同,組的權重與圖像矩陣之間進行卷積運算,這也是CNN有“卷積”一詞的原因。

全連接網絡到卷積神經網絡逐步推導(組圖無公式)

圖像12

剩餘的神經元組也會進行同樣的操作,從像素矩陣的左上角開始,直到像素矩陣的右下角都與權重矩陣相乘。

7.參考

Aghdam, Hamed Habibi, and Elnaz Jahani Heravi. Guide to Convolutional Neural Networks: A Practical Application to Traffic-Sign Detection and Classification. Springer, 2017.

作者信息

Ahmed Gad,教師、專注於深度學習、計算機視覺

本文由阿里云云棲社區組織翻譯。

文章原標題《Derivation of Convolutional Neural Network from Fully Connected Network Step-By-Step》,譯者:海棠,審校:Uncle_LLD。


分享到:


相關文章: