AlexNet論文理解

下面是本人關於AlexNet論文的一些個人理解

首先來看看AlexNet的網絡結構圖,圖片來自百度百科

 

 由AlexNet的網絡結構圖我們可以看出,相比較於在李宏毅等網絡課程上看到的卷積神經網絡結構,這個AlexNet的結構有着些許不同,這同時也是AlexNet論文中的創新點。

1、在激活函數方面,AlexNet使用的激活函數是relu激活函數而不是sigmoid激活函數,根據論文中的實驗結果我們可以得出結論,sigmoid和tanh的gradient在飽和區域非常平緩,接近於0,很容易造成vanishing gradient的問題,減緩收斂速度。vanishing gradient在網絡層數多的時候尤其明顯,是加深網絡結構的主要障礙之一。相反,Relu的gradient大多數情況下是常數,有助於解決深層網絡的收斂問題。Relu的另一個優勢是在生物上的合理性,它是單邊的,相比sigmoid和tanh,更符合生物神經元的特徵。relu激活函數對於神經網絡的改善很大。下圖是relu的函數圖像(看不下去就自己百度,我盡力了)

2、雙GPU訓練,由第一張模型圖可以看出,第一張圖中分爲左右兩個網絡結構。這兩個網絡結構分別在兩個GPU中運行,這一創新爲日後的多GPU分佈式訓練提供了理論基礎。

3、dropout,在網絡結構圖中,最後的全連接層中出現了dropout,這一點是我認爲AlexNet中最大的創新點。dropout的作用在於,我們可以設置一個超參數α(0-0.99),例如α等於0.3時,該層中30%的神經元將失活,也就是說不參加權值的更新和前向傳播和反向傳播,做法是將輸出設置爲0,這一步驟只在訓練神經網絡時起作用。那麼dropout的好處是什麼呢?dropout可以有效的防止過擬合,因爲每次訓練都是不同的神經元在工作,因此每輪訓練,我們都可以將起看作一個新的神經網絡,n多個神經網絡一起訓練的結果的過擬合的程度肯定是比單個神經網絡低的。

4、局部響應歸一化(LRN),這一個創新點就體現在網絡結構圖中的標準化操作,由於這一點日後的論文中基本上都沒有使用,所以就不做具體解釋(並不是因爲自己也沒有怎麼理解透徹)。這裏做一個簡單的解釋,就是對當前層的網絡輸出做了歸一化的處理。

5、data augmentation(數據增強),用傳統的圖像處理方法對圖像做一些處理,比如說翻轉,裁剪等。

補充說明:特徵圖大小的計算方法

通道數的大小和本層的filter的數量相等

假設第一層卷積有25個filter,在做完卷積和池化後得到了25個feature map,當第二層還有25個filter的時候,做完第二次卷積不會得到25*25個feature map,而是還會得到25個feature map,不過第二層的filter的是一個立方體,高度爲25,這樣輸出的feature map個數和卷積核個數是相同的,不過是filter參數變多了。而內部的處理就是將同一個filter中25個高度卷積過後的特徵圖相加,得到一個特徵圖輸出。這樣處理之後,幾個fliter就輸出幾個特徵圖。

卷積層:out = (in - filter_size + 2*padding)/strides + 1

池化層:池化輸出大小=[(輸入大小 - 卷積核(過濾器)大小)/步長]+1

 

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