深入解讀AlexNet結構


AlexNet的基本結構

Alexnet是由5個卷積層和三個全連接層組成,一共8個權重層(池化層不是權重層因為其沒有參數),其中ReLU激活函數作用在每個卷積層和全連接層上,在第一個卷積層和第二個卷積層后面連接一個局部響應規范化層,最大池化層作用在第一個卷積層,第二個卷積層和第五個卷積層的輸出上。

ReLU

在AlexNet結構中拋棄了傳統的‘s'形激活函數,而是選擇了修正的線性單元作為激活函數也就是relu傳統的’s'形激活函數有f(x)=1/(1+e-x),f(x)=tanh(x),其中sigmoid函數如下圖:

 

sigmoid函數具有飽和特性,當輸入較大或者較小時,輸出曲線接近平緩,此時梯度幾乎為0,會造成消失的梯度問題,並且它的輸出均值不為0,可能會造成偏置轉移,會使得后一層的神經元將上一層的輸出的非0均值的信號作為輸入,並且它的輸出范圍在0~1,沒有包含負信息,可能會損失一部分有用的信息。

上圖為tanh函數的曲線圖,由圖可知,它的輸出值的范圍為[-1,1],其輸出均值為0,並且包含了負信息,但是由於它也具有飽和特性,所以也會造成消失的梯度問題。

 

ReLU的形式為:f(x)=max(0,x),當輸入為正時,輸出值取其本身,此時關於輸入x的導數為1,是一個常數,避免了消失的梯度問題,並且當輸入小於0時,輸出為0,引進了稀疏性,能夠加速訓練,但是由於其輸出均值也大於0,所以也會出現偏置轉移現象,並且由於當輸入小於0時,對應的神經元輸出為0,梯度為0,對應的權重也就無法更新。

重疊最大池化

AlexNet中使用了池化區域為3X3,步長為2的重疊池化,並且聲稱此種池化方法要比傳統的池化區域為2X2,步長為2的非重疊池化方法效果好,論文中說效果提升了0.3%,但是我在其他數據集實驗發現,重疊池化的效果不如非重疊池化,理由是當使用重疊池化時,下一個池化區域的最大值很可能就是上一個池化區域最大元素的副本,此時相當於造成了特征冗余。

局部響應規范化


其中aix,y為第i個卷積核在位置(x,y)處做卷積得到特征映射中的元素,再使用relu對其進行非線性變化得到的神經元。bix,y為經過局部響應規范化處理后得到的神經元。N是在某一層中卷積核的總量.k,ε,n,β為超參數,由網絡訓練得到,在AlexNet中設置k=2,n=5,ε=10-4,β=0.75。局部響應規范化中的求和是在n個相鄰的特征映射中的同一個位置,也就是(x,y),這樣相當於在神經元之間引入一種競爭機制,較強的特征會有一個較大的元素值。

減少過擬合

1.數據集擴增

在圖像數據中最簡單和最普通減少過擬合的方法就是人工的擴增數據集,當然這是在保留標簽信息的情況下。比如原圖片的尺寸是256X256,就可以隨機的在原圖片上裁剪一個224X224的小塊進行訓練,並對其進行水平翻轉,平移等操作,擴大數據集。

2.Dropout

Dropout是一種正則化方法,隨機的將隱藏層的神經元的值置為0,其中有一個drop率為p,通常p設置為0.5,dropout強迫每個神經元學習獨立的特征,而不用依賴其他的神經元。它也相當於權重衰減,當某個神經元的值為0時,連接它的權重也為0,網絡的參數變少,復雜度降低,防止過擬合,並且它也相當於一種模型融合,假設網絡中一共有n個神經元,p=0.5,則此時,相當於有2n個子網絡同時訓練,是一種模型平均方法,提高泛化表現。

網絡結構分析

通常在卷積層后面都應該接一個池化層,但是AlexNet卻只在第一個卷積層,第二個卷積層和最后一個卷積層后面連接最大池化,這是因為在網絡的較低層,特征映射的大小一般很大,含有較多的參數,這是進行池化的目的是為了減少的參數的數量,防止過擬合,而在網絡的較高層,提取的特征一般是高級特征,可能是某個物體的輪廓,比如小狗的眼睛,但是小狗可能出現在圖像中的任意位置,此時最大池化的目的是提供一種平移翻轉不變性。至於AlexNet為什么只用了5個卷積層,文中提到深度是重要的,但是再深可能會出現退化現象。而去掉一個卷積層又會使網絡的表示能力下降。

 


免責聲明!

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



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