天天看點

【深度學習理論】(2) 卷積神經網絡1. 卷積神經網絡組成2. 卷積3. 池化4. 全連接配接5. 卷積神經網絡特點6. 補充小知識點

各位同學好,最近學習了CS231N斯坦福計算機視覺公開課,講的太精彩了,和大家分享一下。

如下圖所示,現在有shape為 32x32x3 的圖像,如果使用全連神經網絡,将圖像拉長成一個一維向量 [None, 3072];使用10個線性分類器,每個分類器是一個一維向量,含 3072 個權重,和圖像做點乘,每個分類器得到1個值,得到輸出特征向量為 [None, 10]

【深度學習理論】(2) 卷積神經網絡1. 卷積神經網絡組成2. 卷積3. 池化4. 全連接配接5. 卷積神經網絡特點6. 補充小知識點

使用全連接配接神經網絡處理圖像分類問題存在的缺陷是,将二維圖像拉平成一維向量之後,丢失了圖像的空間資訊。為了解決這個問題,引入卷積操作。

1. 卷積神經網絡組成

卷積神經網絡是由 卷積層、池化層(降采樣)、全連接配接層 組成。卷積層提取特征;池化層對特征後處理,将特征大而化之的處理,圖變小變模糊;全連接配接層融合不同的特征,輸出最終結果。

【深度學習理論】(2) 卷積神經網絡1. 卷積神經網絡組成2. 卷積3. 池化4. 全連接配接5. 卷積神經網絡特點6. 補充小知識點

2. 卷積

卷積操作可以了解為,卷積核在原圖像上滑動,把對應位置元素相乘,即圖像像素乘以對應位置卷積核的權重,把相乘的結果再相加,填到生成特征圖的對應位置。

2.1 單通道圖像

以單通道圖像舉例。如下圖,左圖是原始像素,左圖綠色區域為感受野,中間的圖為卷積核,每次卷積結果生成特征圖,如右圖。每次卷積的卷積核裡面的權重是不變的。在感受野區域内,将原始像素和卷積核對應像值相乘再相加,結果填到特征圖的對應位置上。

【深度學習理論】(2) 卷積神經網絡1. 卷積神經網絡組成2. 卷積3. 池化4. 全連接配接5. 卷積神經網絡特點6. 補充小知識點

有多少個卷積核就有多少張特征圖。一個卷積核生成一張特征圖,如果換一套卷積核權重,就得到了第二張特征圖。将多個卷積核生成的特征圖堆疊起來,就生成了多通道的特征圖。作為下一個卷積層的輸入。

【深度學習理論】(2) 卷積神經網絡1. 卷積神經網絡組成2. 卷積3. 池化4. 全連接配接5. 卷積神經網絡特點6. 補充小知識點

然而,現在有個小問題。在卷積過程中,原圖像左上角的像素隻參加了一次卷積運算,而中間的像素參加了很多次卷積運算。這樣會導緻卷積過程中丢失邊緣資訊。

如何解決這個問題呢,我們可以在原圖像邊緣使用0填充一圈,稱為padding操作。(1)補0之後,邊緣像素就能更多的參與卷積運算。(2)不使用0填充的話,卷積過程中生成的特征圖size會不斷減小;采用0填充之後,卷積前的特征圖size和卷積後的特征圖size相同

【深度學習理論】(2) 卷積神經網絡1. 卷積神經網絡組成2. 卷積3. 池化4. 全連接配接5. 卷積神經網絡特點6. 補充小知識點

現在卷積核在圖像上移動步長=(1,1),即卷積核在水準和豎直方向每次滑動一格。若卷積核在圖像上移動步長=(2, 2),即卷積核在水準和豎直方向每次滑動兩格。

2.2 多通道圖像

在現實生活中,一般都是彩色圖像,即RGB三顔色通道。剛剛介紹的是原圖隻有一個通道。

卷積操作中,輸入圖像有多少個通道,卷積核就有多少個通道。如下圖,三個通道的卷積核在三通道的原圖像上滑動,對應元素相乘再相加,一個卷積核生成一張特征圖。

如下圖,輸入圖像三通道,一個卷積核也是三通道的,卷積核的每個通道對應原圖的每個通道,卷積核的每個通道的權重是不相同的。卷積核和原圖像對應位置相乘再相加,再加上一個偏置,填到特征圖的對應位置上。

【深度學習理論】(2) 卷積神經網絡1. 卷積神經網絡組成2. 卷積3. 池化4. 全連接配接5. 卷積神經網絡特點6. 補充小知識點

2.3 卷積的目的

卷積的目的就是把原圖中符合卷積核定義的特征提取出來。

可以了解為,卷積核定義了一個特征,卷積操作就是在原圖上提取這個特征,如果原圖中某些像素值符合卷積核特征,那麼在特征圖中對應的像素值就比較大,其他地方的值都很低。不同的卷積核能在原圖中提取不同的特征,如下圖兩種卷積核。

