【閱讀筆記】AlexNet

paper
論文翻譯

網絡結構

網絡包括5個卷積層和3個全連接層。
在這裏插入圖片描述
第一個卷積層的輸入是224 × 224 × 3的圖像。用96個11 × 11 × 3的,步長爲4像素的內核去過濾(步長是相鄰神經元感知區域中心之間的距離)。結果是 (224-11)/4+1=54.25,近似成55;實際得到555596的圖,但因爲論文作者用了2個GPU,故每個GPU分得555548。
剩餘的同理:
在這裏插入圖片描述
第二層的padding是指在原圖外面再補充兩層像素。

論文亮點

使用Relu

以往的激活函數通常用sigmod或者tanh,他們的問題是由於函數形狀,當輸入到了一定值的時候斜率下降速度會很慢。因此作者使用了ReLU函數,即Rectified Linear Units,使用ReLU作爲深度神經網絡的激活函數是訓練速度是遠遠快於tanh的。

在兩個GPU上訓練

限於時代,當時的GPU運算速度很慢,作者在兩塊GPU上運行網絡,大大加快了速度。

局部響應歸一化

現在用的很少。基本思想就是將某一個像素點用其對應的其他通道的值來重新計算下。

數據擴充

AlexNet在訓練時,在數據擴充(data augmentation)這樣處理:
(1)隨機裁剪,對256×256的圖片進行隨機裁剪到224×224,然後進行水平翻轉,相當於將樣本數量增加了((256-224)^2)×2=2048倍;
(2)測試的時候,對左上、右上、左下、右下、中間分別做了5次裁剪,然後翻轉,共10個裁剪,之後對結果求平均。作者說,如果不做隨機裁剪,大網絡基本上都過擬合;
(3)對RGB空間做PCA(主成分分析),然後對主成分做一個(0, 0.1)的高斯擾動,也就是對顏色、光照作變換,結果使錯誤率又下降了1%。

重疊池化和最大池化

一般的池化(Pooling)是不重疊的,池化區域的窗口大小與步長相同。而AlexNet中的池化卻是可重疊的。所謂池化可以理解爲將原本的圖片進行壓縮。重疊池化讓特徵信息有更大的機率被學習到。
同時,AlexNet使用最大池化,這讓圖片的特徵更加突出(偏大值更大,偏小值更小)。

用Dropout來防止過擬合

引入Dropout是爲了防止過擬合。在神經網絡中Dropout通過修改神經網絡本身結構來實現。
對於某一層的神經元,按照一定的概率將神經元置零(現在在TensorFlow中這個操作很容易完成),這個神經元就不參與前向和後向傳播,就如同在網絡中被刪除了一樣,同時保持輸入層與輸出層神經元的個數不變,然後按照神經網絡的學習方法進行參數更新。在下一次迭代中,又重新隨機刪除一些神經元(置爲0),直至訓練結束。

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