深度學(xué)習(xí)時(shí)代您應(yīng)該閱讀的10篇文章了解圖像分類(lèi)
本文為聯(lián)盟學(xué)習(xí)筆記
參與:王博kings,Sophia
前言
計(jì)算機(jī)視覺(jué)是將圖像和視頻轉(zhuǎn)換成機(jī)器可理解的信號(hào)的主題。利用這些信號(hào),程序員可以基于這種高級(jí)理解來(lái)進(jìn)一步控制機(jī)器的行為。在許多計(jì)算機(jī)視覺(jué)任務(wù)中,圖像分類(lèi)是最基本的任務(wù)之一。它不僅可以用于許多實(shí)際產(chǎn)品中,例如Google Photo的標(biāo)簽和AI內(nèi)容審核,而且還為許多更高級(jí)的視覺(jué)任務(wù)(例如物體檢測(cè)和視頻理解)打開(kāi)了一扇門(mén)。自從深度學(xué)習(xí)的突破以來(lái),由于該領(lǐng)域的快速變化,初學(xué)者經(jīng)常發(fā)現(xiàn)它太笨拙,無(wú)法學(xué)習(xí)。與典型的軟件工程學(xué)科不同,沒(méi)有很多關(guān)于使用DCNN進(jìn)行圖像分類(lèi)的書(shū)籍,而了解該領(lǐng)域的最佳方法是閱讀學(xué)術(shù)論文。但是要讀什么論文?我從哪說(shuō)起呢?在本文中,我將介紹10篇最佳論文供初學(xué)者閱讀。通過(guò)這些論文,我們可以看到該領(lǐng)域是如何發(fā)展的,以及研究人員如何根據(jù)以前的研究成果提出新的想法。但是,即使您已經(jīng)在此領(lǐng)域工作了一段時(shí)間,對(duì)您進(jìn)行大范圍整理仍然很有幫助。
本文涉及論文已打包,后臺(tái)回復(fù)“9079”獲取下載鏈接
1998年:LeNet
梯度學(xué)習(xí)在于文檔識(shí)別中的應(yīng)用

摘自“ 基于梯度的學(xué)習(xí)應(yīng)用于文檔識(shí)別”
LeNet于1998年推出,為使用卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行未來(lái)圖像分類(lèi)研究奠定了基礎(chǔ)。許多經(jīng)典的CNN技術(shù)(例如池化層,完全連接的層,填充和激活層)用于提取特征并進(jìn)行分類(lèi)。借助均方誤差損失功能和20個(gè)訓(xùn)練周期,該網(wǎng)絡(luò)在MNIST測(cè)試集上可以達(dá)到99.05%的精度。即使經(jīng)過(guò)20年,仍然有許多最先進(jìn)的分類(lèi)網(wǎng)絡(luò)總體上遵循這種模式。
2012年:AlexNet
深度卷積神經(jīng)網(wǎng)絡(luò)的ImageNet分類(lèi)

摘自“ 具有深度卷積神經(jīng)網(wǎng)絡(luò)的ImageNet分類(lèi)”
盡管LeNet取得了不錯(cuò)的成績(jī)并顯示了CNN的潛力,但由于計(jì)算能力和數(shù)據(jù)量有限,該領(lǐng)域的發(fā)展停滯了十年。看起來(lái)CNN只能解決一些簡(jiǎn)單的任務(wù),例如數(shù)字識(shí)別,但是對(duì)于更復(fù)雜的特征(如人臉和物體),帶有SVM分類(lèi)器的HarrCascade或SIFT特征提取器是更可取的方法。
但是,在2012年ImageNet大規(guī)模視覺(jué)識(shí)別挑戰(zhàn)賽中,Alex Krizhevsky提出了基于CNN的解決方案來(lái)應(yīng)對(duì)這一挑戰(zhàn),并將ImageNet測(cè)試裝置的top-5準(zhǔn)確性從73.8%大幅提高到84.7%。他們的方法繼承了LeNet的多層CNN想法,但是大大增加了CNN的大小。從上圖可以看到,與LeNet的32x32相比,現(xiàn)在的輸入為224x224,與LeNet的6相比,許多卷積內(nèi)核具有192個(gè)通道。盡管設(shè)計(jì)變化不大,但參數(shù)變化了數(shù)百次,但網(wǎng)絡(luò)的捕獲和表示復(fù)雜特征的能力也提高了數(shù)百倍。為了進(jìn)行大型模型訓(xùn)練,Alex使用了兩個(gè)具有3GB RAM的GTX 580 GPU,這開(kāi)創(chuàng)了GPU訓(xùn)練的先河。同樣,使用ReLU非線性也有助于降低計(jì)算成本。
除了為網(wǎng)絡(luò)帶來(lái)更多參數(shù)外,它還通過(guò)使用 Dropout層探討了大型網(wǎng)絡(luò)帶來(lái)的過(guò)擬合問(wèn)題 。其局部響應(yīng)歸一化方法此后并沒(méi)有獲得太大的普及,但是啟發(fā)了其他重要的歸一化技術(shù)(例如BatchNorm)來(lái)解決梯度飽和問(wèn)題。綜上所述,AlexNet定義了未來(lái)十年的實(shí)際分類(lèi)網(wǎng)絡(luò)框架:卷積,ReLu非線性激活,MaxPooling和Dense層的組合。
2014年:VGG
超深度卷積網(wǎng)絡(luò)用于大規(guī)模圖像識(shí)別

