AlexNet筆記

AlexNet的一些參數:

卷積層:5層
全連接層:3層
深度:8層
參數個數:60M
神經元個數:650k
分類數目:1000類
由於當時的顯卡容量問題,AlexNet 的60M個參數無法全部放在一張顯卡上操作,所以採用了兩張顯卡分開操作的形式,其中在C3,R1,R2,R3層上出現交互,所謂的交互就是通道的合併,是一種串接操作。

AlexNet的結構圖:

Alexnet結構圖

AlexNet 網絡參數計算

按照公式推算了一下感受野和特徵層的大小。

網絡層 感受野 卷積核個數 卷積核尺寸 步長 padding feature_map
conv 227*227 48*2 11*11 *3 4 2 227*227
max pooling 55*55 48*2 3*3 *3 2 - 56*56
conv 27*27 48*2 5*5 *48 1 2 27*27
max pooling 25*25 128*2 3*3 *48 2 - 27*27
conv 12*12 192*2 3*3 *128 1 1 13*13
conv 10*10 192*2 3*3 *192 1 1 13*13
conv 8*8 128*2 3*3 *192 1 1 13*13
max pooling 6*6 128*2 3*3 *128 2 - 6*6
fc - 2048*2 6*6 *256 - - -
fc - 2048*2 1*1 *4096 - - -
fc - 1000 1*1 *4096 - - -

技術

技術創新 具體細節 - -
數據增強方法 隨機裁剪(256-227) 水平翻轉 亮度,色彩變化(貓狗)
激活函數 Relu代替Sigmoid 解決較深網絡中sigmoid梯度彌散的問題
網絡創新 在全連接層後使用0.5的dropout 緩解過擬合的問題 網絡的收斂速度快了很多
- 重疊pooling窗口 使用池化窗口是大小爲3×3,步幅爲2。在輸出尺寸相同的情況下,與使用大小爲2×2,步幅爲2的非重疊池化窗口相比,重疊池化窗口能夠分別將第一名的錯誤率降低0.4%,第5名的錯誤率降低0.3%
- 局部響應歸一化(LRN) 對局部神經元創建了競爭的機制,使得其中響應較大的值變得更大,並抑制反饋較小的(強者更強,弱者更弱) 評價不高,基本棄用
訓練方式 多GPU訓練 硬件資源有限,將feature maps分給兩個GPU分別處理,最後把兩個GPU的結果在某些層融合。

說明

感受野計算公式(不考慮padding,從下往上反推)

rfsize = (output - 1) * stride + ksize

Feature Map的尺寸計算公式

fm(output)=(input_size + 2 * padding_size − ksize)/stride+1

卷積核的厚度=被卷積的圖像的通道數 (卷積後三通道合爲1)
卷積核的個數=卷積操作後輸出的通道數 (即feature map的通道數)
全連接概念

拿第一層全連接層舉例,該操作其實就是用2048個13*13 *256(256是池化層的厚度)的卷積核卷積出來的,對於輸入的每一張特徵圖,都使用一個和圖像大小一樣的核卷積進行點積運算,這樣整幅圖就變成了一個數了,如果厚度是256就是那256個核卷積完了之後相加求和。這樣就能把一張圖高度濃縮成一個數了。

Dense層就是全連接層,其實現的就是下列計算:
output = activation(dot(input, kernel)+bias)
activation是激活函數,kernel即爲卷積核即權重w
由於全連接參數實在太多,現在儘量避免全連接,使用全局平均值也就是最後那一層的feature map(最後一層卷積的輸出結果),直接求平均值,即全局平均池化。
全局平均池化就是用 feature map 直接表示屬於某個類的 confidence map,比如最後輸出7* 7* 512,每個feature map中的值加起來求平均值,變爲1* 1* 512 。然後把得到的這些平均值,再經過全連接輸入softmax中分類, 更重要的是實驗效果並不比直接用 FC 差。使用全局平均池化的重點主要是減少計算量,圖中第二個計算應爲16.

損失函數

權值w與偏置b,是網絡中需要學習的參數,也就相當於擬合y=w*x+b中的待求參數w和b。其目標函數即爲損失函數loss,網絡訓練的目標就是通過調整每一個權值Wij使得Loss達到最小,loss函數可以看成是由所有待求權值Wij爲自變量的複合函數,會有很多局部最小值,梯度下降法可以求解最小化loss函數的問題。
設loss函數 L(W11,W12,⋯,Wij,⋯,Wmn) ,要求loss函數的梯度,我們需求出loss函數L對每一個權值Wij的偏導數。而BP算法正是用來求解這種多層複合函數的所有變量的偏導數的利器。

參考文獻:

[1]: 從AlexNet理解卷積神經網絡的一般結構
[2]: 卷積神經網絡中全連接層工作原理的解釋
[3]: 對於全連接層的理解 全連接層的推導
[4]: 前向傳播算法(Forward propagation)與反向傳播算法(Back propagation)
[5]: AlexNet 學習筆記
[6]: 對全局平均池化(GAP)過程的理解

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章