#論文 《ImageNet Classification with Deep Convolutional Neural Networks》
這個Alex是第一作者,NN名字叫AlexNet,Hinton是第三作者。是第一個提出CNN的,還有dropout等方法。
1 Intro
CNN與之前的標準前饋神經網路對比:連線和引數更少,因此更容易訓練;而且它的理論最佳只是比之前的稍差。
GPU讓訓練CNN成為可能。而且,ImageNet也足夠大,這樣不怕過擬合。
本文貢獻:
訓練了最佳的CNN;
有trick來提升效能,降低訓練時間,見Section 3;
防止過擬合的技術,見Section 4;
減少任意一個卷積層都會降低效果。
本文訓練的時候,限制主要是GPU的記憶體和訓練時間,如果可以增加計算資源的話,應該可以提升效果。
2 資料
就是ImageNet,資料量足夠大,不太怕過擬合。
3 架構
NN的架構見Fig 2。
總共8層。前5層是卷積層,後3層是全連線層。
Section 3.1~3.4逐個介紹,按照重要性排序。
3.1 ReLU非線性
ReLU比tanh和sigmod好。比tanh快好幾倍。
沒有ReLU,可能實驗沒法完成。
3.2 並行GPU
一個GPU記憶體是3G,不夠訓練1.2million的資料,所以用了2塊GPU並行。
trick:
相鄰層在一個GPU內,加快速度。
用了某個相似的框架,降低了error 1.5~1.7個百分點。
2個GPU比一個GPU快了一點點。
3.3 Local Response Normalization
這個正則化框架提升了泛化能力。
降低了誤差1.2~1.4個百分點。
3.4 overlapping Pooling 池化
Pooling層是對前面層中,相鄰group的輸出做一個抽象的總結。【如,找max的,或者avg的等等。】
降低誤差0.3~0.4個百分點。
還稍微有防止過擬合的貢獻。
3.5 架構
5層卷積+3層全連線。
輸出是1000個分類的softmax。
其中,提到了,最大化multinomial logistic regression等價於最大化the average across training cases of the log-probability of the correct label under the prediction distribution.
介紹了一下連線結構,用來提升計算速度等。
4 降低過擬合
引數太多,有60 million。
提出了兩種防止過擬合的技術。
4.1 增加資料
通過做轉換,來增加資料。
有兩種方法來實現。一是random抽取固定大小的patch,二是轉換成RGB 。這倆方法計算量小,可以放到CPU中,與GPU並行執行,相當於沒有多耗費時間。
4.2 dropout
這個dropout被視為一種有效的model combination方法。
dropout概率為0.5,用在了三個全連線層中的前兩個中(而不是所有的都用!),可以強烈的防止過擬合,但是double了訓練的iteration。
5 學習細節
初始化:
每層引數初始化:N(0,0.01);
bias:有的層是1,有的層是0.【不知道為什麼要區分開】
訓練:
SGD;
batch size:128;
momentum:0.9;
decay:0.0005;
learning rate: 初始0.01。當validation error rate不動的時候,將learning rate除以10。訓練中,除了3次。
訓練用了5~6天,用了2個3GB的GPU。
6 結果
當然是好了,提升很高,比第二名超出很多。
7 討論
如果減少一個層,就會降低效果2%左右。所以,深度很重要。
為了降低複雜度,沒有做預處理。但如果能有更大的計算資源,用更深更大的網路和更長的訓練時間,可能效果會更好。
最終想要用在視訊序列上。