來(lái)自Quora“ https://www.quora.com/What-is-the-VGG-neural-network”
在使用CNN進(jìn)行視覺(jué)識(shí)別方面取得了巨大成功,整個(gè)研究界都大吃一驚,所有人都開(kāi)始研究為什么這種神經(jīng)網(wǎng)絡(luò)能夠如此出色地工作。例如,在2013年發(fā)表的“可視化和理解卷積網(wǎng)絡(luò)”中,Matthew Zeiler討論了CNN如何獲取特征并可視化中間表示。突然之間,每個(gè)人都開(kāi)始意識(shí)到CNN自2014年以來(lái)就是計(jì)算機(jī)視覺(jué)的未來(lái)。在所有直接關(guān)注者中,Visual Geometry Group的VGG網(wǎng)絡(luò)是最吸引眼球的網(wǎng)絡(luò)。在ImageNet測(cè)試儀上,它的top-5準(zhǔn)確度達(dá)到93.2%,top-1準(zhǔn)確度達(dá)到了76.3%。
遵循AlexNet的設(shè)計(jì),VGG網(wǎng)絡(luò)有兩個(gè)主要更新:1)VGG不僅使用了像AlexNet這樣的更廣泛的網(wǎng)絡(luò),而且使用了更深的網(wǎng)絡(luò)。VGG-19具有19個(gè)卷積層,而AlexNet中只有5個(gè)。2)VGG還展示了一些小的3x3卷積濾波器可以代替AlexNet的單個(gè)7x7甚至11x11濾波器,在降低計(jì)算成本的同時(shí)實(shí)現(xiàn)更好的性能。由于這種優(yōu)雅的設(shè)計(jì),VGG也成為了其他計(jì)算機(jī)視覺(jué)任務(wù)中許多開(kāi)拓性網(wǎng)絡(luò)的骨干網(wǎng)絡(luò),例如用于語(yǔ)義分割的FCN和用于對(duì)象檢測(cè)的Faster R-CNN。
隨著網(wǎng)絡(luò)的深入,從多層反向傳播中梯度消失成為一個(gè)更大的問(wèn)題。為了解決這個(gè)問(wèn)題,VGG還討論了預(yù)訓(xùn)練和權(quán)重初始化的重要性。這個(gè)問(wèn)題限制了研究人員繼續(xù)添加更多的層,否則,網(wǎng)絡(luò)將很難融合。但是兩年后,我們將為此找到更好的解決方案。
2014年:GoogLeNet
更深卷積

摘自“ Going Deeper with Convolutions”
VGG具有漂亮的外觀和易于理解的結(jié)構(gòu),但在ImageNet 2014競(jìng)賽的所有決賽入圍者中表現(xiàn)都不佳。GoogLeNet(又名InceptionV1)獲得了最終獎(jiǎng)。就像VGG一樣,GoogLeNet的主要貢獻(xiàn)之一就是 采用22層結(jié)構(gòu)來(lái)突破網(wǎng)絡(luò)深度的限制 。這再次證明,進(jìn)一步深入確實(shí)是提高準(zhǔn)確性的正確方向。
與VGG不同,GoogLeNet試圖直接解決計(jì)算和梯度遞減問(wèn)題,而不是提出具有更好的預(yù)訓(xùn)練模式和權(quán)重初始化的解決方法。

