當(dāng)前位置:首頁 > 芯聞號(hào) > 充電吧
[導(dǎo)讀]原文:#Deep Learning回顧#之LeNet、AlexNet、GoogLeNet、VGG、ResNetCNN的發(fā)展史? ? ? ?上一篇回顧講的是2006年Hinton他們的Science

原文:#Deep Learning回顧#之LeNet、AlexNet、GoogLeNet、VGG、ResNet


CNN的發(fā)展史


? ? ? ?上一篇回顧講的是2006年Hinton他們的Science Paper,當(dāng)時(shí)提到,2006年雖然Deep Learning的概念被提出來了,但是學(xué)術(shù)界的大家還是表示不服。當(dāng)時(shí)有流傳的段子是Hinton的學(xué)生在臺(tái)上講paper時(shí),臺(tái)下的機(jī)器學(xué)習(xí)大牛們不屑一顧,質(zhì)問你們的東西有理論推導(dǎo)嗎?有數(shù)學(xué)基礎(chǔ)嗎?搞得過SVM之類嗎?回頭來看,就算是真的,大牛們也確實(shí)不算無理取鬧,是騾子是馬拉出來遛遛,不要光提個(gè)概念。

? ? ? ?時(shí)間終于到了2012年,Hinton的學(xué)生Alex Krizhevsky在寢室用GPU死磕了一個(gè)Deep Learning模型,一舉摘下了視覺領(lǐng)域競(jìng)賽ILSVRC 2012的桂冠,在百萬量級(jí)的ImageNet數(shù)據(jù)集合上,效果大幅度超過傳統(tǒng)的方法,從傳統(tǒng)的70%多提升到80%多。個(gè)人覺得,當(dāng)時(shí)最符合Hinton他們心境的歌非《我不做大哥好多年》莫屬。

? ? ? ?這個(gè)Deep Learning模型就是后來大名鼎鼎的AlexNet模型。這從天而降的AlexNet為何能耐如此之大?有三個(gè)很重要的原因:

大量數(shù)據(jù),Deep Learning領(lǐng)域應(yīng)該感謝李飛飛團(tuán)隊(duì)搞出來如此大的標(biāo)注數(shù)據(jù)集合ImageNet;GPU,這種高度并行的計(jì)算神器確實(shí)助了洪荒之力,沒有神器在手,Alex估計(jì)不敢搞太復(fù)雜的模型;算法的改進(jìn),包括網(wǎng)絡(luò)變深、數(shù)據(jù)增強(qiáng)、ReLU、Dropout等,這個(gè)后面后詳細(xì)介紹。

? ? ? ?從此,Deep Learning一發(fā)不可收拾,ILSVRC每年都不斷被Deep Learning刷榜,如圖1所示,隨著模型變得越來越深,Top-5的錯(cuò)誤率也越來越低,目前降到了3.5%附近,而在同樣的ImageNet數(shù)據(jù)集合上,人眼的辨識(shí)錯(cuò)誤率大概在5.1%,也就是目前的Deep Learning模型的識(shí)別能力已經(jīng)超過了人眼。而圖1中的這些模型,也是Deep Learning視覺發(fā)展的里程碑式代表。


圖1. ILSVRC歷年的Top-5錯(cuò)誤率

? ? ? ?在仔細(xì)分析圖1中各模型結(jié)構(gòu)之前我們先需要了解一下深度學(xué)習(xí)三駕馬車之一————LeCun的LeNet網(wǎng)絡(luò)結(jié)構(gòu)。為何要提LeCun和LeNet,因?yàn)楝F(xiàn)在視覺上這些神器都是基于卷積神經(jīng)網(wǎng)絡(luò)(CNN)的,而LeCun是CNN的祖師爺,LeNet是LeCun打造的CNN經(jīng)典之作。

? ? ? ?LeNet以其作者名字LeCun命名,這種命名方式類似的還有AlexNet,后來又出現(xiàn)了以機(jī)構(gòu)命名的網(wǎng)絡(luò)結(jié)構(gòu)GoogLeNet、VGG,以核心算法命名的ResNet。LeNet有時(shí)也被稱作LeNet5或者LeNet-5,其中的5代表五層模型。不過別急,LeNet之前其實(shí)還有一個(gè)更古老的CNN模型。




