CNN結(jié)構(gòu)演化進程
下圖所示CNN結(jié)構(gòu)演化的歷史,起點是神經(jīng)認知機模型,已經(jīng)出現(xiàn)了卷積結(jié)構(gòu),但是第一個CNN模型誕生于1989年,1998年誕生了LeNet。隨著ReLU和dropout的提出,以及GPU和大數(shù)據(jù)帶來的歷史機遇,CNN在12年迎來了歷史突破。12年之后,CNN的演化路徑可以總結(jié)為四條:1)更深的網(wǎng)絡,2)增強卷積模的功能以及上訴兩種思路的融合,3)從分類到檢測,4)增加新的功能模塊。
開始-LeNet
1998年,LeCun提出LeNet,并成功應用于美國手寫數(shù)字識別。但很快,CNN的鋒芒被SVM和手工設計的局部特征蓋過。
轉(zhuǎn)折點-AlexNet
AlexNet 之所以能夠成功,深度學習之所以能夠重回歷史舞臺,原因在于:
非線性激活函數(shù):ReLU
防止過擬合的方法:Dropout,Data augmentaTIon
大數(shù)據(jù)訓練:百萬級ImageNet圖像數(shù)據(jù)
其他:GPU實現(xiàn),LRN歸一化層的使用
第一條演化路徑:網(wǎng)絡變深
VGGNet 可以看成是加深版本的 AlexNet,參見 Karen Simonyan 和 Andrew Zisserman 的論文《Very Deep ConvoluTIonal Networks for Large-Scale Visual RecogniTIon》。
VGGNet 和下文中要提到的 GoogLeNet 是2014年 ImageNet 競賽的第二名和第一名,Top-5錯誤率分別為7.32%和6.66%。VGGNet 也是5個卷積組、2層全連接圖像特征、1層全連接分類特征,可以看作和 AlexNet 一樣總共8個部分。
第二條演化路徑:增強卷積模塊
首先要說起 NIN(Network in Network)的思想(詳見 Min Lin 和 Qiang Chen 和 Shuicheng Yan 的論文《Network In Network》),它對傳統(tǒng)的卷積方法做了兩點改進:將原來的線性卷積層(linear convoluTIon layer)變?yōu)槎鄬痈兄矸e層(multilayer perceptron);將全連接層的改進為全局平均池化。
MIN使得卷積神經(jīng)網(wǎng)絡向另一個演化分支—增強卷積模塊的功能的方向演化,2014年誕生了 GoogLeNet(即 Inception V1)。谷歌公司提出的 GoogLeNet 是2014年 ILSVRC 挑戰(zhàn)賽的冠軍,它將 Top-5的錯誤率降低到了6.67%。GoogLeNet 的更多內(nèi)容詳見 Christian Szegedy 和 Wei Liu 等人的論文《Going Deeper with Convolutions》。
ResNet依然是:沒有最深,只有更深(152層)。聽說目前層數(shù)已突破一千。ResNet主要的創(chuàng)新在殘差網(wǎng)絡,這也是現(xiàn)在火熱的AlphaGo Zero主要技術(shù)之一。如圖11所示,其實這個網(wǎng)絡的提出本質(zhì)上還是要解決層次比較深的時候無法訓練的問題。這種借鑒了Highway Network思想的網(wǎng)絡相當于旁邊專門開個通道使得輸入可以直達輸出,而優(yōu)化的目標由原來的擬合輸出H(x)變成輸出和輸入的差H(x)-x,其中H(X)是某一層原始的的期望映射輸出,x是輸入。