Bottleneck Inception Module From “ Going Deeper with Convolutions”
首先,它 使用稱(chēng)為Inception的模塊探索了非對(duì)稱(chēng)網(wǎng)絡(luò)設(shè)計(jì)的思想 (請(qǐng)參見(jiàn)上圖)。理想情況下,他們希望采用稀疏卷積或密集層來(lái)提高特征效率,但是現(xiàn)代硬件設(shè)計(jì)并非針對(duì)這種情況。因此,他們認(rèn)為,網(wǎng)絡(luò)拓?fù)浼?jí)別的稀疏性還可以在利用現(xiàn)有硬件功能的同時(shí),幫助融合功能。
其次,它通過(guò)借鑒論文“網(wǎng)絡(luò)中的網(wǎng)絡(luò)”來(lái)解決高計(jì)算成本的問(wèn)題?;旧希?引入1x1卷積濾波器以在進(jìn)行繁重的計(jì)算操作(如5x5卷積內(nèi)核)之前減小特征的尺寸 。以后將該結(jié)構(gòu)稱(chēng)為“ Bottleneck ”,并在許多后續(xù)網(wǎng)絡(luò)中廣泛使用。類(lèi)似于“網(wǎng)絡(luò)中的網(wǎng)絡(luò)”,它還使用平均池層代替最終的完全連接層,以進(jìn)一步降低成本。
第三,為了幫助梯度流向更深的層次,GoogLeNet還對(duì)某些中間層輸出或輔助輸出使用了監(jiān)督。由于其復(fù)雜性,該設(shè)計(jì)后來(lái)在圖像分類(lèi)網(wǎng)絡(luò)中并不十分流行,但是在計(jì)算機(jī)視覺(jué)的其他領(lǐng)域(如Hourglass網(wǎng)絡(luò))的姿勢(shì)估計(jì)中越來(lái)越流行。
作為后續(xù)行動(dòng),這個(gè)Google團(tuán)隊(duì)為此Inception系列寫(xiě)了更多論文?!芭幚硪?guī)范化:通過(guò)減少內(nèi)部協(xié)變量偏移來(lái)加速深度網(wǎng)絡(luò)訓(xùn)練”代表 InceptionV2 。2015年的“重新思考計(jì)算機(jī)視覺(jué)的Inception架構(gòu)”代表 InceptionV3 。2015年的“ Inception-v4,Inception-ResNet和殘余連接對(duì)學(xué)習(xí)的影響”代表 InceptionV4 。每篇論文都對(duì)原始的Inception網(wǎng)絡(luò)進(jìn)行了更多改進(jìn),并取得了更好的效果。
2015年:Batch Normalization
批處理規(guī)范化:通過(guò)減少內(nèi)部協(xié)變量偏移來(lái)加速深度網(wǎng)絡(luò)訓(xùn)練
初始網(wǎng)絡(luò)幫助研究人員在ImageNet數(shù)據(jù)集上達(dá)到了超人的準(zhǔn)確性。但是,作為一種統(tǒng)計(jì)學(xué)習(xí)方法, CNN非常受特定訓(xùn)練數(shù)據(jù)集的統(tǒng)計(jì)性質(zhì)的限制 。因此,為了獲得更高的準(zhǔn)確性,我們通常需要預(yù)先計(jì)算整個(gè)數(shù)據(jù)集的平均值和標(biāo)準(zhǔn)偏差,并使用它們首先對(duì)我們的輸入進(jìn)行歸一化,以確保網(wǎng)絡(luò)中的大多數(shù)層輸入都緊密,從而轉(zhuǎn)化為更好的激活響應(yīng)能力。這種近似方法非常麻煩,有時(shí)對(duì)于新的網(wǎng)絡(luò)結(jié)構(gòu)或新的數(shù)據(jù)集根本不起作用,因此深度學(xué)習(xí)模型仍然被認(rèn)為很難訓(xùn)練。為了解決這個(gè)問(wèn)題,創(chuàng)建GoogLeNet的人Sergey Ioffe和Chritian Szegedy決定發(fā)明一種更聰明的東西,稱(chēng)為“ 批量標(biāo)準(zhǔn)化 ”。

