AlexNet模型

一、AlexNet模型簡介
  上面對LeNet這個網絡模型進行了介紹,該模型對手寫數字是被具有較高的識別率,但是對於大數據量、複雜的物體圖片分類,該模型的效果還是遠遠達不到要求的。在此背景下,AlexNet模型被提出,該模型在2012年imagenet上的圖像分類challenge上贏得了的冠軍。AlexNet模型證明了CNN在複雜模型下的有效性,並使用GPU使得大數據訓練在可接受的時間範圍內得到結果。
  AlexNet模型的基本網絡結構如下圖所示:

這裏寫圖片描述

  該模型一共分爲八層,5個卷積層,,以及3個全連接層,有60M以上的參數量。在每一個卷積層中包含了激勵函數ReLu以及局部響應歸一化(LRN)處理,然後在經過降採樣(pooling處理),下面逐一的對每一層進行詳細分析。

二、AlexNet模型網絡層詳解
1、第一個卷積層
  第一層卷積層的結構如下圖所示:

這裏寫圖片描述

  第一層卷積層在caffe網絡中數據的轉化如下圖所示:

這裏寫圖片描述

  輸入Input的圖像規格: 224*224*3(RGB圖像),實際上會經過預處理變爲227*227*3。該層使用的96個大小規格爲11*11的過濾器filter(或卷積核)來進行特徵提取,(圖上之所以看起來是48個是由於採用了2個GPU服務器處理,每一個服務器上承擔了48個)。原始圖片爲RBG圖像,也就是三個通道的,我們這96個過濾器也是三通道的,也就是我們使用的實際大小規格爲11*11*3,也就是原始圖像是彩色的,我們提取到的特徵也是彩色的,在卷積的時候,我們會依據這個公式來提取特徵圖: [img_size - filter_size]/stride +1 = new_feture_size,所以這裏我們得到的特徵圖大小爲:([227-11] / 4 + 1 )= 55。所以我們得到的新的特徵圖規格爲55*55,注意這裏提取到的特徵圖是彩色的。這樣得到了96個55*55大小的特徵圖了,並且是RGB通道的。所以神經元數目爲55*55*96=290400。卷積層結束後, 使用Relu激勵函數,來確保特徵圖的值範圍在合理範圍之內。然後進行降採樣處理(pooling也稱池化),池化層的內核是3*3大小,該過程就是3*3區域的數據進行處理(求均值,最大/小值,就是區域求均值,區域求最大值,區域求最小值),通過降採樣處理,我們可以得到( [55-3] / 2 + 1 ) = 27 ,也就是得到96個27*27的特徵圖,然後再以這些特徵圖爲輸入數據,進行第二次卷積。
2、第二卷積層
  第二層卷積層的結構如下圖所示:

這裏寫圖片描述

  第二層卷積層在caffe網絡中數據的轉化如下圖所示:

這裏寫圖片描述

  conv2和conv1不同,conv2中使用256個5*5大小的過濾器filter對96*27*27個特徵圖,進行進一步提取特徵,但是處理的方式和conv1不同,過濾器是對96個特徵圖中的某幾個特徵圖中相應的區域乘以相應的權重,然後加上偏置之後所得到區域進行卷積,經過這樣卷積之後,而寬度高度兩邊都填充2像素,所以會得到一個新的256個特徵圖。故特徵圖的大小爲:([27+2*2 - 5]/1 +1) = 27 ,得到256個27*27大小的特徵圖。然後進行Relu操作,再進行降採樣(pooling操作)處理,得到[(27-3)/2 +1 ]= 13 ,所以得到256個13*13大小的特徵圖。
3、第三層卷積層
  第三層卷積層的結構如下圖所示:

這裏寫圖片描述

  第三層卷積層在caffe網絡中數據的轉化如下圖所示:

這裏寫圖片描述

  同樣,按照上面的方法進行計算,得到((13+2*1 -3)/1 +1 )= 13 , 384個13*13的新特徵圖。所以本層的神經元個數爲13*13*384=64896個。conv3沒有使用降採樣層(即池化層)。
4、第四層卷積層
  第四層卷積層的結構如下圖所示:

這裏寫圖片描述

  第四層卷積層在caffe網絡中數據的轉化如下圖所示:

這裏寫圖片描述

  同樣,按照上面的方法進行計算,得到((13+2*1 -3)/1 +1 )= 13 , 384個13*13的新特徵圖。所以本層的神經元個數爲13*13*384=64896個。conv3沒有使用降採樣層(即池化層)。
5、第五層卷積層
  第五層卷積層的結構如下圖所示:

這裏寫圖片描述

  第五層卷積層在caffe網絡中數據的轉化如下圖所示:

這裏寫圖片描述

  同樣,按照上面的計算方法,計算得到256個13*13個特徵圖,然後進行降採樣層pooling,計算得到最終的輸出爲256個6*6的特徵圖。
6、第一個全連接層
  第一層全連接層如下圖所示:

這裏寫圖片描述

  第一個全連接層在caffe網絡中數據的轉化如下圖所示:

這裏寫圖片描述

  這裏使用4096個神經元,對256個大小爲6*6特徵圖,進行一個全鏈接,也就是將6*6大小的特徵圖,進行卷積變爲一個特徵點,然後對於4096個神經元中的一個點,是由256個特徵圖中某些個特徵圖卷積之後得到的特徵點乘以相應的權重之後,再加上一個偏置得到。之後進行池化,然後再進行dropout(隨機從4096個節點中丟掉一些節點信息,也就是值清0。),最後得到一個新的4096個神經元。
7、第二個全連接層
  和fc6基本上一樣。數據轉化如下圖所示:

這裏寫圖片描述

8、第三個全連接層

這裏寫圖片描述

  採用的是1000個神經元,然後對fc7中4096個神經元進行全連接,然後會通過利用softmax,得到1000個float型的值,這是我們所看到的預測的可能性。在訓練模型時,會通過標籤label進行對比誤差,然後求解出殘差,再通過鏈式求導法則,將殘差通過求解偏導數逐步向前傳遞,並將權重進行倒推更改,類似與BP網絡思想,然後會逐層逐層的調整權重以及偏置。
三、AlexNet模型的特點
AlexNet模型能取得成功是因爲它有以下的創新點:
  (1)大數據訓練,百萬級ImageNet圖像數據輸入。
  (2)多GPU訓練。
  (3)LRN局部響應歸一化。
  (4)重疊池化。
  (5)採用Dropout來避免過擬合。
  (6)非線性激活函數,使用Relu非線性函數收斂的速度更快。

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