最古老的CNN模型

? ? ? ?1985年,Rumelhart和Hinton等人提出了后向傳播(Back Propagation,BP)算法[1](也有說1986年的,指的是他們另一篇paper:Learning representations by back-propagating errors),使得神經(jīng)網(wǎng)絡(luò)的訓(xùn)練變得簡(jiǎn)單可行,這篇文章在Google Scholar上的引用次數(shù)達(dá)到了19000多次,目前還是比Cortes和Vapnic的Support-Vector Networks稍落后一點(diǎn),不過以Deep Learning最近的發(fā)展勁頭來看,超越指日可待。

? ? ? ?幾年后,LeCun利用BP算法來訓(xùn)練多層神經(jīng)網(wǎng)絡(luò)用于識(shí)別手寫郵政編碼[2],這個(gè)工作就是CNN的開山之作,如圖2所示,多處用到了5*5的卷積核,但在這篇文章中LeCun只是說把5*5的相鄰區(qū)域作為感受野,并未提及卷積或卷積神經(jīng)網(wǎng)絡(luò)。關(guān)于CNN最原始的雛形感興趣的讀者也可以關(guān)注一下文獻(xiàn)[10]。



圖2. 最古老的CNN網(wǎng)絡(luò)結(jié)構(gòu)圖


LeNet

? ? ? ?1998年的LeNet5[4]標(biāo)注著CNN的真正面世,但是這個(gè)模型在后來的一段時(shí)間并未能火起來,主要原因是費(fèi)機(jī)器(當(dāng)時(shí)苦逼的沒有GPU?。?,而且其他的算法(SVM,老實(shí)說是你干的吧?)也能達(dá)到類似的效果甚至超過。


圖3. LeNet網(wǎng)絡(luò)結(jié)構(gòu)


初學(xué)者也可以參考一下Caffe中的配置文件:
https://github.com/BVLC/caffe/blob/master/examples/mnist/lenet.prototxt


AlexNet、VGG、GoogLeNet、ResNet對(duì)比

? ? ? ?LeNet主要是用于識(shí)別10個(gè)手寫數(shù)字的,當(dāng)然,只要稍加改造也能用在ImageNet數(shù)據(jù)集上,但效果較差。而本文要介紹的后續(xù)模型都是ILSVRC競(jìng)賽歷年的佼佼者,這里具體比較AlexNet、VGG、GoogLeNet、ResNet四個(gè)模型。如表1所示。

初入江湖 2012 2014 2014 2015 層數(shù) 8 19 22 152 Top-5錯(cuò)誤 16.4% 7.3% 6.7% 3.57% Data Augmentation + + + + Inception(NIN) – – + – 卷積層數(shù) 5 16 21 151 卷積核大小 11,5,3 3 7,1,3,5 7,1,3,5 全連接層數(shù) 3 3 1 1 全連接層大小 4096,4096,1000 4096,4096,1000 1000 1000 Dropout + + + + Local Response Normalization + – + – Batch Normalization – – – + 表1 AlexNet、VGG、GoogLeNet、ResNet對(duì)比


AlexNet

? ? ? ?接下里直接上圖即可,AlexNet結(jié)構(gòu)圖如下:



圖4. AlexNet網(wǎng)絡(luò)結(jié)構(gòu)


? ? ? ?換個(gè)視角:


圖5. AlexNet網(wǎng)絡(luò)結(jié)構(gòu)精簡(jiǎn)版
?AlexNet相比傳統(tǒng)的CNN(比如LeNet)有哪些重要改動(dòng)呢:
(1) Data Augmentation
? ? ? ?數(shù)據(jù)增強(qiáng),這個(gè)參考李飛飛老師的cs231課程是最好了。常用的數(shù)據(jù)增強(qiáng)方法有:


水平翻轉(zhuǎn)隨機(jī)裁剪、平移變換顏色、光照變換




(2) Dropout

? ? ? ?Dropout方法和數(shù)據(jù)增強(qiáng)一樣,都是防止過擬合的。Dropout應(yīng)該算是AlexNet中一個(gè)很大的創(chuàng)新,以至于Hinton在后來很長(zhǎng)一段時(shí)間里的Talk都拿Dropout說事,后來還出來了一些變種,比如DropConnect等。

(3) ReLU激活函數(shù)

? ? ? ?用ReLU代替了傳統(tǒng)的Tanh或者Logistic。好處有:

ReLU本質(zhì)上是分段線性模型,前向計(jì)算非常簡(jiǎn)單,無需指數(shù)之類操作;ReLU的偏導(dǎo)也很簡(jiǎn)單,反向傳播梯度,無需指數(shù)或者除法之類操作;ReLU不容易發(fā)生梯度發(fā)散問題,Tanh和Logistic激活函數(shù)在兩端的時(shí)候?qū)?shù)容易趨近于零,多級(jí)連乘后梯度更加約等于0;ReLU關(guān)閉了右邊,從而會(huì)使得很多的隱層輸出為0,即網(wǎng)絡(luò)變得稀疏,起到了類似L1的正則化作用,可以在一定程度上緩解過擬合。

