AlexNet神經網絡結構


Alexnet是2014年Imagenet競賽的冠軍模型,准確率達到了57.1%, top-5識別率達到80.2%。

AlexNet包含5個卷積層和3個全連接層,模型示意圖:



精簡版結構:



conv1階段


輸入數據:227×227×3

卷積核:11×11×3;步長:4;數量(也就是輸出個數):96
卷積后數據:55×55×96  (原圖N×N,卷積核大小n×n,卷積步長大於1為k,輸出維度是(N-n)/k+1)
relu1后的數據:55×55×96
Max pool1的核:3×3,步長:2
Max pool1后的數據:27×27×96
norm1:local_size=5  (LRN(Local Response Normalization) 局部響應歸一化)
最后的輸出:27×27×96

AlexNet采用了Relu激活函數,取代了之前經常使用的S函數和T函數,Relu函數也很簡單:

ReLU(x) = max(x,0)

AlexNet另一個創新是LRN(Local Response Normalization) 局部響應歸一化,LRN模擬神經生物學上一個叫做 側抑制(lateral inhibitio)的功能,側抑制指的是被激活的神經元會抑制相鄰的神經元。LRN局部響應歸一化借鑒側抑制的思想實現局部抑制,使得響應比較大的值相對更大,提高了模型的泛化能力。
LRN只對數據相鄰區域做歸一化處理,不改變數據的大小和維度。

LRN概念是在AlexNet模型中首次提出,在GoogLenet中也有應用,但是LRN的實際作用存在爭議,如在2015年Very Deep Convolutional Networks for Large-Scale Image Recognition 論文中指出LRN基本沒什么用。


AlexNet還應用了Overlapping(重疊池化),重疊池化就是池化操作在部分像素上有重合。池化核大小是n×n,步長是k,如果k=n,則是正常池化,如果 k<n, 則是重疊池化。官方文檔中說明,重疊池化的運用減少了top-5和top-1錯誤率的0.4%和0.3%。重疊池化有避免過擬合的作用。

conv2階段


輸入數據:27×27×96

卷積核:5×5;步長:1;數量(也就是輸出個數):256
卷積后數據:27×27×256  (做了Same padding(相同補白),使得卷積后圖像大小不變。)
relu2后的數據:27×27×256
Max pool2的核:3×3,步長:2
Max pool2后的數據:13×13×256   ((27-3)/2+1=13 )
norm2:local_size=5  (LRN(Local Response Normalization) 局部響應歸一化)
最后的輸出:13×13×256

在AlexNet的conv2中使用了same padding,保持了卷積后圖像的寬高不縮小。


conv3階段


輸入數據:13×13×256

卷積核:3×3;步長:1;數量(也就是輸出個數):384
卷積后數據:13×13×384  (做了Same padding(相同補白),使得卷積后圖像大小不變。)
relu3后的數據:13×13×384
最后的輸出:13×13×384

conv3層沒有Max pool層和norm層

conv4階段


輸入數據:13×13×384

卷積核:3×3;步長:1;數量(也就是輸出個數):384
卷積后數據:13×13×384  (做了Same padding(相同補白),使得卷積后圖像大小不變。)
relu4后的數據:13×13×384
最后的輸出:13×13×384

conv4層也沒有Max pool層和norm層

conv5階段


輸入數據:13×13×384

卷積核:3×3;步長:1;數量(也就是輸出個數):256
卷積后數據:13×13×256  (做了Same padding(相同補白),使得卷積后圖像大小不變。)
relu5后的數據:13×13×256
Max pool5的核:3×3,步長:2
Max pool2后的數據:6×6×256   ((13-3)/2+1=6 )
最后的輸出:6×6×256

conv5層有Max pool,沒有norm層

fc6階段


輸入數據:6×6×256

全連接輸出:4096×1
relu6后的數據:4096×1
drop out6后數據:4096×1
最后的輸出:4096×1

AlexNet在fc6全連接層引入了drop out的功能。dropout是指在深度學習網絡的訓練過程中,對於神經網絡單元,按照一定的概率(一般是50%,這種情況下隨機生成的網絡結構最多)將其暫時從網絡中丟棄(保留其權值),不再對前向和反向傳輸的數據響應。注意是暫時,對於隨機梯度下降來說,由於是隨機丟棄,故而相當於每一個mini-batch都在訓練不同的網絡,drop out可以有效防止模型過擬合,讓網絡泛化能力更強,同時由於減少了網絡復雜度,加快了運算速度。還有一種觀點認為drop out有效的原因是對樣本增加來噪聲,變相增加了訓練樣本。

fc7階段


輸入數據:4096×1

全連接輸出:4096×1
relu7后的數據:4096×1
drop out7后數據:4096×1
最后的輸出:4096×1

fc8階段


輸入數據:4096×1

全連接輸出:1000


fc8輸出一千種分類的概率。



AlexNet與在其之前的神經網絡相比改進:


1. 數據增廣(Data Augmentation增強)

常用的數據增強的方法有 水平翻轉、隨機裁剪、平移變換、顏色、光照、對比度變換


2. Dropout

有效防止過擬合。


3. Relu激活函數

用ReLU代替了傳統的S或者T激活函數。


4. Local Response Normalization 局部響應歸一化

參考了生物學上神經網絡的側抑制的功能,做了臨近數據歸一化,提高來模型的泛化能力,這一功能的作用有爭議。


5. Overlapping Pooling 重疊池化
重疊池化減少了系統的過擬合,減少了top-5和top-1錯誤率的0.4%和0.3%。


6. 多GPU並行訓練

AlexNet將網絡分成了上下兩部分,兩部分的結構完全一致,這兩部分由兩塊不同的GPU來訓練,提高了訓練速度。AlexNet大約有6000萬個參數。



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM