1、caffeNet與AlexNet結構區別:norm1,pool1,以及norm2,pool2互換了順序
1. 基本結構
a. 共有8層,其中前5層convolutional,後邊3層full-connected ,最後的一個full-connected層的output是具有1000個輸出的softmax,最後的優化目標是最大化平均的multinomial logistic regression
b. 在第一層conv1和conv2之後直接跟的是Response-nomalization layer,也就是norm1,norm2層。
c. 在每一個conv層以及full-connected層後緊跟的操作是ReLU操作。
d. Max pooling操作是緊跟在第一個norm1,norm2,以及第5個conv層,也就是conv5
e.Dropout操作是在最後兩個full-connected層。
2. 操作流程
a. 在第一個conv層(conv1)中,AlexNet採用了96個11*11*3的kernel在stride爲4的情況下對於224*224*3的圖像進行了濾波。直白點就是採用了11*11的卷積模板在三個通道上,間隔爲4個像素的採樣頻率上對於圖像進行了卷積操作。4個像素是receptive field中心在kernel map上的距離,這是個經驗數據。
最初的輸入神經元的個數爲224*224*3 = 150528個。對於每一個map來說,間隔爲4,因此224/4 = 56,然後減去邊緣的一個爲55個,也就是本層的map大小爲55*55,然後神經元數目爲55*55*96 = 290400(原文中是253440,這個不太理解,有知道的請告知)
得到基本的conv數據後,則進行一次ReLU(relu1)以及Norm(norm1)的變換後,然後進行pooling(pool1),作爲輸出傳遞到下一層。
本層map數目爲96.
b.第二個conv層(conv2)是第一個conv層(conv1)經過norm(norm1)以及pool(pool1)後,然後再apply 256個5*5的卷積模板卷積後的結果。
pool1後,map的size減半int(55/2)= 27,得到的本層的神經元數目爲27*27*256 = 186642個。
本層map數目爲256個。
c. 第三個conv層(conv3)的生成過程和第二層類似,不同的是這一層是apply 384個3*3的卷積模板得到的。
pool2後,map的size減半int(27/2) = 13,得到本層神經元數目爲13*13*384 = 64896。
本層map數目爲384個。
d. 第四個conv層(conv4)是第三個conv層(conv3)進行一次ReLU(relu3)後,然後直接apply 384個3*3的卷積模板得到的。
本層神經元的數目爲13*13*384 = 64896。
本層map數目爲384個,size還是13*13.
e. 第五個conv層(conv5)與第四個生成類似,只是對上層進行了一個ReLU(relu4)後生成的,不同之處在於此處apply的卷積模板爲256個3*3的。
本層神經元的數目爲13*13*256 = 43264。
本層map數目爲256個,size還是13*13。
f. 第一個full-connected層(fc6)是上一個conv層(conv5)進行pooling(pool5)後的全連接。
pool5後,map的size減半int(13/2) = 6,上層基本連接爲6*6*256,然後全連接後到4096個節點,本層最終節點爲4096個。
g.第二個full-connected層(fc7)是上一個full-connected(fc6)進行ReLU(relu6)後,然後進行dropout(drop6)後再進行全連接的結果
本層節點數目爲4096個。
h.最後一個full-connetcted層(fc8)則是上一個full-connected層(fc7)再次進行ReLU(relu7)以及dropout(drop7)後再進行全連接的結果。最後輸出爲融合label的softmax loss。
本層節點數目爲1000個,對應着1000類對象。
在下面將對於AlexNet的原理進行以及算法的執行細節進行分析。