AlexNet網絡結構
AlexNet每層中的超參數數量:
其輸入、輸出及每層訓練參數計算如下:
層 | 輸入尺寸 | 卷積核大小 | 卷積核個數 | 步長 | 輸出尺寸 | 超參數數量 |
---|---|---|---|---|---|---|
Conv | 224x224x3 | 11x11x3 | 96 | 4 | (224-11)/4+1 = 54.25 ~ 55, 55x55x48x2,x2表示兩部分 | (3*11*11+1)*96=34944~35k |
Local Response Norm | - | - | - | - | - | - |
Max Pool | 55x55x48,兩塊GPU並行處理,每個處理48個feature maps | 3x3 | - | 2 | (55-3)/2+1=27, 27x27x48 | - |
Conv | 總輸入27x27x96,96表示feature maps個數,單個GPU 27x27x48,48個feature maps | 總共5x5x96,單個GPU爲 5x5x48 | 總共256,每個GPU128 | 1 | 卷積前經過padding使操作後尺寸不變,每個GPU輸出27x27x128 | (48*5*5+1)*128*2=307456~307k |
Local Response Norm | - | - | - | - | - | - |
Max Pool | 27x27x128,兩塊GPU並行處理,每個處理128個feature maps | 3x3 | - | 2 | (27-3)/2+1=13, 13x13x128 | - |
Conv | 總輸入13x13x256,256表示feature maps個數 | 3x3 | 192x2 | 1 | 卷積前經過padding使操作後尺寸不變,13x13x192 | (3*3*256+1)*192*2=885120 |
Conv | 總輸入13x13x384,單個GPU 13x13x192 | 3x3 | 192x2 | 1 | 卷積前經過padding使操作後尺寸不變,每個GPU輸出13x13x192 | (3*3*192+1)*192*2=663936 |
Conv | 1總輸入13x13x384,單個GPU 13x13x192 | 3x3 | 128x2 | 1 | 卷積前經過padding使操作後尺寸不變,每個GPU輸出13x13x128 | (3*3*192+1)*128*2=442624 |
Max Pool | 13x13x256 | 3x3 | - | 2 | (13-3)/2+1=6, 6x6x256 | - |
FC | 展平後43264x1 | - | - | - | 4096 | 43264*4096=177209344 |
FC | 4096x1 | - | - | - | 4096 | 16777216 |
AlexNet中的新技術:
(1) 使用了ReLU
解決了深層網絡使用Sigmoid出現梯度彌散的問題。
(2) 使用Dropout減輕過擬合
在兩個全連接層中使用了dropout。
幾種解析:
-
組合解析:
每次dropout相當於訓練一個子網絡;
最終結果相當於多個自網絡的組合。 -
動機解釋:
消除了神經元之間的依賴,增加泛化能力 -
數據解析:
對於dropout後的結果,總能找到與之對應點樣本,等價於數據增強
(3) 使用重疊最大池化
池化過程中使用的步長比池化核尺寸小,池化的輸出之間會有重疊和覆蓋。
(4) 提出LRN(local response norm 局部響應標準化)層
使響應比較大的值變得相對較大,抑制其他反饋小的神經元。但是其他網絡很少使用,因爲效果不明顯,還有一個問題就是導致前饋和反饋的速度大大降低。
(5) 使用了GPU進行加速
(6) 數據增強
對256x256尺寸的圖片隨機採樣出多張224x224尺寸的圖片用於訓練;
對圖片進行水平翻轉