0
本文作者: AI研習(xí)社 | 2017-07-11 15:03 |
雷鋒網(wǎng)按:提起卷積神經(jīng)網(wǎng)絡(luò)你會想到什么?LeNet、AlexNet 還是 ResNet?它們之間有哪些差別和特點,又經(jīng)歷了怎樣的發(fā)展和演變?本文將針對這一話題展開討論。原文作者楊熹,載于作者的個人博客,雷鋒網(wǎng)經(jīng)授權(quán)發(fā)布。
人工神經(jīng)網(wǎng)絡(luò)模型整體上的發(fā)展過程如下圖所示:
上圖對比了本文所述的各種神經(jīng)網(wǎng)絡(luò)之間,操作復(fù)雜度和精度之間的關(guān)系。
1998, Yann LeCun 的 LeNet5。
圖像特征分布在整個圖像上。
在具有很少參數(shù)的多個位置上提取類似特征時,具有可學(xué)習(xí)的參數(shù)的卷積是個比較有效的方法。
在沒有應(yīng)用GPU的時候,能夠保存參數(shù)和計算就成了一個關(guān)鍵優(yōu)勢。
LeNet5并沒有把每個像素都作為大型多層神經(jīng)網(wǎng)絡(luò)的一個輸入,因為圖像是高度空間相關(guān)的,如果用了這種方法,就不能很好地利用相關(guān)性。
LeNet5 的主要特征:
CNN 主要用這3層的序列: convolution, pooling, non-linearity;
用卷積提取空間特征;
由空間平均得到子樣本;
用 tanh 或 sigmoid 得到非線性;
用 multi-layer neural network(MLP)作為最終分類器;
層層之間用稀疏的連接矩陣,以避免大的計算成本。
2010, Dan Claudiu Ciresan and Jurgen Schmidhuber 的 Dan Ciresan Net。
是比較早的GPU神經(jīng)網(wǎng)絡(luò)之一,在 NVIDIA GTX 280 圖形處理器上實現(xiàn)了9層神經(jīng)網(wǎng)絡(luò)的前向后向計算。
2012,Alex Krizhevsky 的 AlexNet。
是LeNet的一個更深和更廣的版本,可以用來學(xué)習(xí)更復(fù)雜的對象。
AlexNet 的主要特征:
用rectified linear units(ReLU)得到非線性;
使用輟 dropout 技巧在訓(xùn)練期間有選擇性地忽略單個神經(jīng)元,來減緩模型的過擬合;
重疊最大池,避免平均池的平均效果;
使用 GPU NVIDIA GTX 580 可以減少訓(xùn)練時間,這比用CPU處理快了 10 倍,所以可以被用于更大的數(shù)據(jù)集和圖像上。
2013年12月,Yann LeCun的紐約大學(xué)實驗室的 OverFeat。
是AlexNet的衍生,提出了 learning bounding boxes。
2015,牛津的 VGG。
率先在每個卷積層中使用更小的 3×3 filters,并將它們組合成卷積序列。
雖然小,但是多個3×3卷積序列可以模擬更大的接收場的效果。
這個想法也在最近的Inception和ResNet網(wǎng)絡(luò)中有所應(yīng)用。
NiN
2014,Min Lin, Qiang Chen, Shuicheng Yan 的 NiN。
它的思想很簡單但是很有效,使用1x1卷積給一個卷積層的特征提供了更多的組合性。
每個卷積之后使用空間MLP層,以便在另一層之前更好地組合特征,而沒有使用原始像素作為下一層的輸入。
可以有效地使用非常少的參數(shù),在這些特征的所有像素之間共享。
2014,Google Christian Szegedy 的 GoogLeNet and Inception。
在昂貴的并行塊之前,使用1×1卷積塊(NiN)來減少特征數(shù)量,這通常被稱為“瓶頸”,可以減少深層神經(jīng)網(wǎng)絡(luò)的計算負擔(dān)。
它用一個沒有 inception modules 的 stem 作為初始層。
用類似于NiN的平均池加上softmax分類器。
Inception V3 (and V2)
2015年2月,Christian 團隊的 Inception V2,2015年12月,Inception V3。
在每個池之前,增加 feature maps,構(gòu)建網(wǎng)絡(luò)時,仔細平衡深度和寬度,使流入網(wǎng)絡(luò)的信息最大化。
當(dāng)深度增加時,特征的數(shù)量或?qū)拥膶挾纫灿兴黾印?/p>
在下一層之前,增加每一層的寬度來增多特征的組合性。
盡量只使用3x3卷積。
2015,Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun 的 ResNet。
這個網(wǎng)絡(luò)繞過了2層,可以被看作一個小的分類器,或者一個NiN 。
這也是第一次訓(xùn)練了大于100甚至1000層的網(wǎng)絡(luò)。
在每一層,通過使用更小output的1x1卷積來減少特征的數(shù)量,然后經(jīng)過一個3x3 層,接著又是一個1x1卷積,這個方法可以保持少計算量,同時提供豐富的特征組合。
2016,F(xiàn)ran?ois Chollet 的 Xception。
這個網(wǎng)絡(luò)和 ResNet and Inception V4 一樣有效,而且用了更簡單優(yōu)雅的結(jié)構(gòu) 。
它有36個卷積階段,和ResNet-34相似,不過模型和代碼和ResNet一樣簡單,并且比Inception V4更易理解 。
這個網(wǎng)絡(luò)在 Torch7/Keras / TF 都已經(jīng)可以應(yīng)用了。
英文參考:
雷鋒網(wǎng)相關(guān)閱讀:
YJango的卷積神經(jīng)網(wǎng)絡(luò)——介紹
雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。