本節(jié)我們介紹卷積神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)概念富雅,主要是卷積層和池化層掸驱,并解釋填充、步幅没佑、輸入通道和輸出通道的含義毕贼。
二維卷積層
本節(jié)介紹的是最常見的二維卷積層,常用于處理圖像數(shù)據(jù)蛤奢。
二維互相關(guān)運(yùn)算
二維互相關(guān)(cross-correlation)運(yùn)算的輸入是一個二維輸入數(shù)組和一個二維核(kernel)數(shù)組帅刀,輸出也是一個二維數(shù)組,其中核數(shù)組通常稱為卷積核或過濾器(filter)远剩。卷積核的尺寸通常小于輸入數(shù)組扣溺,卷積核在輸入數(shù)組上滑動,在每個位置上瓜晤,卷積核與該位置處的輸入子數(shù)組按元素相乘并求和锥余,得到輸出數(shù)組中相應(yīng)位置的元素。圖1展示了一個互相關(guān)運(yùn)算的例子痢掠,陰影部分分別是輸入的第一個計算區(qū)域驱犹、核數(shù)組以及對應(yīng)的輸出。
二維卷積層
二維卷積層將輸入和卷積核做互相關(guān)運(yùn)算足画,并加上一個標(biāo)量偏置來得到輸出雄驹。卷積層的模型參數(shù)包括卷積核和標(biāo)量偏置。
互相關(guān)運(yùn)算與卷積運(yùn)算
卷積層得名于卷積運(yùn)算淹辞,但卷積層中用到的并非卷積運(yùn)算而是互相關(guān)運(yùn)算医舆。我們將核數(shù)組上下翻轉(zhuǎn)、左右翻轉(zhuǎn)象缀,再與輸入數(shù)組做互相關(guān)運(yùn)算蔬将,這一過程就是卷積運(yùn)算。由于卷積層的核數(shù)組是可學(xué)習(xí)的央星,所以使用互相關(guān)運(yùn)算與使用卷積運(yùn)算并無本質(zhì)區(qū)別霞怀。
特征圖與感受野
二維卷積層輸出的二維數(shù)組可以看作是輸入在空間維度(寬和高)上某一級的表征,也叫特征圖(feature map)莉给。影響元素的前向計算的所有可能輸入?yún)^(qū)域(可能大于輸入的實際尺寸)叫做的感受野(receptive field)毙石。
以圖1為例廉沮,輸入中陰影部分的四個元素是輸出中陰影部分元素的感受野。我們將圖中形狀為的輸出記為徐矩,將與另一個形狀為的核數(shù)組做互相關(guān)運(yùn)算废封,輸出單個元素。那么丧蘸,在上的感受野包括的全部四個元素漂洋,在輸入上的感受野包括其中全部9個元素×ε纾可見刽漂,我們可以通過更深的卷積神經(jīng)網(wǎng)絡(luò)使特征圖中單個元素的感受野變得更加廣闊,從而捕捉輸入上更大尺寸的特征弟孟。
填充和步幅
我們介紹卷積層的兩個超參數(shù)贝咙,即填充和步幅狈茉,它們可以對給定形狀的輸入和卷積核改變輸出形狀划纽。
填充
填充(padding)是指在輸入高和寬的兩側(cè)填充元素(通常是0元素)挽唉,圖2里我們在原輸入高和寬的兩側(cè)分別添加了值為0的元素霞势。
圖2 在輸入的高和寬兩側(cè)分別填充了0元素的二維互相關(guān)計算
如果原輸入的高和寬是和,卷積核的高和寬是和逛薇,在高的兩側(cè)一共填充行萍启,在寬的兩側(cè)一共填充列女揭,則輸出形狀為:
$$
(n_h+p_h-k_h+1)\times(n_w+p_w-k_w+1)
$$
我們在卷積神經(jīng)網(wǎng)絡(luò)中使用奇數(shù)高寬的核录肯,比如趴腋,的卷積核,對于高度(或?qū)挾龋榇笮?img class="math-inline" src="https://math.jianshu.com/math?formula=2%20k%20%2B%201" alt="2 k + 1" mathimg="1">的核论咏,令步幅為1优炬,在高(或?qū)挘﹥蓚?cè)選擇大小為的填充,便可保持輸入與輸出尺寸相同厅贪。
步幅
在互相關(guān)運(yùn)算中蠢护,卷積核在輸入數(shù)組上滑動,每次滑動的行數(shù)與列數(shù)即是步幅(stride)养涮。此前我們使用的步幅都是1葵硕,圖3展示了在高上步幅為3、在寬上步幅為2的二維互相關(guān)運(yùn)算单寂。
圖3 高和寬上步幅分別為3和2的二維互相關(guān)運(yùn)算
一般來說贬芥,當(dāng)高上步幅為,寬上步幅為時宣决,輸出形狀為:
$$
\lfloor(n_h+p_h-k_h+s_h)/s_h\rfloor \times \lfloor(n_w+p_w-k_w+s_w)/s_w\rfloor
$$
如果,昏苏,那么輸出形狀將簡化為尊沸。更進(jìn)一步威沫,如果輸入的高和寬能分別被高和寬上的步幅整除,那么輸出形狀將是洼专。
當(dāng)時棒掠,我們稱填充為;當(dāng)時屁商,我們稱步幅為烟很。
多輸入通道和多輸出通道
之前的輸入和輸出都是二維數(shù)組,但真實數(shù)據(jù)的維度經(jīng)常更高蜡镶。例如雾袱,彩色圖像在高和寬2個維度外還有RGB(紅、綠官还、藍(lán))3個顏色通道芹橡。假設(shè)彩色圖像的高和寬分別是和(像素),那么它可以表示為一個的多維數(shù)組望伦,我們將大小為3的這一維稱為通道(channel)維林说。
多輸入通道
卷積層的輸入可以包含多個通道,圖4展示了一個含2個輸入通道的二維互相關(guān)計算的例子屯伞。
圖4 含2個輸入通道的互相關(guān)計算
假設(shè)輸入數(shù)據(jù)的通道數(shù)為腿箩,卷積核形狀為,我們?yōu)槊總€輸入通道各分配一個形狀為的核數(shù)組劣摇,將個互相關(guān)運(yùn)算的二維輸出按通道相加度秘,得到一個二維數(shù)組作為輸出。我們把個核數(shù)組在通道維上連結(jié)饵撑,即得到一個形狀為的卷積核剑梳。
多輸出通道
卷積層的輸出也可以包含多個通道,設(shè)卷積核輸入通道數(shù)和輸出通道數(shù)分別為和滑潘,高和寬分別為和垢乙。如果希望得到含多個通道的輸出,我們可以為每個輸出通道分別創(chuàng)建形狀為的核數(shù)組语卤,將它們在輸出通道維上連結(jié)追逮,卷積核的形狀即。
對于輸出通道的卷積核粹舵,我們提供這樣一種理解钮孵,一個的核數(shù)組可以提取某種局部特征,但是輸入可能具有相當(dāng)豐富的特征眼滤,我們需要有多個這樣的的核數(shù)組巴席,不同的核數(shù)組提取的是不同的特征。
1x1卷積層
最后討論形狀為的卷積核诅需,我們通常稱這樣的卷積運(yùn)算為卷積漾唉,稱包含這種卷積核的卷積層為卷積層荧库。圖5展示了使用輸入通道數(shù)為3、輸出通道數(shù)為2的卷積核的互相關(guān)計算赵刑。
圖5 1x1卷積核的互相關(guān)計算分衫。輸入和輸出具有相同的高和寬
卷積核可在不改變高寬的情況下,調(diào)整通道數(shù)般此。卷積核不識別高和寬維度上相鄰元素構(gòu)成的模式蚪战,其主要計算發(fā)生在通道維上。假設(shè)我們將通道維當(dāng)作特征維铐懊,將高和寬維度上的元素當(dāng)成數(shù)據(jù)樣本邀桑,那么卷積層的作用與全連接層等價。
卷積層與全連接層的對比
二維卷積層經(jīng)常用于處理圖像居扒,與此前的全連接層相比概漱,它主要有兩個優(yōu)勢:
一是全連接層把圖像展平成一個向量,在輸入圖像上相鄰的元素可能因為展平操作不再相鄰喜喂,網(wǎng)絡(luò)難以捕捉局部信息瓤摧。而卷積層的設(shè)計,天然地具有提取局部信息的能力玉吁。
二是卷積層的參數(shù)量更少照弥。不考慮偏置的情況下,一個形狀為的卷積核的參數(shù)量是进副,與輸入圖像的寬高無關(guān)这揣。假如一個卷積層的輸入和輸出形狀分別是和,如果要用全連接層進(jìn)行連接影斑,參數(shù)數(shù)量就是给赞。使用卷積層可以以較少的參數(shù)數(shù)量來處理更大的圖像。
池化
二維池化層
池化層主要用于緩解卷積層對位置的過度敏感性矫户。同卷積層一樣片迅,池化層每次對輸入數(shù)據(jù)的一個固定形狀窗口(又稱池化窗口)中的元素計算輸出,池化層直接計算池化窗口內(nèi)元素的最大值或者平均值皆辽,該運(yùn)算也分別叫做最大池化或平均池化柑蛇。圖6展示了池化窗口形狀為的最大池化。
圖6 池化窗口形狀為 2 x 2 的最大池化
二維平均池化的工作原理與二維最大池化類似驱闷,但將最大運(yùn)算符替換成平均運(yùn)算符耻台。池化窗口形狀為的池化層稱為池化層,其中的池化運(yùn)算叫作池化空另。
池化層也可以在輸入的高和寬兩側(cè)填充并調(diào)整窗口的移動步幅來改變輸出形狀盆耽。池化層填充和步幅與卷積層填充和步幅的工作機(jī)制一樣。
在處理多通道輸入數(shù)據(jù)時,池化層對每個輸入通道分別池化征字,但不會像卷積層那樣將各通道的結(jié)果按通道相加都弹。這意味著池化層的輸出通道數(shù)與輸入通道數(shù)相等娇豫。