卷積神經(jīng)網(wǎng)絡(luò)簡介與卷積網(wǎng)絡(luò)的平移不變性
(如無特殊說明,本文中有填充指的是“相同”填充)
? 全連接網(wǎng)絡(luò)的訓(xùn)練問題
?在機(jī)器視覺識別問題中,一般來說,輸入數(shù)據(jù)的維度非常大,如果我們要設(shè)計(jì)一個圖像識別的全連接網(wǎng)絡(luò)的話,那么網(wǎng)絡(luò)中的參數(shù)就會非常多,在使用梯度下降法訓(xùn)練模型時,過多的參數(shù)容易使模型過擬合。
? 卷積網(wǎng)絡(luò)
? 卷積神經(jīng)網(wǎng)絡(luò)據(jù)說是啟發(fā)于對人眼視覺機(jī)制的研究,人們一經(jīng)應(yīng)用發(fā)現(xiàn),一個設(shè)計(jì)合理的卷積神經(jīng)網(wǎng)絡(luò)的潛能不亞于全連接網(wǎng)絡(luò)且它的參數(shù)量相對較少,訓(xùn)練時不易出現(xiàn)過擬合現(xiàn)象,因此它在機(jī)器視覺上的應(yīng)用價(jià)值要高于全連接網(wǎng)絡(luò)在機(jī)器視覺上的。
“卷積神經(jīng)網(wǎng)絡(luò)起源于人類對人眼視覺機(jī)制的研究”,這是大家所認(rèn)同的說法,如果對人眼視覺機(jī)制有一個初步地了解的話,會發(fā)現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)和人眼視覺機(jī)制確實(shí)有相似之處,

? 人眼的感光細(xì)胞(視錐細(xì)胞、視桿細(xì)胞)的刺激傳出可以類比為圖像像素輸入
卷積神經(jīng)網(wǎng)絡(luò)和人眼視覺機(jī)制的連接模式十分相似,一片區(qū)域的感光細(xì)胞連接一個雙極雙極細(xì)胞,一片像素通過一個卷積核連接下一個像素。
至于它與人眼視覺機(jī)制的聯(lián)系,多的我就不說了,因?yàn)槲也恢馈?/p>
? 卷積網(wǎng)絡(luò)層與全連接層
? 卷積網(wǎng)絡(luò)層的計(jì)算過程和全連接層的計(jì)算過程類似,都是乘權(quán)重、加偏置這樣的線性運(yùn)算,再經(jīng)過激活函數(shù)輸出,它的作用也是提取線性互斥特征,可以說卷積網(wǎng)絡(luò)能做到的全連接網(wǎng)絡(luò)一樣能做到,我們只需要將上面卷積網(wǎng)絡(luò)的參數(shù)遷移到全連接網(wǎng)絡(luò)即可,但是全連接網(wǎng)絡(luò)的輸入形狀是固定的,所以這樣做很不靈活。
? 當(dāng)然,對于卷積神經(jīng)網(wǎng)絡(luò),我們不需要破壞輸入數(shù)據(jù)的結(jié)構(gòu),輸入數(shù)據(jù)經(jīng)過一層卷積網(wǎng)絡(luò)提取特征后,數(shù)據(jù)結(jié)構(gòu)不會發(fā)生大的變化(特征的空間結(jié)構(gòu)得以保留),相比全連接網(wǎng)絡(luò),我們更容易處理數(shù)據(jù)以及理解網(wǎng)絡(luò)的行為(通過打印特征圖,網(wǎng)絡(luò)對圖像中的哪些部分感興趣可以一目了然、我們也可以通過特征圖了解到它是用什么特征來判斷的...........)
關(guān)于卷積神經(jīng)網(wǎng)絡(luò)具體的計(jì)算過程、原理、應(yīng)用等推薦吳恩達(dá)教授的教程(通俗易懂,深入淺出,不需要太多的數(shù)學(xué)基礎(chǔ))

初步了解了卷積的計(jì)算方法后,很容易得到兩個簡單的性質(zhì),
第一,卷積網(wǎng)絡(luò)層的輸入形狀受限制較小,卷積網(wǎng)絡(luò)層不像全連接層那樣需要固定的輸入形狀,如果輸入是圖像,那么卷積后的結(jié)果也是圖像,對于計(jì)算機(jī)來說,圖像是二維數(shù)組(灰度圖)或三維數(shù)組,那就是數(shù)據(jù)結(jié)構(gòu)沒有發(fā)生太大的變化,當(dāng)然,一層卷積網(wǎng)絡(luò)可能有很多的卷積核。
第二,它的平移特性
下圖中的網(wǎng)絡(luò)是3x3x1有填充卷積神經(jīng)網(wǎng)絡(luò)


這就是它的平移特性。
現(xiàn)在考慮一種情況:
假設(shè)說我們有一個訓(xùn)練好的識別手寫數(shù)字的神經(jīng)網(wǎng)絡(luò),它是由一個3x3x1有填充卷積層和一個28x28x10的無填充卷積層構(gòu)成的,訓(xùn)練好的第一層卷積的作用就像上圖那樣是提取圖像的邊緣信息,最后一層就相當(dāng)于有10個神經(jīng)元的全連接層。
這個網(wǎng)絡(luò)可能會像我們?nèi)祟愐粯永脭?shù)字的形狀特征來判斷數(shù)字是多少,我們知道,數(shù)字1的圖像提取邊緣后就像是一個圈,所以判斷數(shù)字1的卷積核可能會像這樣,這個卷積核就是一個圈的匹配模板

