當前位置:
首頁 > 知識 > 全連接網路到卷積神經網路逐步推導

全連接網路到卷積神經網路逐步推導

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


1.介紹

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


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

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

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

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

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

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


3.大量參數

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

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


4.神經元組群

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

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

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

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

5.像素空間相關性

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

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

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


6.卷積神經網路(CNN)

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

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

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

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

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

原文:https://www.kdnuggets.com/2018/04/derivation-convolutional-neural-network-fully-connected-step-by-step.html?spm=a2c4e.11153940.blogcont583771.10.b61e294b48HLf8

-加入人工智慧學院系統學習-


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 AI講堂 的精彩文章:

谷歌CEO:AI時代,每個人都必須學會保持終生學習!
重磅!南京大學成立人工智慧學院!

TAG:AI講堂 |