深度殘差學(xué)習(xí)用于圖像識(shí)別2015年可能是十年來計(jì)算機(jī)視覺發(fā)展最好的一年,我們看到了很多偉大的想法,不僅在圖像分類方面,而且在各種各樣的計(jì)算機(jī)視覺任務(wù)(如對(duì)象檢測(cè),語義分割等)中都應(yīng)運(yùn)而生。2015年誕生了一個(gè)新的網(wǎng)絡(luò),稱為ResNet,或稱為殘差網(wǎng)絡(luò),該網(wǎng)絡(luò)由Microsoft Research Asia的一組中國(guó)研究人員提出。正如我們?cè)谇懊嬗懻摰腣GG網(wǎng)絡(luò),進(jìn)一步深入的最大障礙是梯度消失問題,也就是說,當(dāng)反向傳播到更深的層時(shí),導(dǎo)數(shù)變得越來越小,最終達(dá)到現(xiàn)代計(jì)算機(jī)體系結(jié)構(gòu)無法真正有意義地表示的程度。GoogLeNet試圖通過使用輔助監(jiān)督和非對(duì)稱初始模塊來解決這一問題,但它只在一定程度上緩解了這個(gè)問題。如果我們想用50層甚至100層,有沒有更好的方法讓漸變流通過網(wǎng)絡(luò)?ResNet的答案是使用殘差模塊。ResNet為輸出添加了一個(gè)Identity輸入,每個(gè)殘差模塊不能預(yù)測(cè)輸入的是什么,從而不會(huì)迷失方向。更重要的是,殘差模塊不是希望每一層都直接適合所需的特征映射,而是嘗試學(xué)習(xí)輸出和輸入之間的差異,這使得任務(wù)更加容易,因?yàn)樗璧男畔⒃鲆孑^少。假設(shè)你正在學(xué)習(xí)數(shù)學(xué),對(duì)于每一個(gè)新的問題,你都會(huì)得到一個(gè)類似問題的解決方案,所以你需要做的就是擴(kuò)展這個(gè)解決方案,并努力使它發(fā)揮作用,這比為你遇到的每一個(gè)問題想出一個(gè)全新的解決方案要容易得多。或者正如牛頓所說,我們可以站在巨人的肩膀上,Identity輸入就是殘差模塊的那個(gè)巨人。除了Identity Mapping,ResNet還借用了Inception networks的瓶頸和批處理規(guī)范化,最終它成功地建立了一個(gè)有152個(gè)卷積層的網(wǎng)絡(luò),在ImageNet上達(dá)到了80.72%的最高精度。殘差法后來也成為了許多其他網(wǎng)絡(luò)的默認(rèn)選擇,如exception、Darknet等,并且由于其簡(jiǎn)潔美觀的設(shè)計(jì),在當(dāng)今許多生產(chǎn)性視覺識(shí)別系統(tǒng)中仍被廣泛應(yīng)用。隨著殘差網(wǎng)絡(luò)的大肆宣傳,出現(xiàn)了許多的不變量。在《Identity Mappings in Deep Residual Networks》中,ResNet的原作者把激活放在殘差模塊之前,取得了更好的效果,這一設(shè)計(jì)后來被稱為ResNetV2。此外,在2016年的一篇論文“Aggregated Residual Transformations for Deep Neural Networks(聚合深度神經(jīng)網(wǎng)絡(luò)的殘差變換)”中,研究人員提出了ResNeXt,它為殘差模塊添加了并行分支,以聚合不同變換的輸出。
2016年:Xception
Xception:具有深度可分卷積的深度學(xué)習(xí)隨著ResNet的發(fā)布,圖像分類器中的大多數(shù)容易實(shí)現(xiàn)的目標(biāo)看起來已經(jīng)被搶先實(shí)現(xiàn)了,研究人員開始考慮研究CNN的內(nèi)部機(jī)制原理。由于跨通道卷積通常會(huì)引入大量參數(shù),因此Xception網(wǎng)絡(luò)選擇調(diào)查此操作以了解其效果的全貌。就像它的名字一樣,Xception源自Inception網(wǎng)絡(luò)。在Inception模塊中,將不同轉(zhuǎn)換的多個(gè)分支聚合在一起以實(shí)現(xiàn)拓?fù)湎∈栊?,但是為什么這種稀疏起作用了?Xception的作者,也是Keras框架的作者,將這一思想擴(kuò)展到了一種極端情況,在這種情況下,一個(gè)3x3卷積對(duì)應(yīng)于最后一個(gè)串聯(lián)之前的一個(gè)輸出通道,在這種情況下,這些并行卷積核實(shí)際上形成了一個(gè)稱為深度卷積的新操作。如上圖所示,與傳統(tǒng)的卷積不同,傳統(tǒng)的卷積方法只對(duì)每個(gè)通道分別計(jì)算卷積,然后將輸出串聯(lián)在一起,這減少了通道之間的特征交換,但也減少了許多連接,因此產(chǎn)生了一個(gè)參數(shù)較少的層,但是此操作將輸出與輸入相同數(shù)量的通道(如果將兩個(gè)或多個(gè)通道組合在一起,則輸出的通道數(shù)更少),因此,一旦信道輸出被合并,我們需要另一個(gè)常規(guī)的1x1濾波器,或點(diǎn)卷積,來增加或減少信道的數(shù)量,就像常規(guī)卷積一樣。這個(gè)想法早在一篇名為“Learning visual representations at scale(學(xué)習(xí)視覺表征的規(guī)模)”的論文中有描述,偶爾也會(huì)在InceptionV2中使用。Exception更進(jìn)一步的用這種新類型取代了幾乎所有的卷積。模型實(shí)驗(yàn)結(jié)果很好,它超越了ResNet和InceptionV3,成為一種新的SOTA圖像分類方法,這也證明了CNN中的交叉相關(guān)和空間相關(guān)性的映射可以完全解耦,此外,Exception與ResNet有著相同的優(yōu)點(diǎn),它的設(shè)計(jì)也簡(jiǎn)單美觀,因此它的思想也被許多后續(xù)的研究所使用,如MobileNet、DeepLabV3等。
卷積神經(jīng)網(wǎng)絡(luò)在圖像分類中的應(yīng)用Bag of Tricks主要介紹了圖像分類領(lǐng)域中常用的技巧。當(dāng)工程師需要提高基準(zhǔn)性能時(shí),它可以作為一個(gè)很好的參考。這些技巧,如混合增強(qiáng)和余弦學(xué)習(xí)率,有時(shí)比一個(gè)新的網(wǎng)絡(luò)架構(gòu)能取得更好的改善。
Karen Simonyan, Andrew Zisserman, Very Deep Convolutional Networks for Large-Scale Image Recognition
https://arxiv.org/abs/1409.1556
Christian Szegedy, Wei Liu, Yangqing Jia, Pierre Sermanet, Scott Reed, Dragomir Anguelov, Dumitru Erhan, Vincent Vanhoucke, Andrew Rabinovich, Going Deeper with Convolutions
https://arxiv.org/abs/1409.4842
Sergey Ioffe, Christian Szegedy, Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift
https://arxiv.org/abs/1502.03167
Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun, Deep Residual Learning for Image Recognition
https://arxiv.org/abs/1512.03385
Fran?ois Chollet, Xception: Deep Learning with Depthwise Separable Convolutions
https://arxiv.org/abs/1610.02357
Andrew G. Howard, Menglong Zhu, Bo Chen, Dmitry Kalenichenko, Weijun Wang, Tobias Weyand, Marco Andreetto, Hartwig Adam, MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Application
https://arxiv.org/abs/1704.04861
Barret Zoph, Vijay Vasudevan, Jonathon Shlens, Quoc V. Le, Learning Transferable Architectures for Scalable Image Recognition
https://arxiv.org/abs/1707.07012
Mingxing Tan, Quoc V. Le, EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks
https://arxiv.org/abs/1905.11946
Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun, Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition
https://arxiv.org/abs/1406.4729
Gao Huang, Zhuang Liu, Laurens van der Maaten, Kilian Q. Weinberger, Densely Connected Convolutional Networks
https://arxiv.org/abs/1608.06993
Jie Hu, Li Shen, Samuel Albanie, Gang Sun, Enhua Wu, Squeeze-and-Excitation Networks
https://arxiv.org/abs/1709.01507
Xiangyu Zhang, Xinyu Zhou, Mengxiao Lin, Jian Sun, ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices
https://arxiv.org/abs/1707.01083
Tong He, Zhi Zhang, Hang Zhang, Zhongyue Zhang, Junyuan Xie, Mu Li, Bag of Tricks for Image Classification with Convolutional Neural Networks