1夹厌、卷積
這幅圖是對一個5*5的矩陣A進(jìn)行3*3的矩陣B的卷積,那么就從最上角到右下角谱煤,生成卷積之后的矩陣的大小是(5-3+1)*(5-3+1)的矩陣噪服,生成之后的矩陣的元素值,是之前的兩個矩陣對應(yīng)元素的乘積之和恨诱,這個在matlab中有現(xiàn)成的命令媳瞪,但是用之前需要注意下,比如在圖中這樣的B的話要首先進(jìn)行B中元素左右和上下的對調(diào)才可以滿足右側(cè)矩陣的結(jié)果胡野。這個是matlab中進(jìn)行卷積計算的命令要求的材失,并且這個命令還有第三個參數(shù)痕鳍,如圖中使用的是valid參數(shù)值硫豆,具體的用法還請doc來了解吧。
2笼呆、池化
比如上方左側(cè)矩陣A是20*20的矩陣要進(jìn)行大小為10*10的池化熊响,那么左側(cè)圖中的紅色就是10*10的大小,對應(yīng)到右側(cè)的矩陣诗赌,右側(cè)每個元素的值汗茄,是左側(cè)紅色矩陣每個元素的值得和再除以紅色矩陣的元素個數(shù),也就是平均值形式的池化铭若。
3洪碳、上面說了下卷積和池化,再說下計算中需要注意到的叼屠。在代碼中使用的是彩色圖瞳腌,彩色圖有3個通道,那么對于每一個通道來說要單獨(dú)進(jìn)行卷積和池化镜雨,有一個地方尤其是進(jìn)行卷積的時候要注意到嫂侍,隱藏層的每一個值是對應(yīng)到一幅圖的3個通道穿起來的,所以分3個通道進(jìn)行卷積之后要加起來荚坞,正好才能對應(yīng)到一個隱藏層的神經(jīng)元上挑宠,也就是一個feature上去。
ps:在做這個實驗的過程中颓影,遇到了個2B的問題各淀。我的代碼中對convolution和pooling的check都過去了,但是準(zhǔn)確率只有25%诡挂,反正中間使用了很多方法來找我的錯誤碎浇,最后都沒找到疗我,最終和同學(xué)的代碼對比,一個文件一個文件的替換來跑(為了快速找到問題南捂,把數(shù)據(jù)規(guī)模以及隱藏層的個數(shù)都調(diào)小了的)吴裤,最終發(fā)現(xiàn)是池化的時候的問題,我把問題原因貼在這里溺健,在池化的過程中麦牺,代碼應(yīng)該是這樣子的:
而我寫成了(注意紅色部分)
但是這個代碼被check過了沒問題,我去看了下check的代碼鞭缭,這個代碼是給出的:
也就是這個測試矩陣的features為1剖膳,numImages也是1,所以在我的代碼中這個問題正好被隱藏掉了岭辣,導(dǎo)致我的check是顯示congratulations的吱晒,因為也導(dǎo)致我就壓根沒想到是這個地方錯誤的。沦童。
reshape是一種函數(shù)仑濒,函數(shù)可以重新調(diào)整矩陣的行數(shù)、列數(shù)偷遗、維數(shù)墩瞳。在matlab命令窗口中鍵入doc reshape或help reshape即可獲得該函數(shù)的幫助信息。
A =
1 4 7 10
2 5 8 11
3 6 9 12
B = reshape(A,2,6)
B =
1 3 5 7 9 11
2 4 6 8 10 12
B = reshape(A,2,[])
B =
1 3 5 7 9 11
2 4 6 8 10 12
原文鏈接:http://blog.csdn.net/errors_in_life/article/details/65950699