? ? ? ?當(dāng)然,ReLU也是有缺點(diǎn)的,比如左邊全部關(guān)了很容易導(dǎo)致某些隱藏節(jié)點(diǎn)永無翻身之日,所以后來又出現(xiàn)pReLU、random ReLU等改進(jìn),而且ReLU會(huì)很容易改變數(shù)據(jù)的分布,因此ReLU后加Batch Normalization也是常用的改進(jìn)的方法。

(4) Local Response Normalization
? ? ? ?Local Response Normalization要硬翻譯的話是局部響應(yīng)歸一化,簡(jiǎn)稱LRN,實(shí)際就是利用臨近的數(shù)據(jù)做歸一化。這個(gè)策略貢獻(xiàn)了1.2%的Top-5錯(cuò)誤率。

(5) Overlapping Pooling
? ? ? ?Overlapping的意思是有重疊,即Pooling的步長(zhǎng)比Pooling Kernel的對(duì)應(yīng)邊要小。這個(gè)策略貢獻(xiàn)了0.3%的Top-5錯(cuò)誤率。

(6) 多GPU并行
? ? ? ?這個(gè)不多說,比一臂之力還大的洪荒之力。


VGG

? ? ? ?VGG結(jié)構(gòu)圖


圖6. VGG系列網(wǎng)絡(luò)結(jié)構(gòu)


? ? ? ?換個(gè)視角看看VGG-19:


圖7. VGG-19網(wǎng)絡(luò)結(jié)構(gòu)精簡(jiǎn)版

? ? ? ?VGG很好地繼承了AlexNet的衣缽,一個(gè)字:深,兩個(gè)字:更深。


GoogLeNet
圖8. GoogLeNet網(wǎng)絡(luò)結(jié)構(gòu)

? ? ? ?GoogLeNet依然是:沒有最深,只有更深。

? ? ? ?主要的創(chuàng)新在于他的Inception,這是一種網(wǎng)中網(wǎng)(Network In Network)的結(jié)構(gòu),即原來的結(jié)點(diǎn)也是一個(gè)網(wǎng)絡(luò)。Inception一直在不斷發(fā)展,目前已經(jīng)V2、V3、V4了,感興趣的同學(xué)可以查閱相關(guān)資料。Inception的結(jié)構(gòu)如圖9所示,其中1*1卷積主要用來降維,用了Inception之后整個(gè)網(wǎng)絡(luò)結(jié)構(gòu)的寬度和深度都可擴(kuò)大,能夠帶來2-3倍的性能提升。


圖9. Inception結(jié)構(gòu)


ResNet


網(wǎng)絡(luò)結(jié)構(gòu)如圖10所示。


圖10. ResNet網(wǎng)絡(luò)結(jié)構(gòu)


? ? ? ?ResNet依然是:沒有最深,只有更深(152層)。聽說目前層數(shù)已突破一千。

? ? ? ?主要的創(chuàng)新在殘差網(wǎng)絡(luò),如圖11所示,其實(shí)這個(gè)網(wǎng)絡(luò)的提出本質(zhì)上還是要解決層次比較深的時(shí)候無法訓(xùn)練的問題。這種借鑒了Highway Network思想的網(wǎng)絡(luò)相當(dāng)于旁邊專門開個(gè)通道使得輸入可以直達(dá)輸出,而優(yōu)化的目標(biāo)由原來的擬合輸出H(x)變成輸出和輸入的差H(x)-x,其中H(X)是某一層原始的的期望映射輸出,x是輸入。


