CS2321n學習筆記——卷積和池化

CS2321n學習筆記——卷積和池化

卷積層和普通的全連接層面的最大差別就是,它可以保全空間結構

在這裏插入圖片描述
用之前提到的例子繼續說明,假如輸入的圖片尺寸是32x32x3的,這裏使用一個5x5x3的卷積核來進行運算,具體步驟是這個卷積核在這個圖片結構上滑動,可以理解爲5x5的濾波器在32x32的矩陣上滑動一樣(在這副圖上可以理解成藍色的方體在粉色的方體內部遊走滑動),後面的x3是RGB三個通道層,是數據的深度。
每次滑動後的運算都是點積,也就是將卷積核的每個數值和輸入image空間位置上對應的像素值相乘然後對所有積求和,也就是說卷積運算有5x5x3=75次乘法運算。

在這裏插入圖片描述
而每次運算是將5x5x3=75個像素值經過卷積核的點積加在一起,全部滑動一遍之後整個32x32x3的圖像變成了一個激活映射,圖中右邊藍色和綠色的兩個激活映射就是兩個不同卷積核運算後的結果,這一層有幾個卷積核就會得到幾個這樣的映射,也就是說每個卷積核得到一個激活映射。
在這裏插入圖片描述
如圖,如果這一層有6個這樣的卷積核,得到的輸出就射6個激活映射,總的輸出尺寸是28x28x6,再輸入給下一層。

在這裏插入圖片描述
卷積層一層層疊加,每一層處理前一層的輸出,卷積核的尺寸也做出相應變化,從而得到越來越高階的特徵。

那麼每層卷積層傳遞給後一層的數據結構是什麼呢?
在這裏插入圖片描述
輸出尺寸與輸入尺寸、卷積核尺寸還有步幅的運算關係如圖,不同的步幅會導致不同的輸出尺寸,但必須輸出對稱,也就是說在步幅的選擇上必須除盡(如圖中的stride3就不可取)

有時會做零填補(zero padding)來在輸入圖像周圍加一圈像素,來保持輸入的尺寸不變。在這裏插入圖片描述
如果神經網絡有多個卷積層(有一定深度),不做邊角填補的話,圖像的尺寸會迅速減小,到後面就只剩很少的特徵,所以零填補(或者其他形式的padding)是很有意義的。
在這裏插入圖片描述
這是一個例子:輸入圖像尺寸是32x32x3,用10個5x5的卷積核以步長1,填補2的模式運算,輸出尺寸是多少呢?
在這裏插入圖片描述
結果是32x32x10
這一層的參數有:(5x5x3+1)x10=760個參數,其中x3是卷積核的深度,+1是每個卷積核的偏置項

而且,卷積核的尺寸也可以是1x1
在這裏插入圖片描述
這樣的卷積核意義在於,對輸入做深度方向上的卷積。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章