1. 程式人生 > >AlexNet學習與實現

AlexNet學習與實現

專案地址:https://github.com/zhongqianli/caffe_alexnet

網路

AlexNet包含5 個 Conv 和 3 個 FC,每個卷積後面跟隨max-pooling層。
引入了dropout,用於減輕過擬合。
將具有飽和性的非線性啟用函式tanh換成不存在飽和性的非線性啟用函式ReLU,提升了訓練速度。
網路在兩個GPU上訓練。
提出了局部響應歸一化LRN(可以理解為一種對比度歸一化),一種正則化方法,可以降低測試誤差。
使用了重疊的pooling。

資料增強—減輕過擬合

第一種影象增強

訓練階段:

  • 水平映象翻轉。
  • 從256x256的影象中隨機裁剪224x224的影象塊。大大增加了訓練集的影象資料。

測試階段:
提取5個224x224的影象塊(四個角落和中心的影象塊),以及它們的水平映象的影象塊,共10個,對預測結果取平均。

第二種影象增強

改變影象RGB通道的強度。
特別地,在訓練集上使用PCA。

dropout

以一定的概率丟棄連線,可以減輕過擬合,但是會增加收斂所需的迭代次數。

因此每次一個輸入準備好的時候,網路採用了一個不同的架構,但是他們是共享權重的。這項技術減輕了神經元之間的協同適應,因此神經元無法依賴於其他神經元。
因此,可以強制學習更多魯棒的特徵。

在測試階段,使用所有的神經元,但是它們的輸出都乘以0.5。