摘自“ 批量標(biāo)準(zhǔn)化:通過(guò)減少內(nèi)部協(xié)變量偏移來(lái)加速深度網(wǎng)絡(luò)訓(xùn)練”
批量規(guī)范化的想法并不難:只要訓(xùn)練足夠長(zhǎng)的時(shí)間,我們就可以使用一系列小批量的統(tǒng)計(jì)數(shù)據(jù)來(lái)近似整個(gè)數(shù)據(jù)集的統(tǒng)計(jì)數(shù)據(jù)。而且,代替手動(dòng)計(jì)算統(tǒng)計(jì)信息,我們可以引入兩個(gè)更多可學(xué)習(xí)的參數(shù) “縮放” 和 “移位” ,以使網(wǎng)絡(luò)學(xué)習(xí)如何單獨(dú)對(duì)每一層進(jìn)行規(guī)范化。
上圖顯示了計(jì)算批次歸一化值的過(guò)程。如我們所見(jiàn),我們?nèi)≌麄€(gè)小批量的平均值,并計(jì)算方差。接下來(lái),我們可以使用此最小批量均值和方差對(duì)輸入進(jìn)行歸一化。最后,通過(guò)比例尺和位移參數(shù),網(wǎng)絡(luò)將學(xué)會(huì)調(diào)整批標(biāo)準(zhǔn)化結(jié)果以最適合下一層,通常是ReLU。一個(gè)警告是我們?cè)谕评砥陂g沒(méi)有小批量信息,因此一種解決方法是在訓(xùn)練期間計(jì)算移動(dòng)平均值和方差,然后在推理路徑中使用這些移動(dòng)平均值。這項(xiàng)小小的創(chuàng)新是如此具有影響力,所有后來(lái)的網(wǎng)絡(luò)都立即開(kāi)始使用它。
2015年:ResNet
深度殘差學(xué)習(xí)用于圖像識(shí)別
2015年可能是十年來(lái)計(jì)算機(jī)視覺(jué)最好的一年,我們已經(jīng)看到很多偉大的想法不僅出現(xiàn)在圖像分類(lèi)中,而且還出現(xiàn)了各種各樣的計(jì)算機(jī)視覺(jué)任務(wù),例如對(duì)象檢測(cè),語(yǔ)義分割等。2015年屬于一個(gè)名為ResNet或殘差網(wǎng)絡(luò)的新網(wǎng)絡(luò),該網(wǎng)絡(luò)由Microsoft Research Asia的一組中國(guó)研究人員提出。

摘自“ 用于圖像識(shí)別的深度殘差學(xué)習(xí)”
正如我們之前在VGG網(wǎng)絡(luò)中所討論的,要變得更深,最大的障礙是梯度消失問(wèn)題,即,當(dāng)通過(guò)更深的層向后傳播時(shí),導(dǎo)數(shù)會(huì)越來(lái)越小,最終達(dá)到現(xiàn)代計(jì)算機(jī)體系結(jié)構(gòu)無(wú)法真正代表的地步有意義地。GoogLeNet嘗試通過(guò)使用輔助監(jiān)管和非對(duì)稱(chēng)啟動(dòng)模塊來(lái)對(duì)此進(jìn)行攻擊,但只能在較小程度上緩解該問(wèn)題。如果我們要使用50甚至100層,是否會(huì)有更好的方法讓漸變流過(guò)網(wǎng)絡(luò)?ResNet的答案是使用殘差模塊。

剩余的模塊從“ 深殘余學(xué)習(xí)圖像識(shí)別”
ResNet在輸出中添加了身份標(biāo)識(shí)快捷方式,因此每個(gè)殘差模塊至少都不能預(yù)測(cè)輸入是什么,而不會(huì)迷失方向。更為重要的是,殘差模塊不是希望每個(gè)圖層都直接適合所需的特征映射,而是嘗試了解輸出和輸入之間的差異,這使任務(wù)變得更加容易,因?yàn)樗璧男畔⒃鲆孑^小。想象一下,您正在學(xué)習(xí)數(shù)學(xué),對(duì)于每個(gè)新問(wèn)題,都將得到一個(gè)類(lèi)似問(wèn)題的解決方案,因此您所要做的就是擴(kuò)展此解決方案并使其起作用。這比為您遇到的每個(gè)問(wèn)題想出一個(gè)全新的解決方案要容易得多?;蛘呦衽nD所說(shuō),我們可以站在巨人的肩膀上,身份輸入就是剩余模塊的那個(gè)巨人。
除了身份映射,ResNet還從Inception網(wǎng)絡(luò)借用了瓶頸和批處理規(guī)范化。最終,它成功構(gòu)建了具有152個(gè)卷積層的網(wǎng)絡(luò),并在ImageNet上實(shí)現(xiàn)了80.72%的top-1準(zhǔn)確性。剩余方法也成為后來(lái)的許多其他網(wǎng)絡(luò)(例如Xception,Darknet等)的默認(rèn)選項(xiàng)。此外,由于其簡(jiǎn)單美觀的設(shè)計(jì),如今它仍廣泛用于許多生產(chǎn)視覺(jué)識(shí)別系統(tǒng)中。
通過(guò)追蹤殘差網(wǎng)絡(luò)的炒作,還有更多不變式出現(xiàn)。在“深層殘差網(wǎng)絡(luò)中的身份映射”中,ResNet的原始作者試圖將激活放在殘差模塊之前,并獲得了更好的結(jié)果,此設(shè)計(jì)此后稱(chēng)為ResNetV2。同樣,在2016年的論文《深度神經(jīng)網(wǎng)絡(luò)的聚合殘差變換》中,研究人員提出了ResNeXt,該模型為殘差模塊添加了并行分支,以匯總不同變換的輸出。
2016年:Xception
Xception:深度學(xué)習(xí)與深度可分卷積

