經典 CNN 模型整理 (02) - AlexNet

本篇為 AlexNet 的重點整理筆記

本系列將整理一些經典 CNN 模型的重點,目的是讓讀者和自己可以在最短的時間內回想起被遺忘的記憶,比較不熟悉的朋友也可以用重點去搭配論文幫助消化!

上一篇:LeNet

<ImageNet Classification with Deep Convolutional Neural Networks>
Krizhevsky et al., 2012.

圖一:AlexNet 架構圖

作為 2012 年 ImageNet 競賽冠軍,且遠遠甩開亞軍(top5 錯誤率 15.3%,第二名 26.2%),再次掀起 CNN 熱潮,下面來看看 AlexNet 的一些特點和其使用的技巧:

  • ReLU (Rectified Linear Units)-取代原先常用的飽和函數 tanh, sigmoid 提升了速度[如圖二],就現在來看也改善了梯度消失(Gradient Vanishing)的問題,並提升了訓練效果
圖二:4 層 CNN 之 CIFAR-10 實驗結果圖,ReLU 為實線,tanh 為虛線
  • 多 GPU 訓練-由於其使用的 GTX 580 只有 3GB 內存,他們將所有核(神經元)均分到兩張 GPU 中訓練
  • LRN (Local Response Normalization)-同一空間位置下除以其鄰近數個核圖 (kernel map)之平方和以通道方向進行疊加之值(同一座標下鄰近通道的加總),透過在 ReLU 後加上此步驟以達到局部抑制的作用
LRN 公式
  • Overlapping Pooling核大小 > 步長會有重疊效果,來避免過擬合,順帶一提這裡使用 Max pooling (LeNet 使用 Average pooling)。
  • Data Augmentation-這裡從 256 x 256 的影像中隨機裁剪(crop)出 224 x 224 的影像並做水平翻轉,這樣數據集就變成 2048 (32 x 32 x 2) 倍;也透過 PCA 計算出特徵向量/值並透過高斯隨機變量改變顏色
  • Dropout訓練時每次迭代中讓該隱藏層中的神經元節點以一定機率(在論文中 P = 0.5)被丟棄(值為 0),測試時則將所有節點保留並乘以 (1-p) (每個節點在訓練時平均有 (1-p) 的機率出現),用以避免過擬合,在論文中只使用於前兩個全連接層。

然而隨著深度學習領域持續發展,如今 LRN 和 Overlapping Pooling 基本上不再被使用,而 Dropout 也幾乎被 Batch Normalization 所取代。

感謝觀看,有任何問題歡迎留言討論或連繫我,祝有個愉快的一天😉

下一篇:VGGNet

--

--

Lance Chu 朱哲緯
Lance Chu 朱哲緯

Written by Lance Chu 朱哲緯

一名機器學習工程師,喜歡思考、唱歌跟旅行,在這裡分享一些心理、技術文章。

No responses yet