1. 程式人生 > >#論文 《ImageNet Classification with Deep Convolutional Neural Networks》

#論文 《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%左右。所以,深度很重要。

為了降低複雜度,沒有做預處理。但如果能有更大的計算資源,用更深更大的網路和更長的訓練時間,可能效果會更好。

最終想要用在視訊序列上。