摘自“ Xception:深度學(xué)習(xí)與深度可分卷積”
隨著ResNet的發(fā)布,圖像分類(lèi)器中大多數(shù)低掛的水果看起來(lái)已經(jīng)被搶走了。研究人員開(kāi)始考慮CNN魔術(shù)的內(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è)輸出通道。在這種情況下,這些并行卷積內(nèi)核實(shí)際上形成了一個(gè)稱(chēng)為深度卷積的新操作。

摘自“ 深度卷積和深度可分離卷積”
如上圖所示,與傳統(tǒng)卷積不同,傳統(tǒng)卷積包括所有通道以進(jìn)行一次計(jì)算,深度卷積僅分別計(jì)算每個(gè)通道的卷積,然后將輸出串聯(lián)在一起。這減少了通道之間的特征交換,但也減少了很多連接,因此導(dǎo)致具有較少參數(shù)的層。但是,此操作將輸出與輸入相同數(shù)量的通道(如果將兩個(gè)或多個(gè)通道組合在一起,則輸出的通道數(shù)量將減少)。因此,一旦合并了通道輸出,就需要另一個(gè)常規(guī)1x1濾波器或逐點(diǎn)卷積,以增加或減少通道數(shù),就像常規(guī)卷積一樣。
這個(gè)想法最初不是來(lái)自Xception。在名為“大規(guī)模學(xué)習(xí)視覺(jué)表示”的論文中對(duì)此進(jìn)行了描述,并且在InceptionV2中偶爾使用。Xception進(jìn)一步邁出了一步,并用這種新型卷積代替了幾乎所有的卷積。實(shí)驗(yàn)結(jié)果非常好。它超越了ResNet和InceptionV3,成為用于圖像分類(lèi)的新SOTA方法。這也證明了CNN中跨通道相關(guān)性和空間相關(guān)性的映射可以完全解耦。此外,由于與ResNet具有相同的優(yōu)點(diǎn),Xception也具有簡(jiǎn)單美觀的設(shè)計(jì),因此其思想還用于隨后的許多其他研究中,例如MobileNet,DeepLabV3等。
2017年:MobileNet
MobileNets:用于移動(dòng)視覺(jué)應(yīng)用的高效卷積神經(jīng)網(wǎng)絡(luò)
Xception在ImageNet上實(shí)現(xiàn)了79%的top-1準(zhǔn)確性和94.5%的top-5準(zhǔn)確性,但是與以前的SOTA InceptionV3相比分別僅提高了0.8%和0.4%。新圖像分類(lèi)網(wǎng)絡(luò)的邊際收益越來(lái)越小,因此研究人員開(kāi)始將注意力轉(zhuǎn)移到其他領(lǐng)域。在資源受限的環(huán)境中,MobileNet推動(dòng)了圖像分類(lèi)的重大發(fā)展。

“ MobileNets:針對(duì)移動(dòng)視覺(jué)應(yīng)用的高效卷積神經(jīng)網(wǎng)絡(luò)”中的MobileNet模塊
與Xception相似,MobileNet使用與上面所示相同的深度可分離卷積模塊,并著重于高效和較少參數(shù)。