圖11. ResNet網(wǎng)絡(luò)結(jié)構(gòu)


總結(jié)


Deep Learning一路走來,大家也慢慢意識(shí)到模型本身結(jié)構(gòu)是Deep Learning研究的重中之重,而本文回顧的LeNet、AlexNet、GoogLeNet、VGG、ResNet又是經(jīng)典中的經(jīng)典。

隨著2012年AlexNet的一舉成名,CNN成了計(jì)算機(jī)視覺應(yīng)用中的不二選擇。目前,CNN又有了很多其他花樣,比如R-CNN系列,詳情敬請(qǐng)期待我愛機(jī)器學(xué)習(xí)網(wǎng)站(52ml.net)的#Deep Learning回顧#下一期。

本文只是簡(jiǎn)單回顧,疏漏之處敬請(qǐng)諒解,感興趣的可以加QQ群一起學(xué)習(xí):252085834

[參考文獻(xiàn)]
[1] DE Rumelhart, GE Hinton, RJ Williams, Learning internal representations by error propagation. 1985 – DTIC Document.
[2] Y. LeCun , B. Boser , J. S. Denker , D. Henderson , R. E. Howard , W. Hubbard and L. D. Jackel, “Backpropagation applied to handwritten zip code recognition”, Neural Computation, vol. 1, no. 4, pp. 541-551, 1989.
[3] Kaiming He, Deep Residual Learning, http://image-net.org/challenges/talks/ilsvrc2015_deep_residual_learning_kaiminghe.pdf
[4] Y. LeCun, L. Bottou, Y. Bengio, and P. Haffner. Gradient-based learning applied to document recognition. Proceedings of the IEEE, 86(11):2278–2324, 1998.
[5] A. Krizhevsky, I. Sutskever, and G. Hinton. Imagenet classification with deep convolutional neural networks. In Advances in Neural Information Processing Systems 25, pages 1106–1114, 2012.
[6] Christian Szegedy, Wei Liu, Yangqing Jia, Pierre Sermanet, Scott E. Reed, Dragomir Anguelov, Dumitru Erhan, Vincent Vanhoucke, Andrew Rabinovich: Going deeper with convolutions. CVPR 2015: 1-9
[7] Karen Simonyan, Andrew Zisserman: Very Deep Convolutional Networks for Large-Scale Image Recognition. CoRR abs/1409.1556 (2014)
[8] Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun. Deep Residual Learning for Image Recognition. IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2016
[9] 一些對(duì)應(yīng)的caffe實(shí)現(xiàn)或預(yù)訓(xùn)練好的模型: https://github.com/BVLC/caffe https://github.com/BVLC/caffe/wiki/Model-Zoo
[10] K. Fukushima. Neocognitron: A self-organizing neural network model for a mechanism of pattern recognition unaffected by shift in position. Biological Cybernetics, 36(4): 93-202, 1980.











最古老的CNN模型

? ? ? ?1985年,Rumelhart和Hinton等人提出了后向傳播(Back Propagation,BP)算法[1](也有說1986年的,指的是他們另一篇paper:Learning representations by back-propagating errors),使得神經(jīng)網(wǎng)絡(luò)的訓(xùn)練變得簡(jiǎn)單可行,這篇文章在Google Scholar上的引用次數(shù)達(dá)到了19000多次,目前還是比Cortes和Vapnic的Support-Vector Networks稍落后一點(diǎn),不過以Deep Learning最近的發(fā)展勁頭來看,超越指日可待。

? ? ? ?幾年后,LeCun利用BP算法來訓(xùn)練多層神經(jīng)網(wǎng)絡(luò)用于識(shí)別手寫郵政編碼[2],這個(gè)工作就是CNN的開山之作,如圖2所示,多處用到了5*5的卷積核,但在這篇文章中LeCun只是說把5*5的相鄰區(qū)域作為感受野,并未提及卷積或卷積神經(jīng)網(wǎng)絡(luò)。關(guān)于CNN最原始的雛形感興趣的讀者也可以關(guān)注一下文獻(xiàn)[10]。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