19 卷積層【動手學(xué)深度學(xué)習(xí)v2】

圖片識別兩原則:
·平移不變性:需要識別的對象特征不會因為在圖片上位置的改變而改變。
·局部性:無需獲取整個圖片的全部信息即可找到識別對象。

卷積是一種特殊的全連接層。
一般的全連接層輸入輸出的是數(shù)列。
卷積層輸入輸出矩陣信息。(矩陣信息可以很好地保留圖片上像素的位置信息)
具體的說,卷積層可以將輸入的形狀為(k,l)的矩陣轉(zhuǎn)換為形狀(i,j)的矩陣。所以卷積層參數(shù)w要變?yōu)樗木S(i,j,k,l)的形狀。即輸入和輸出矩陣對應(yīng)的長寬值。

上圖中v是對w的重新索引,可理解為卷積核的移動。
利用平移不變性進(jìn)行更深入的理解:
卷積核v應(yīng)該是相同的,與位置(i, j)無關(guān)

利用局部性進(jìn)行更深入的理解:
卷積核的大小應(yīng)該是有限制的

卷積層
卷積層工作原理圖示
嚴(yán)格來說,卷積層是個錯誤的叫法,因為它所表達(dá)的運算其實是互相關(guān)運算(cross-correlation),而不是卷積運算。


不同的卷積核會產(chǎn)生不同的效果:

其他維度的卷積網(wǎng)絡(luò)

卷積算法總結(jié)

代碼實現(xiàn)
X為輸入,K為卷積核

檢驗卷積核性能

構(gòu)建卷積層

卷積層使用例:識別垂直邊緣
構(gòu)建一個形狀為(1,2)的卷積核,使得其在掃過圖像中的垂直邊緣時返回非0值。


用Pytorch自帶的卷積網(wǎng)絡(luò)功能nn.Conv2d()進(jìn)行參數(shù)學(xué)習(xí)
其中的1,1是指輸入和輸出通道數(shù),本課僅涉及黑白圖片所以都是1
對X與Y進(jìn)行reshape:分別為通道維:通道數(shù),RGB圖3通道,灰度圖1通道,批量維就是樣本維,就是樣本數(shù),在此例子中都是1.

訓(xùn)練結(jié)果
epoch 2, loss 15.223 epoch 4, loss 5.325 epoch 6, loss 2.029 epoch 8, loss 0.805 epoch 10, loss 0.326

知識補充:
損失曲線抖動嚴(yán)重,可能是因為數(shù)據(jù)多樣性較大,或者因為學(xué)習(xí)率設(shè)置過大。