“ MobileNets:用于移動(dòng)視覺(jué)應(yīng)用的高效卷積神經(jīng)網(wǎng)絡(luò)”中的參數(shù)比率
上式中的分子是深度可分離卷積所需的參數(shù)總數(shù)。分母是相似的規(guī)則卷積的參數(shù)總數(shù)。這里D [K]是卷積核的大小,D [F]是特征圖的大小,M是輸入通道數(shù),N是輸出通道數(shù)。由于我們將通道和空間特征的計(jì)算分開(kāi)了,因此我們可以將乘法轉(zhuǎn)換為相加,其量級(jí)較小。從該比率可以看出,更好的是,輸出通道數(shù)越多,使用該新卷積節(jié)省的計(jì)算量就越多。
MobileNet的另一個(gè)貢獻(xiàn)是寬度和分辨率乘數(shù)。MobileNet團(tuán)隊(duì)希望找到一種規(guī)范的方法來(lái)縮小移動(dòng)設(shè)備的模型大小,而最直觀的方法是減少輸入和輸出通道的數(shù)量以及輸入圖像的分辨率。為了控制此行為,比率alpha乘以通道,比率rho乘以輸入分辨率(這也會(huì)影響要素圖的大?。?。因此,參數(shù)總數(shù)可以用以下公式表示:

“ MobileNets:用于移動(dòng)視覺(jué)應(yīng)用的高效卷積神經(jīng)網(wǎng)絡(luò)”
盡管這種變化在創(chuàng)新方面看似天真,但它具有巨大的工程價(jià)值,因?yàn)檫@是研究人員首次得出結(jié)論,可以針對(duì)不同的資源約束調(diào)整網(wǎng)絡(luò)的規(guī)范方法。此外,它還總結(jié)了改進(jìn)神經(jīng)網(wǎng)絡(luò)的最終解決方案:更大和更高的分辨率輸入會(huì)導(dǎo)致更高的精度,更薄和更低的分辨率輸入會(huì)導(dǎo)致更差的精度。
在2018年和2019年晚些時(shí)候,MobiletNet團(tuán)隊(duì)還發(fā)布了“ MobileNetV2:殘差和線性瓶頸”和“搜索MobileNetV3”。在MobileNetV2中,使用了倒置的殘留瓶頸結(jié)構(gòu)。在MobileNetV3中,它開(kāi)始使用神經(jīng)體系結(jié)構(gòu)搜索技術(shù)來(lái)搜索最佳體系結(jié)構(gòu)組合,我們將在后面介紹。
2017年:NASNet
學(xué)習(xí)可擴(kuò)展的體系結(jié)構(gòu)以實(shí)現(xiàn)可擴(kuò)展的圖像識(shí)別
就像針對(duì)資源受限環(huán)境的圖像分類(lèi)一樣,神經(jīng)體系結(jié)構(gòu)搜索是在2017年左右出現(xiàn)的另一個(gè)領(lǐng)域。借助ResNet,Inception和Xception,似乎我們已經(jīng)達(dá)到了人類(lèi)可以理解和設(shè)計(jì)的最佳網(wǎng)絡(luò)拓?fù)?,但是如果有的話一個(gè)更好,更復(fù)雜的組合,遠(yuǎn)遠(yuǎn)超出了人類(lèi)的想象力?2016年的一篇論文《帶有強(qiáng)化學(xué)習(xí)的神經(jīng)體系結(jié)構(gòu)搜索》提出了一種通過(guò)強(qiáng)化學(xué)習(xí)在預(yù)定搜索空間內(nèi)搜索最佳組合的想法。眾所周知,強(qiáng)化學(xué)習(xí)是一種以目標(biāo)明確,獎(jiǎng)勵(lì)搜索代理商的最佳解決方案的方法。但是,受計(jì)算能力的限制,本文僅討論了在小型CIFAR數(shù)據(jù)集中的應(yīng)用。

NASNet搜索空間?!?學(xué)習(xí)可擴(kuò)展的體系結(jié)構(gòu)以實(shí)現(xiàn)可擴(kuò)展的圖像識(shí)別”
為了找到像ImageNet這樣的大型數(shù)據(jù)集的最佳結(jié)構(gòu),NASNet創(chuàng)建了針對(duì)ImageNet量身定制的搜索空間。它希望設(shè)計(jì)一個(gè)特殊的搜索空間,以便CIFAR上的搜索結(jié)果也可以在ImageNet上正常工作。首先,NASNet假設(shè)在良好的網(wǎng)絡(luò)(如ResNet和Xception)中常用的手工模塊在搜索時(shí)仍然有用。因此,NASNet不再搜索隨機(jī)連接和操作,而是搜索這些模塊的組合,這些模塊已被證明在ImageNet上已經(jīng)有用。其次,實(shí)際搜索仍在32x32分辨率的CIFAR數(shù)據(jù)集上執(zhí)行,因此NASNet僅搜索不受輸入大小影響的模塊。為了使第二點(diǎn)起作用,NASNet預(yù)定義了兩種類(lèi)型的模塊模板:Reduction和Normal。

