caffe study- AlexNet 之結構篇
【原文:http://blog.sina.com.cn/s/blog_eb3aea990102v47i.html】
在2012年的時候,Geoffrey和他學生Alex為了迴應質疑者,在ImageNet的競賽中出手了,重新整理了image classification的記錄,一舉奠定了deep learning 在計算機視覺中的地位。後邊的故事大家都知道了,deep
learning一統天下,所向披靡。
在這次競賽中Alex所用的結構被稱為作為AlexNet。本部分首先介AlexNet的基本的architecture,在後邊的學習中將分析其演算法的基本原理以及引數細節。
針對2012年的這組資料集caffe也定義了自己的結構,被稱為caffeNet,文件中說在迭代30多w次的的情況下精度大概提高了0.2個百分點。下面是兩個Net的結構圖,它們的區別在於norm1,pool1,以及norm2,pool2互換了順序。
下面來看一下AlexNet的結構。在Alex的論文中,其基本結構為
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的原理進行以及演算法的執行細節進行分析。
相關文章
- caffe study(5) - AlexNet 之演算法篇演算法
- (2)caffe總結之目錄結構
- Caffe程式碼結構
- caffe學習(1)caffe模型三種結構模型
- caffe study - 資料結構(1)資料結構
- caffe的基本資料結構資料結構
- (14)caffe總結之Linux下Caffe如何除錯Linux除錯
- (11)caffe總結之命令列解析命令列
- AlexNet論文總結
- (8)caffe總結之solver及其配置
- 【Caffe篇】--Caffe solver層從初始到應用
- (4)caffe總結之視覺層及引數視覺
- (6)caffe總結之其它常用層及引數
- 如何在Caffe中配置每一個層的結構
- caffe 網路結構幾個部分簡單介紹
- 【Caffe篇】--Caffe從入門到初始及各層介紹
- 看得見的資料結構Android版之開篇前言+完篇總結資料結構Android
- 入門篇-其之十-流程控制之迴圈結構
- 目標檢測(5):手撕 CNN 經典網路之 AlexNet(理論篇)CNN
- 看得見的資料結構Android版之陣列表(資料結構篇)資料結構Android陣列
- 圖解Redis之資料結構篇——壓縮列表圖解Redis資料結構
- 圖解Redis之資料結構篇——整數集合圖解Redis資料結構
- 圖解Redis之資料結構篇——跳躍表圖解Redis資料結構
- windows 2000活動目錄之結構篇(轉)Windows
- Go語言流程控制之迴圈結構篇Go
- 看得見的資料結構Android版之雙連結串列篇資料結構Android
- 資料結構之連結串列篇(單連結串列的常見操作)資料結構
- (13)caffe總結之訓練和測試自己的圖片
- 【資料結構篇】認識資料結構資料結構
- 看得見的資料結構Android版之單連結串列篇資料結構Android
- 【資料結構導論之樹和二叉樹總結篇】資料結構二叉樹
- 【 XML 之總結篇】XML
- SQL之結束篇SQL
- 資料結構系列之LRU演算法理論篇資料結構演算法
- 看得見的資料結構Android版之棧篇資料結構Android
- 資料結構——開篇資料結構
- 深入 Nginx 之架構篇Nginx架構
- 精通MySQL之架構篇MySql架構