一、卷積神經網絡參數計算
CNN一個牛逼的地方就在於通過感受野和權值共享減少了神經網絡需要訓練的參數的個數,所謂權值共享就是同一個Feature Map中神經元權值共享,該Feature Map中的所有神經元使用同一個權值。因此參數個數與神經元的個數無關,只與卷積核的大小及Feature Map的個數相關。但是共有多少個連接個數就與神經元的個數相關了,神經元的個數也就是特征圖的大小。
下面以最經典的LeNet-5例子來逐層分析各層的參數及連接個數。
C1層是一個卷積層,由6個特征圖Feature Map構成。特征圖中每個神經元與輸入為5*5的鄰域相連。特征圖的大小為28*28,這樣能防止輸入的連接掉到邊界之外(32-5+1=28)。C1有156個可訓練參數(每個濾波器5*5=25個unit參數和一個bias參數,一共6個濾波器,共(5*5+1)*6=156個參數),共156*(28*28)=122,304個連接。
S2層是一個下采樣層,有6個14*14的特征圖。特征圖中的每個單元與C1中相對應特征圖的2*2鄰域相連接。S2層每個單元的4個輸入相加,乘以一個可訓練參數,再加上一個可訓練偏置。每個單元的2*2感受野並不重疊,因此S2中每個特征圖的大小是C1中特征圖大小的1/4(行和列各1/2)。S2層有12(6*(1+1)=12)個可訓練參數和5880(14*14*(2*2+1)*6=5880)個連接。
C3層也是一個卷積層,它同樣通過5x5的卷積核去卷積層S2,然后得到的特征map就只有10x10個神經元,但是它有16種不同的卷積核,所以就存在16個特征map了。 C3中每個特征圖由S2中所有6個或者幾個特征map組合而成。為什么不把S2中的每個特征圖連接到每個C3的特征圖呢?原因有2點。第一,不完全的連接機制將連接的數量保持在合理的范圍內。第二,也是最重要的,其破壞了網絡的對稱性。由於不同的特征圖有不同的輸入,所以迫使他們抽取不同的特征(希望是互補的)。
例如,存在的一個方式是:C3的前6個特征圖以S2中3個相鄰的特征圖子集為輸入。接下來6個特征圖以S2中4個相鄰特征圖子集為輸入。然后的3個以不相鄰的4個特征圖子集為輸入。最后一個將S2中所有特征圖為輸入。這樣C3層有1516(6*(3*25+1)+6*(4*25+1)+3*(4*25+1)+(25*6+1)=1516)個可訓練參數和151600(10*10*1516=151600)個連接。
S4層是一個下采樣層,由16個5*5大小的特征圖構成。特征圖中的每個單元與C3中相應特征圖的2*2鄰域相連接,跟C1和S2之間的連接一樣。S4層有32個可訓練參數(每個特征圖1個因子和一個偏置16*(1+1)=32)和2000(16*(2*2+1)*5*5=2000)個連接。
C5層是一個卷積層,有120個特征圖。每個單元與S4層的全部16個單元的5*5鄰域相連。由於S4層特征圖的大小也為5*5(同濾波器一樣),故C5特征圖的大小為1*1(5-5+1=1):這構成了S4和C5之間的全連接。之所以仍將C5標示為卷積層而非全相聯層,是因為如果LeNet-5的輸入變大,而其他的保持不變,那么此時特征圖的維數就會比1*1大。C5層有48120(120*(16*5*5+1)=48120由於與全部16個單元相連,故只加一個偏置)個可訓練連接。
F6層有84個單元(之所以選這個數字的原因來自於輸出層的設計),與C5層全相連。有10164(84*(120*(1*1)+1)=10164)個可訓練參數。如同經典神經網絡,F6層計算輸入向量和權重向量之間的點積,再加上一個偏置。然后將其傳遞給sigmoid函數產生單元i的一個狀態。
最后,輸出層由歐式徑向基函數(Euclidean Radial Basis Function)單元組成,每類一個單元,每個有84個輸入。
二、神經網絡時間復雜度和空間復雜度(參數量計算和計算量計算)
三、卷積層輸出尺寸計算
先定義幾個參數
- 輸入圖片大小 W×W
- Filter大小 F×F
- 步長 S
- padding的像素數 P
則輸出為N*N,其中N = (W − F + 2P )/S+1。具體計算如下:
卷積中的特征圖大小計算方式有兩種,分別是‘VALID’和‘SAME’,卷積和池化都適用,除不盡的結果都向上取整。
1.如果計算方式采用'VALID',則:
其中為輸出特征圖的大小,
為輸入特征圖的大小,F為卷積核大小,stride為卷積步長。
2.如果計算方式采用'SAME',輸出特征圖的大小與輸入特征圖的大小保持不變,
其中padding為特征圖填充的圈數。若采用'SAME'方式,kernel_size=1時,padding=0;kernel_size=3時,padding=1;kernel_size=5時,padding=3,以此類推。
轉自:
https://blog.csdn.net/gloriazhang2013/article/details/71426871
https://blog.csdn.net/gubenpeiyuan/article/details/81561262
https://blog.csdn.net/HelloZEX/article/details/81109136