摘自“ 學(xué)習(xí)可擴(kuò)展的體系結(jié)構(gòu)以實(shí)現(xiàn)可伸縮的圖像識(shí)別”
盡管NASNet具有比手動(dòng)設(shè)計(jì)網(wǎng)絡(luò)更好的度量標(biāo)準(zhǔn),但是它也有一些缺點(diǎn)。尋找最佳結(jié)構(gòu)的成本非常高,只有像Google和Facebook這樣的大公司才能負(fù)擔(dān)得起。而且,最終結(jié)構(gòu)對(duì)人類(lèi)來(lái)說(shuō)并沒(méi)有太大意義,因此在生產(chǎn)環(huán)境中難以維護(hù)和改進(jìn)。在2018年晚些時(shí)候,“ MnasNet:針對(duì)移動(dòng)平臺(tái)的神經(jīng)結(jié)構(gòu)搜索”通過(guò)使用預(yù)定義的鏈塊結(jié)構(gòu)限制搜索步驟,進(jìn)一步擴(kuò)展了NASNet的想法。此外,通過(guò)定義權(quán)重因子,mNASNet提供了一種更系統(tǒng)的方法來(lái)搜索給定特定資源限制的模型,而不僅僅是基于FLOP進(jìn)行評(píng)估。
2019年:EfficientNet
EfficientNet:卷積神經(jīng)網(wǎng)絡(luò)模型縮放的反思
在2019年,對(duì)于CNN進(jìn)行監(jiān)督圖像分類(lèi)似乎不再有令人興奮的想法。網(wǎng)絡(luò)結(jié)構(gòu)的急劇變化通常只會(huì)帶來(lái)少許的精度提高。更糟的是,當(dāng)同一網(wǎng)絡(luò)應(yīng)用于不同的數(shù)據(jù)集和任務(wù)時(shí),以前聲稱(chēng)的技巧似乎不起作用,這引發(fā)了人們的批評(píng),即這些改進(jìn)是否僅適合ImageNet數(shù)據(jù)集。另一方面,有一個(gè)技巧絕不會(huì)辜負(fù)我們的期望:使用更高分辨率的輸入,為卷積層添加更多通道以及添加更多層。盡管力量非常殘酷,但似乎存在一種按需擴(kuò)展網(wǎng)絡(luò)的原則方法。MobileNetV1在2017年提出了這種建議,但后來(lái)重點(diǎn)轉(zhuǎn)移到了更好的網(wǎng)絡(luò)設(shè)計(jì)上。