我們觀察到,這個圈的位置好像在正中間,也就是說數(shù)字1的圖像中的“1”位于正中間時,網(wǎng)絡(luò)的輸出才有較高的可信度,這樣看來,這個模型也不行??!,那有什么辦法解決這個問題?
數(shù)據(jù)增強(qiáng)
這不是本文重點(diǎn)考慮的一種方法。
對訓(xùn)練集中的數(shù)據(jù)進(jìn)行平移變換來擴(kuò)充數(shù)據(jù),使輸入數(shù)據(jù)不只有像素只處于圖像中心的情況,還可以增加卷積核的通道數(shù),也許其他通道會學(xué)習(xí)到中心圈匹配模板的平移情況
不使用數(shù)據(jù)增強(qiáng)
最大池化層+有填充卷積網(wǎng)絡(luò)
如果我們將特征圖多平移幾次,也許“1”就會落到正中間,所以我們只需要將最后一層改為有填充卷積網(wǎng)絡(luò)就行,最后的輸出結(jié)構(gòu)變?yōu)?8x28x10,這對應(yīng)了28x28=784種平移特征圖的10個預(yù)測結(jié)果。我們先觀察數(shù)字1的預(yù)測結(jié)果,假設(shè)我們輸入了一個28x28的數(shù)字1的圖像,其中的“1”被我們平移向右平移了7個像素,圖像經(jīng)過第一層卷積后輸出了圖像的邊緣信息,然后輸入到最后一層,最后一層卷積核從左上角開始卷過去卷到右下角,在本例中就相當(dāng)于把這個特征圖所有的平移變換都考慮進(jìn)去(28x28個),本例中向右平移7個像素的特征圖對應(yīng)的1的預(yù)測概率應(yīng)該是這784個特征圖中最大的那個,所以我們再選出最大值即可,我們可以用最大28x28的最大池化來挑選最大值,這樣的網(wǎng)絡(luò)在處理平移時就比之前的要好一點(diǎn)
最大池化層+有填充卷積網(wǎng)絡(luò)實(shí)驗(yàn):

首先用一個卷積網(wǎng)絡(luò)訓(xùn)練數(shù)據(jù)分類,數(shù)據(jù)集是MINIST,這個數(shù)據(jù)集的數(shù)字都在中心,訓(xùn)練完成后準(zhǔn)確率在0.98左右,損失在0.1左右,保存為micnnmodel


然后卷積層換成有填充卷積,(具體操作是刪除掉原卷積層然后換上有填充的卷積層,遷移權(quán)重),再加上最大池化

micnnmodel測試結(jié)果:
正常組

平移組


micnnmodel1(全局最大池化做預(yù)測):
正常組

平移組


這模型一看就不合理、不靠譜,根據(jù)上面的分析,平移不變性是建立在原模型的"中心感"上,但是看這情況,似乎原模型稍微有點(diǎn)過擬合了,中心感倒是有一點(diǎn),稍微有那么一點(diǎn)提升吧
現(xiàn)在有一個新的模型,它與上面幾乎一樣,不同的是它最后一層是28x28的平均池化,現(xiàn)在我們有一個圖像以及它的小范圍平移圖像(不超出邊界),因?yàn)槠揭茍D像與原圖只相差一小部分距離,所以將28x28中平移變換應(yīng)用于它們身上之后產(chǎn)生的兩個圖集的交集很大,所以兩個圖像經(jīng)過最后一層卷積層時輸出的特征圖集有一大部分是相同的,再經(jīng)過平均池化,最終的兩個輸出值也相差不多




micnnmodel2(全局平均池化做預(yù)測):
正常組

平移組


看起來要比第一種的要正常,它是滿足概率分布的,因?yàn)?84個預(yù)測結(jié)果都是滿足概率分布的,平均之后肯定也滿足概率分布
改進(jìn)版全局平均池化做預(yù)測
我在后來看到了Darknet19模型,

它和micnnmodel2一樣也是用全局平均池化,但是它似乎和我的想法不同,在我的想法中,平均池化的上一層卷積就是用來做預(yù)測的,所以它是一個全局卷積,但Darknet19這種不同,平均池化的上一層不是全局卷積,我試著理解這種想法:如果我們將Darknet19訓(xùn)練地很好(準(zhǔn)確率很高,損失很低,依舊使用分類物體在中心的數(shù)據(jù)集),那么我們將輸入圖片平移一小段距離,如果此命題成立:“將輸入圖像平移,卷積網(wǎng)絡(luò)的特征圖也做相同的變換”,那么將平移后的特征圖與之前的特征的像素平均后再softmax輸出,很自然地,它們的數(shù)值應(yīng)該是相當(dāng)接近的。顯然,這樣的方法更合理,我的想法畫蛇添足了
類Darknet網(wǎng)絡(luò)結(jié)構(gòu)



micnnmodel3測試結(jié)果
正常組

平移組


如果此命題成立:“將輸入圖像平移,卷積網(wǎng)絡(luò)的特征圖也做相同的變換”,可以預(yù)想,但圖片做旋轉(zhuǎn)變換后,網(wǎng)絡(luò)輸出的特征圖也做了旋轉(zhuǎn)變換,那么原圖與變換后的圖的像素值的平均也會差不多,這就實(shí)現(xiàn)了旋轉(zhuǎn)不變性!