AlexNet總結

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

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


AlexNet

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

 

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

 

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}..net

  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.htmlhttps://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 版權聲明:本文爲博主原創文章,轉載請附上博文連接!

相關文章
相關標籤/搜索