【深度學習理論】(2) 卷積神經網絡1. 卷積神經網絡組成2. 卷積3. 池化4. 全連接配接5. 卷積神經網絡特點6. 補充小知識點

2.4 卷積流程總結

輸入圖像的shape為 [32, 32, 3],用6個 5x5x3 的卷積核卷積,得到特征圖的shape為 [28, 28, 6],再用10個 5x5x6 的卷積核卷,生成特征圖的shape為 [24, 24, 10]

【深度學習理論】(2) 卷積神經網絡1. 卷積神經網絡組成2. 卷積3. 池化4. 全連接配接5. 卷積神經網絡特點6. 補充小知識點

3. 池化

現在有卷積層輸出的特征圖,随着卷積核個數越來越多,特征圖通道數也越來越多,參數量也越來越大。現在從特征圖中選取一些代表性的像素值作代表,不需要考慮原來這麼繁雜的參數。

選取方法有,最大池化:從每個池化窗中選出一個最大值;平均池化:計算每個池化視窗的平均值。

池化的作用:

(1)使卷積神經網絡具有平移不變性。不管原圖中,對象是處于圖像的哪個位置,經過池化層,過濾平移變形。

(2)減少參數量。從特征圖中提取具有代表性的像素值。

(3)防止過拟合。把特征圖進行大而化之的處理,保留主要特征,過濾噪音。

卷積操作的卷積核是有權重的,池化操作的池化視窗中是沒有權重的,隻需要找出相應的值

【深度學習理論】(2) 卷積神經網絡1. 卷積神經網絡組成2. 卷積3. 池化4. 全連接配接5. 卷積神經網絡特點6. 補充小知識點

4. 全連接配接

全連接配接将輸出特征圖拉平成一個長向量,進行模型彙總,得到最後的結果。

【深度學習理論】(2) 卷積神經網絡1. 卷積神經網絡組成2. 卷積3. 池化4. 全連接配接5. 卷積神經網絡特點6. 補充小知識點

5. 卷積神經網絡特點

(1)局部感受野。每個神經元僅于輸入神經元的一塊區域連接配接,這塊區域稱為感受野。

和全連接配接神經網絡不同,全連接配接網絡是每一個神經元都要處理上一層的全部輸出資訊;而在卷積神經網絡中,每個神經元隻關注感受野内的一小塊區域。

(2)權值共享。卷積核是共享的,一次卷積過程中,一個卷積核的權重參數是不變的(一個卷積核各通道的權重參數可以不相同)

(3)池化(下采樣)減少參數,防止過拟合,引入了平移不變性。

6. 補充小知識點

6.1 特征圖的size變化

如果輸入圖像的size為(N, N),卷積核的size為(F, F),輸出的特征圖的size為 (N-F)/ stride +1

如下圖,當步長=3時,輸出特征圖size是小數,應該避免這種情況,在原圖的周圍使用0填充,使輸出特征圖size是整數。

使用padding後,輸出特征圖size公式變為:(N+2P-F)/ stride +1

p 代表原圖周圍padding幾圈。如果 p =(F-1)/ 2,且步長=1,那麼輸入和輸出特征圖的size相同。

【深度學習理論】(2) 卷積神經網絡1. 卷積神經網絡組成2. 卷積3. 池化4. 全連接配接5. 卷積神經網絡特點6. 補充小知識點

6.2 1x1卷積

1x1卷積是指 卷積核的長寬都等于1。如下圖所示,輸入特征圖的shape為 [64, 64, 192],一個卷積核shape為 [1, 1, 192],對應元素相乘再相加,得到卷積輸出特征圖的shape為 [64, 64, 1]

可以使用不同個數的1x1卷積核來升維或降維,如果1x1卷積核個數是128個,就将輸入圖像的shape從 [64, 64, 192] 降為 [64, 64, 128]。

【深度學習理論】(2) 卷積神經網絡1. 卷積神經網絡組成2. 卷積3. 池化4. 全連接配接5. 卷積神經網絡特點6. 補充小知識點

1x1卷積的作用:(1)降維或升維;(2)跨通道資訊交融;(3)減少參數量;(4)增加模型深度,提高非線性表示能力。

如下圖(a)所示,使用 5x5x256 的卷積核計算,參數量有二十萬。操作數160.5M,可了解為每張輸出特征圖都是由一次卷積得來的,每一次卷積的運算量就是每個卷積核的size = 5*5

如圖(b)所示,先用1x1卷積核降維,再用5x5卷積提取特征,每個1x1卷積核的參數量隻有1*1*256。大大減少了計算量

【深度學習理論】(2) 卷積神經網絡1. 卷積神經網絡組成2. 卷積3. 池化4. 全連接配接5. 卷積神經網絡特點6. 補充小知識點

繼續閱讀