AlexNet總結


https://blog.csdn.net/Rasin_Wu/article/details/80017920

https://blog.csdn.net/chaipp0607/article/details/72847422


AlexNet

AlexNet在2012年的ImageNet圖像分類大賽中奪得第一名,將top-5錯誤率瞬間提升了百分之十以上。之后,CNN重回歷史舞台。 首先看一下它的網絡結構:

 

AlexNet網絡結構這是論文中的給出的結構圖,看起來很復雜,我們簡化一下。AlexNet網絡結構這是吳恩達深度學習課程中給出的講義(注意這里輸入的是的{227* 227 * 3}格式,與論文中有所不同,但是對網絡結構沒有影響)。

 

AlexNet的網絡結構

  1. Conv_1: 卷積層,輸入:{227 *227 *3},使用{96}{11 * 11 * 3}核卷積,步長為{4},卷積之后長寬為{\lfloor\frac{227-11}{4}\rfloor+1 = 55},所以輸出格式為{55 * 55 * 96}

  2. Max-pooling:輸入為{ 55 * 55 * 96},pool:{3 * 3 },步長為:2,所以pool之后長寬為:{\lfloor\frac{55 - 3}{2}\rfloor + 1 = 27},輸出為:{27 * 27 * 96}

  3. Conv_2:卷積層,輸入:{27 * 27 * 96},使用{256}{5 * 5 * 96},步長為{1},padding為same. Padding常用的有兩種same,valid:

    • SAME padding:

      {outheight = \lceil\frac{float(inheight)}{float(strides[1])}\rceil}

      {outwidth =\lceil\frac{float(in_width)}{float(strides[2])}\rceil}

    • VALID padding:

      {outheight = \lceil\frac{float(inheight - filterheight)}{ float(strides[1])}\rceil + 1} {outwidth = \lceil\frac{float(inwidth - filterwidth )}{float(strides[2])}\rceil + 1}

    所以此時Padding為左右兩邊均是{2}。輸出結果:{27 * 27 *256}.

  4. Max-pooling:輸入為:{27 * 27 *256},pool為{3 * 3 },步長為{2},長度為:{\lfloor\frac{27 - 3}{2}\rfloor + 1 = 13},輸出結果為:{13 * 13 * 256}

  5. Conv_3,Conv_4,Conv_5:輸入輸出均為{13 * 13 * 256},步長為{1},核為{3 * 3 * 256},Padding為Same。

  6. Max-pooling:輸入{13 * 13 * 256},pool:{3 * 3},步長為{2}輸出結果為{6 * 6 * 256},也就是{9216}個特征變量。

  7. FC:全連接層有兩個隱藏層,從{9216 \Rightarrow 4096 \Rightarrow 4096 \Rightarrow_{softmax}   1000}

AlexNet高性能的解釋

  1. 非線性激活函數:ReLU
  2. 防止過擬合的方法:Dropout,Data augmentation
  3. 大數據訓練:百萬級ImageNet圖像數據
  4. 其他:GPU實現,LRN歸一化層的使用

ReLU

優點:

  1. ReLU本質上是分段線性模型,前向計算非常簡單,無需指數之類操作;
  2. ReLU的偏導也很簡單,反向傳播梯度,無需指數或者除法之類操作;
  3. ReLU不容易發生梯度發散問題,Tanh和Logistic激活函數在兩端的時候導數容易趨近於零,多級連乘后梯度更加約等於0;
  4. ReLU關閉了右邊,從而會使得很多的隱層輸出為0,即網絡變得稀疏,起到了類似L1的正則化作用,可以在一定程度上緩解過擬合。

缺點:

左邊全部關了很容易導致某些隱藏節點永無翻身之日,所以后來又出現pReLU、random ReLU等改進,而且ReLU會很容易改變數據的分布,因此ReLU后加Batch Normalization也是常用的改進的方法。

Data Augmentation

  1. 從原始圖像(256,256)中,隨機的crop出一些圖像(224,224)。【平移變換,crop】
  2. 水平翻轉圖像。【反射變換,flip】
  3. 給圖像增加一些隨機的光照。【光照、彩色變換,color jittering】

AlexNet 訓練的時候,在data augmentation上的處理:

  1. 隨機crop。訓練時候,對於256*256的圖片進行隨機crop到224*224,然后允許水平翻轉,那么相當與將樣本倍增到{((256-224)^2)*2=2048}
  2. 測試時候,對左上、右上、左下、右下、中間做了5次crop,然后翻轉,共10個crop,之后對結果求平均。作者說,不做隨機crop,大網絡基本都過擬合(under substantial overfitting)。
  3. 對RGB空間做PCA,然后對主成分做一個{(0, 0.1)}的高斯擾動。結果讓錯誤率又下降了1%。

Dropout

結合多個訓練模型可以減少測試誤差,但是在神經網絡中,訓練每個模型都需要大量的時間,代價昂貴。Dropout通過在隱藏層中以rate概率隨機將部分神經元輸出設置為0,這些神經元既不參於前向傳播,也不參與反向傳播。所以每次提出一個輸入,該神經網絡就嘗試一個不同的結構,但是所有這些結構之間共享權重。因為神經元不能依賴於其他特定神經元而存在,所以這種技術降低了神經元復雜的互適應關系。在測試時只需要除以{\frac{1}{1-rate}}

Local Response Normalization

 

LRN局部響應歸一化原理是仿造生物學上活躍的神經元對相鄰神經元的抑制現象(側抑制)。

 

本質上,這個層也是為了防止激活函數的飽和的。

  1. {n=5} 是神經元的影響范圍。
  2. {k=2,\alpha=10^{-4},\beta=0.75}是超參數。

參考資料:

 

 


 

參考文章:
https://www.cnblogs.com/gongxijun/p/6027747.html
https://blog.csdn.net/hjimce/article/details/50413257https://blog.csdn.net/taoyanqi8932/article/details/71081390--------------------- 作者:Rasin_Wu 來源:CSDN 原文:https://blog.csdn.net/Rasin_Wu/article/details/80017920 版權聲明:本文為博主原創文章,轉載請附上博文鏈接!


免責聲明!

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



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