1. 程式人生 > >【深度學習】卷積神經網路的卷積層和池化層計算

【深度學習】卷積神經網路的卷積層和池化層計算

一、簡介

\quad\quad 卷積神經網路(Convolutional neural network, CNN),屬於人工神經網路的一種,被應用於影象識別、語音識別等各種場合。

\quad\quad 我們知道,神經網路的基本組成包括輸入層、隱藏層、輸出層。卷積神經網路的特點就在於隱藏層分為卷積層和池化層。

  • 卷積層,通過一塊卷積核在原始影象上平移來提取特徵,每一個特徵就是一個特徵對映;
  • 池化層,通過匯聚特徵後稀疏引數來減少要學習的引數,降低網路的複雜度,常見的包括:最大值池化和平均值池化

下面我們先來看看卷積神經網路的整體結構

二、整體結構

1、根據 這篇部落格 我們可以簡單畫出神經網路的結構圖:

在這裡插入圖片描述

圖中有多個“Affine-ReLU”組合,最後一層是“Affine-Softmax”組合,通過Softmax輸出最終結果(概率)

2、CNN的結構圖

在這裡插入圖片描述

比較上面兩張圖,我們可以發現,CNN中新增加了Convlution層和Pooling層,CNN的層的連線順序是“Conv-ReLU-(Pool)”,(Pooling層有時會被省略)

三、卷積層

在神經網路中,我們使用全連線層(Affine),相鄰層的神經元全部連線在一起,輸出的數量可以任意決定。

那麼為什麼要將全連線層換成卷積層呢?

因為,全連線層將資料的形狀給“忽略”了,使用神經網路來訓練MNIST資料,輸入資料是影象,三維形狀(1,28,28)表示(通道,高,長),輸入的資料是將三維資料拉平為一維資料,以784個數據的形式輸入到最開始的全連線層。

但是,這個忽略了影象三維形狀中包含的空間資訊,比如,空間上鄰近的畫素為相似的值、RGB的各個通道之間也存在密切的關聯性,所以使用全連線無法利用與形狀相關的資訊。

使用卷積層,可以保持影象資料的形狀不變,輸入影象資料時,卷積層會以三維資料的形式接收輸入資料,並且同樣以三維資料輸出至下一層

1、卷積運算

卷積運算 動畫演示

在這裡插入圖片描述

  • 卷積層進行的處理就是卷積運算,也相當於影象處理中的“濾波器運算”

在這裡插入圖片描述

上圖是單通道的運算,卷積運算在輸入資料中以一定間隔滑動卷積核的視窗並運算(相應元素相乘在求和),然後將結果輸出到對應的位置,將這個過程在所有位置都進行一遍,便可以得到卷積運算的結果。

在全連線的神經網路中,除了權重,還存在偏置。CNN中,卷積核的引數對應之前的權重,並且CNN也存在偏置,卷積運算後得到結果的每個元素都加上偏置,如下圖:

在這裡插入圖片描述

四、填充、步幅

- 填充

1、填充

  • 在進行卷積層處理之前,向輸入資料的周圍填入固定的值(比如0)
  • 圖中,原影象資料形狀為(5,5),通過填充,輸入資料變成了(7,7),然後應用大小為(3,3)的卷積核,生成了(3,3)的輸出資料,這裡步幅設定為2
  • 使用填充主要是為了調整輸出的大小,因為每次進行卷積都會縮小空間,那麼在多次卷積後大小可能為1,導致無法繼續在應用卷積運算
  • 卷積運算可以保持空間大小不變的情況下將資料傳遞給下一層

2、步幅

  • 步幅是指應用卷積核的間隔,動畫演示中的步幅為2
  • 對於輸入大小為(7,7)的資料,以步幅為2應用卷積核,輸出大小為(3,3)
  • 如果設定為1,輸出大小為(5,5)

綜上,增大步幅後,輸出大小會變小;增大填充後,輸出大小會變大

設輸入大小為(H,W),卷積核大小為(FH,FW),輸出大小為(OH,OW),填充為P,步幅為S,此時:

O H = H + 2 P F H S + 1 OH = \frac{H + 2P - FH}{S} + 1
O W = H + 2 P F W S + 1 OW = \frac{H + 2P - FW}{S} + 1

五、三維資料的卷積

上面的動畫演示的就是三維資料的卷積運算,影象資料除了高、長方向之外,還需要處理通道方向。

  • 在三維資料的卷積中,輸入資料和卷積核的通道數要設為相同的值,動畫演示中均為3;
  • 卷積核的大小可以設定為任意值,但是每個卷積核的大小也必須相同

通道方向上有多個特徵圖時,會按通道進行輸入資料和卷積核的卷積運算,並將結果相加,從而得到結果

在這裡插入圖片描述

六、池化層

在這裡插入圖片描述

上圖為“Max池化”最大值池化,是獲取最大值的運算,在“2 × 2”的目標區域內取最大值;
平均值池化,就是在目標區域中計算平均值

  • 池化層和卷積層不同,沒用要學習的引數,只是從目標區域中取最大值(平均值)
  • 池化層中資料資料和輸出資料的通道數不會發生變化,計算是按通道獨立進行的
  • 池化層對微小的位置變化具有魯棒性