摘自“ EfficientNet:卷積神經(jīng)網(wǎng)絡(luò)的模型縮放思考”
繼NASNet和mNASNet之后,研究人員意識(shí)到,即使在計(jì)算機(jī)的幫助下,架構(gòu)的改變也不會(huì)帶來(lái)太多好處。因此,他們開(kāi)始回落到擴(kuò)展網(wǎng)絡(luò)規(guī)模。EfficientNet只是建立在此假設(shè)之上的。一方面,它使用了mNASNet的最佳構(gòu)建基塊,以確保有良好的基礎(chǔ)。另一方面,它定義了三個(gè)參數(shù)alpha,beta和rho來(lái)分別控制網(wǎng)絡(luò)的深度,寬度和分辨率。這樣,即使沒(méi)有大型GPU池來(lái)搜索最佳結(jié)構(gòu),工程師仍可以依靠這些原則性參數(shù)根據(jù)他們的不同要求來(lái)調(diào)整網(wǎng)絡(luò)。最后,EfficientNet提供了8種不同的變體,它們具有不同的寬度,深度和分辨率,并且無(wú)論大小模型都具有良好的性能。換句話說(shuō),如果要獲得較高的精度,請(qǐng)使用600x600和66M參數(shù)的EfficientNet-B7。如果您想要低延遲和更小的模型,請(qǐng)使用224x224和5.3M參數(shù)EfficientNet-B0。問(wèn)題解決了。
其他
如果您完成了10篇以上的論文的閱讀,您應(yīng)該對(duì)CNN的圖像分類(lèi)歷史有了很好的了解。如果您想繼續(xù)學(xué)習(xí)這一領(lǐng)域,我還列出了一些其他有趣的論文供您閱讀,這些論文在各自領(lǐng)域都很有名,并啟發(fā)了世界上許多其他研究人員。
2014年:SPPNet
深度卷積網(wǎng)絡(luò)中的空間金字塔池用于視覺(jué)識(shí)別
SPPNet從傳統(tǒng)的計(jì)算機(jī)視覺(jué)特征提取中借鑒了特征金字塔的思想。該金字塔形成了一個(gè)具有不同比例的要素詞袋,因此它可以適應(yīng)不同的輸入大小并擺脫固定大小的全連接層。這個(gè)想法還進(jìn)一步啟發(fā)了DeepLab的ASPP模塊以及用于對(duì)象檢測(cè)的FPN。
2016年:DenseNet
緊密連接的卷積網(wǎng)絡(luò)
康奈爾大學(xué)的DenseNet進(jìn)一步擴(kuò)展了ResNet的想法。它不僅提供各層之間的跳過(guò)連接,而且還具有來(lái)自所有先前各層的跳過(guò)連接。
2017年:SENet
擠壓和激勵(lì)網(wǎng)絡(luò)
Xception網(wǎng)絡(luò)證明,跨渠道關(guān)聯(lián)與空間關(guān)聯(lián)關(guān)系不大。但是,作為上屆ImageNet競(jìng)賽的冠軍,SENet設(shè)計(jì)了一個(gè)“擠壓和激發(fā)”區(qū)并講述了一個(gè)不同的故事。SE塊首先使用全局池將所有通道壓縮為較少的通道,然后應(yīng)用完全連接的變換,然后使用另一個(gè)完全連接的層將其“激發(fā)”回原來(lái)的通道數(shù)量。因此,實(shí)質(zhì)上,F(xiàn)C層幫助網(wǎng)絡(luò)了解輸入要素圖上的注意力。
2017年:ShuffleNet
ShuffleNet:一種用于移動(dòng)設(shè)備的極其高效的卷積神經(jīng)網(wǎng)絡(luò)
ShuffleNet構(gòu)建在MobileNetV2的倒置瓶頸模塊之上,他認(rèn)為深度可分離卷積中的點(diǎn)式卷積會(huì)犧牲準(zhǔn)確性,以換取更少的計(jì)算量。為了彌補(bǔ)這一點(diǎn),ShuffleNet增加了一個(gè)額外的通道改組操作,以確保逐點(diǎn)卷積不會(huì)始終應(yīng)用于相同的“點(diǎn)”。在ShuffleNetV2中,此通道重排機(jī)制也進(jìn)一步擴(kuò)展到ResNet身份映射分支,因此身份功能的一部分也將用于重排。
2018:Bag of Tricks
使用卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行圖像分類(lèi)的技巧
“技巧包”重點(diǎn)介紹在圖像分類(lèi)區(qū)域中使用的常見(jiàn)技巧。當(dāng)工程師需要提高基準(zhǔn)性能時(shí),它可以作為很好的參考。有趣的是,諸如混合增強(qiáng)和余弦學(xué)習(xí)速率之類(lèi)的這些技巧有時(shí)可以比新的網(wǎng)絡(luò)體系結(jié)構(gòu)實(shí)現(xiàn)更好的改進(jìn)。
結(jié)論
隨著EfficientNet的發(fā)布,ImageNet分類(lèi)基準(zhǔn)似乎即將結(jié)束。使用現(xiàn)有的深度學(xué)習(xí)方法,除非發(fā)生另一種模式轉(zhuǎn)變,否則我們永遠(yuǎn)不會(huì)有一天可以在ImageNet上達(dá)到99.999%的準(zhǔn)確性。因此,研究人員正在積極研究一些新穎的領(lǐng)域,例如用于大規(guī)模視覺(jué)識(shí)別的自我監(jiān)督或半監(jiān)督學(xué)習(xí)。同時(shí),使用現(xiàn)有方法,對(duì)于工程師和企業(yè)家來(lái)說(shuō),找到這種不完美技術(shù)的實(shí)際應(yīng)用已經(jīng)成為一個(gè)問(wèn)題。
Reference
Y. Lecun, L. Bottou, Y. Bengio, P. Haffner, Gradient-based Learning Applied to Document Recognition
Alex Krizhevsky, Ilya Sutskever, Geoffrey E. Hinton, ImageNet Classification with Deep Convolutional Neural Networks
Karen Simonyan, Andrew Zisserman, Very Deep Convolutional Networks for Large-Scale Image Recognition
Christian Szegedy, Wei Liu, Yangqing Jia, Pierre Sermanet, Scott Reed, Dragomir Anguelov, Dumitru Erhan, Vincent Vanhoucke, Andrew Rabinovich, Going Deeper with Convolutions
Sergey Ioffe, Christian Szegedy, Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift
Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun, Deep Residual Learning for Image Recognition
Fran?ois Chollet, Xception: Deep Learning with Depthwise Separable Convolutions
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
Barret Zoph, Vijay Vasudevan, Jonathon Shlens, Quoc V. Le, Learning Transferable Architectures for Scalable Image Recognition
Mingxing Tan, Quoc V. Le, EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks
Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun, Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition
Gao Huang, Zhuang Liu, Laurens van der Maaten, Kilian Q. Weinberger, Densely Connected Convolutional Networks
Jie Hu, Li Shen, Samuel Albanie, Gang Sun, Enhua Wu, Squeeze-and-Excitation Networks
Xiangyu Zhang, Xinyu Zhou, Mengxiao Lin, Jian Sun, ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices
Tong He, Zhi Zhang, Hang Zhang, Zhongyue Zhang, Junyuan Xie, Mu Li, Bag of Tricks for Image Classification with Convolutional Neural Networks
https://towardsdatascience.com/10-papers-you-should-read-to-understand-image-classification-in-the-deep-learning-era-4b9d792f45a7
