收藏!深度學習必讀10篇經典算法論文總結!

AI博士筆記系列推薦:周志華《機器學習》手推筆記正式開源!可打印版本附pdf下載連接程序員

本文爲聯盟學習筆記網絡

參與:王博kings,Sophia架構

本文涉及論文已打包,公衆號【計算機視覺聯盟】後臺回覆「9079」獲取下載連接!

前言

計算機視覺是將圖像和視頻轉換成機器可理解的信號的主題。利用這些信號,程序員能夠基於這種高級理解來進一步控制機器的行爲。在許多計算機視覺任務中,圖像分類是最基本的任務之一。它不只能夠用於許多實際產品中,例如Google Photo的標籤和AI內容審覈,並且還爲許多更高級的視覺任務(例如物體檢測和視頻理解)打開了一扇門。自從深度學習的突破以來,因爲該領域的快速變化,初學者常常發現它太笨拙,沒法學習。與典型的軟件工程學科不一樣,沒有不少關於使用DCNN進行圖像分類的書籍,而瞭解該領域的最佳方法是閱讀學術論文。可是要讀什麼論文?我從哪提及呢?在本文中,我將介紹10篇最佳論文供初學者閱讀。經過這些論文,咱們能夠看到該領域是如何發展的,以及研究人員如何根據之前的研究成果提出新的想法。可是,即便您已經在此領域工做了一段時間,對您進行大範圍整理仍然頗有幫助。框架

1998年:LeNet

梯度學習在於文檔識別中的應用 機器學習

圖片

摘自「 基於梯度的學習應用於文檔識別性能

LeNet於1998年推出,爲使用卷積神經網絡進行將來圖像分類研究奠基了基礎。許多經典的CNN技術(例如池化層,徹底鏈接的層,填充和激活層)用於提取特徵並進行分類。藉助均方偏差損失功能和20個訓練週期,該網絡在MNIST測試集上能夠達到99.05%的精度。即便通過20年,仍然有許多最早進的分類網絡整體上遵循這種模式。學習

2012年:AlexNet

深度卷積神經網絡的ImageNet分類 測試

圖片

摘自「 具備深度卷積神經網絡的ImageNet分類spa

儘管LeNet取得了不錯的成績並顯示了CNN的潛力,但因爲計算能力和數據量有限,該領域的發展停滯了十年。看起來CNN只能解決一些簡單的任務,例如數字識別,可是對於更復雜的特徵(如人臉和物體),帶有SVM分類器的HarrCascade或SIFT特徵提取器是更可取的方法。 設計

可是,在2012年ImageNet大規模視覺識別挑戰賽中,Alex Krizhevsky提出了基於CNN的解決方案來應對這一挑戰,並將ImageNet測試裝置的top-5準確性從73.8%大幅提升到84.7%。他們的方法繼承了LeNet的多層CNN想法,可是大大增長了CNN的大小。從上圖能夠看到,與LeNet的32x32相比,如今的輸入爲224x224,與LeNet的6相比,許多卷積內核具備192個通道。儘管設計變化不大,但參數變化了數百次,但網絡的捕獲和表示複雜特徵的能力也提升了數百倍。爲了進行大型模型訓練,Alex使用了兩個具備3GB RAM的GTX 580 GPU,這開創了GPU訓練的先河。一樣,使用ReLU非線性也有助於下降計算成本。

除了爲網絡帶來更多參數外,它還經過使用 Dropout層探討了大型網絡帶來的過擬合問題 。其局部響應歸一化方法此後並無得到太大的普及,可是啓​​發了其餘重要的歸一化技術(例如BatchNorm)來解決梯度飽和問題。綜上所述,AlexNet定義了將來十年的實際分類網絡框架: 卷積,ReLu非線性激活,MaxPooling和Dense層的組合。

2014年:VGG

超深度卷積網絡用於大規模圖像識別

圖片

來自Quora「 https://www.quora.com/What-is-the-VGG-neural-network

在使用CNN進行視覺識別方面取得了巨大成功,整個研究界都大吃一驚,全部人都開始研究爲何這種神經網絡可以如此出色地工做。例如,在2013年發表的「可視化和理解卷積網絡」中,Matthew Zeiler討論了CNN如何獲取特徵並可視化中間表示。忽然之間,每一個人都開始意識到CNN自2014年以來就是計算機視覺的將來。在全部直接關注者中,Visual Geometry Group的VGG網絡是最吸引眼球的網絡。在ImageNet測試儀上,它的top-5準確度達到93.2%,top-1準確度達到了76.3%。

遵循AlexNet的設計,VGG網絡有兩個主要更新: 1)VGG不只使用了像AlexNet這樣的更普遍的網絡,並且使用了更深的網絡。VGG-19具備19個卷積層,而AlexNet中只有5個。2)VGG還展現了一些小的3x3卷積濾波器能夠代替AlexNet的單個7x7甚至11x11濾波器,在下降計算成本的同時實現更好的性能。 因爲這種優雅的設計,VGG也成爲了其餘計算機視覺任務中許多開拓性網絡的骨幹網絡,例如用於語義分割的FCN和用於對象檢測的Faster R-CNN。

隨着網絡的深刻,從多層反向傳播中梯度消失成爲一個更大的問題。爲了解決這個問題,VGG還討論了預訓練和權重初始化的重要性。這個問題限制了研究人員繼續添加更多的層,不然,網絡將很難融合。可是兩年後,咱們將爲此找到更好的解決方案。

2014年:GoogLeNet

更深卷積

圖片

摘自「 Going Deeper with Convolutions

VGG具備漂亮的外觀和易於理解的結構,但在ImageNet 2014競賽的全部決賽入圍者中表現都不佳。GoogLeNet(又名InceptionV1)得到了最終獎。就像VGG同樣,GoogLeNet的主要貢獻之一就是 採用22層結構來突破網絡深度的限制 。這再次證實,進一步深刻確實是提升準確性的正確方向。

與VGG不一樣,GoogLeNet試圖直接解決計算和梯度遞減問題,而不是提出具備更好的預訓練模式和權重初始化的解決方法。

圖片

Bottleneck Inception Module From 「 Going Deeper with Convolutions

首先,它 使用稱爲Inception的模塊探索了非對稱網絡設計的思想 (請參見上圖)。理想狀況下,他們但願採用稀疏卷積或密集層來提升特徵效率,可是現代硬件設計並不是針對這種狀況。所以,他們認爲,網絡拓撲級別的稀疏性還能夠在利用現有硬件功能的同時,幫助融合功能。

其次,它經過借鑑論文「網絡中的網絡」來解決高計算成本的問題。基本上, 引入1x1卷積濾波器以在進行繁重的計算操做(如5x5卷積內核)以前減少特徵的尺寸 。之後將該結構稱爲「 Bottleneck 」,並在許多後續網絡中普遍使用。相似於「網絡中的網絡」,它還使用平均池層代替最終的徹底鏈接層,以進一步下降成本。

第三,爲了幫助梯度流向更深的層次,GoogLeNet還對某些中間層輸出或輔助輸出使用了監督。因爲其複雜性,該設計後來在圖像分類網絡中並不十分流行,可是在計算機視覺的其餘領域(如Hourglass網絡)的姿式估計中愈來愈流行。

做爲後續行動,這個Google團隊爲此Inception系列寫了更多論文。「批處理規範化:經過減小內部協變量偏移來加速深度網絡訓練」表明 InceptionV2 。2015年的「從新思考計算機視覺的Inception架構」表明 InceptionV3 。2015年的「 Inception-v4,Inception-ResNet和殘餘鏈接對學習的影響」表明 InceptionV4 。每篇論文都對原始的Inception網絡進行了更多改進,並取得了更好的效果。

2015年:Batch Normalization

批處理規範化:經過減小內部協變量偏移來加速深度網絡訓練

初始網絡幫助研究人員在ImageNet數據集上達到了超人的準確性。可是,做爲一種統計學習方法, CNN很是受特定訓練數據集的統計性質的限制 。所以,爲了得到更高的準確性,咱們一般須要預先計算整個數據集的平均值和標準誤差,並使用它們首先對咱們的輸入進行歸一化,以確保網絡中的大多數層輸入都緊密,從而轉化爲更好的激活響應能力。這種近似方法很是麻煩,有時對於新的網絡結構或新的數據集根本不起做用,所以深度學習模型仍然被認爲很難訓練。爲了解決這個問題,建立GoogLeNet的人Sergey Ioffe和Chritian Szegedy決定發明一種更聰明的東西,稱爲「 批量標準化 」。

圖片

摘自「 批量標準化:經過減小內部協變量偏移來加速深度網絡訓練

批量規範化的想法並不難:只要訓練足夠長的時間,咱們就可使用一系列小批量的統計數據來近似整個數據集的統計數據。並且,代替手動計算統計信息,咱們能夠引入兩個更多可學習的參數 「縮放」「移位」 ,以使網絡學習如何單獨對每一層進行規範化。

上圖顯示了計算批次歸一化值的過程。如咱們所見,咱們取整個小批量的平均值,並計算方差。接下來,咱們可使用此最小批量均值和方差對輸入進行歸一化。最後,經過比例尺和位移參數,網絡將學會調整批標準化結果以最適合下一層,一般是ReLU。一個警告是咱們在推理期間沒有小批量信息,所以一種解決方法是在訓練期間計算移動平均值和方差,而後在推理路徑中使用這些移動平均值。這項小小的創新是如此具備影響力,全部後來的網絡都當即開始使用它。

2015年:ResNet

深度殘差學習用於圖像識別

2015年多是十年來計算機視覺最好的一年,咱們已經看到不少偉大的想法不只出如今圖像分類中,並且還出現了各類各樣的計算機視覺任務,例如對象檢測,語義分割等。 2015年屬於一個名爲ResNet或殘差網絡的新網絡,該網絡由Microsoft Research Asia的一組中國研究人員提出。

圖片

摘自「 用於圖像識別的深度殘差學習

正如咱們以前在VGG網絡中所討論的,要變得更深,最大的障礙是梯度消失問題,即,當經過更深的層向後傳播時,導數會愈來愈小,最終達到現代計算機體系結構沒法真正表明的地步有意義地。GoogLeNet嘗試經過使用輔助監管和非對稱啓動模塊來對此進行攻擊,但只能在較小程度上緩解該問題。若是咱們要使用50甚至100層,是否會有更好的方法讓漸變流過網絡?ResNet的答案是使用殘差模塊。

圖片

剩餘的模塊從「 深殘餘學習圖像識別

ResNet在輸出中添加了身份標識快捷方式,所以每一個殘差模塊至少都不能預測輸入是什麼,而不會迷失方向。更爲重要的是,殘差模塊不是但願每一個圖層都直接適合所需的特徵映射,而是嘗試瞭解輸出和輸入之間的差別,這使任務變得更加容易,由於所需的信息增益較小。想象一下,您正在學習數學,對於每一個新問題,都將獲得一個相似問題的解決方案,所以您所要作的就是擴展此解決方案並使其起做用。這比爲您遇到的每一個問題想出一個全新的解決方案要容易得多。或者像牛頓所說,咱們能夠站在巨人的肩膀上,身份輸入就是剩餘模塊的那個巨人。

除了身份映射,ResNet還從Inception網絡借用了瓶頸和批處理規範化。最終,它成功構建了具備152個卷積層的網絡,並在ImageNet上實現了80.72%的top-1準確性。剩餘方法也成爲後來的許多其餘網絡(例如Xception,Darknet等)的默認選項。此外,因爲其簡單美觀的設計,現在它仍普遍用於許多生產視覺識別系統中。

經過追蹤殘差網絡的炒做,還有更多不變式出現。在「深層殘差網絡中的身份映射」中,ResNet的原始做者試圖將激活放在殘差模塊以前,並得到了更好的結果,此設計此後稱爲ResNetV2。一樣,在2016年的論文《深度神經網絡的聚合殘差變換》中,研究人員提出了ResNeXt,該模型爲殘差模塊添加了並行分支,以彙總不一樣變換的輸出。

2016年:Xception

Xception:深度學習與深度可分卷積

圖片

摘自「 Xception:深度學習與深度可分卷積

隨着ResNet的發佈,圖像分類器中大多數低掛的水果看起來已經被搶走了。研究人員開始考慮CNN魔術的內部機制是什麼。因爲跨通道卷積一般會引入大量參數,所以Xception網絡選擇調查此操做以瞭解其效果的全貌。

就像它的名字同樣,Xception源自Inception網絡。在Inception模塊中,將不一樣轉換的多個分支聚合在一塊兒以實現拓撲稀疏性。可是爲何這種稀疏起做用了?Xception的做者,也是Keras框架的做者,將此想法擴展到了一種極端狀況,在這種狀況下,一個3x3卷積文件對應於最後一個串聯以前的一個輸出通道。在這種狀況下,這些並行卷積內核實際上造成了一個稱爲深度卷積的新操做。

圖片

摘自「 深度卷積和深度可分離卷積

如上圖所示,與傳統卷積不一樣,傳統卷積包括全部通道以進行一次計算,深度卷積僅分別計算每一個通道的卷積,而後將輸出串聯在一塊兒。這減小了通道之間的特徵交換,但也減小了不少鏈接,所以致使具備較少參數的層。可是,此操做將輸出與輸入相同數量的通道(若是將兩個或多個通道組合在一塊兒,則輸出的通道數量將減小)。所以,一旦合併了通道輸出,就須要另外一個常規1x1濾波器或逐點卷積,以增長或減小通道數,就像常規卷積同樣。

這個想法最初不是來自Xception。在名爲「大規模學習視覺表示」的論文中對此進行了描述,而且在InceptionV2中偶爾使用。Xception進一步邁出了一步,並用這種新型卷積代替了幾乎全部的卷積。實驗結果很是好。它超越了ResNet和InceptionV3,成爲用於圖像分類的新SOTA方法。這也證實了CNN中跨通道相關性和空間相關性的映射能夠徹底解耦。此外,因爲與ResNet具備相同的優勢,Xception也具備簡單美觀的設計,所以其思想還用於隨後的許多其餘研究中,例如MobileNet,DeepLabV3等。

2017年:MobileNet

MobileNets:用於移動視覺應用的高效卷積神經網絡

Xception在ImageNet上實現了79%的top-1準確性和94.5%的top-5準確性,可是與之前的SOTA InceptionV3相比分別僅提升了0.8%和0.4%。新圖像分類網絡的邊際收益愈來愈小,所以研究人員開始將注意力轉移到其餘領域。在資源受限的環境中,MobileNet推進了圖像分類的重大發展。

圖片

「 MobileNets:針對移動視覺應用的高效卷積神經網絡」中的MobileNet模塊

與Xception類似,MobileNet使用與上面所示相同的深度可分離卷積模塊,並着重於高效和較少參數。

圖片

「 MobileNets:用於移動視覺應用的高效卷積神經網絡」中的參數比率

上式中的分子是深度可分離卷積所需的參數總數。分母是類似的規則卷積的參數總數。這裏D [K]是卷積核的大小,D [F]是特徵圖的大小,M是輸入通道數,N是輸出通道數。因爲咱們將通道和空間特徵的計算分開了,所以咱們能夠將乘法轉換爲相加,其量級較小。從該比率能夠看出,更好的是,輸出通道數越多,使用該新卷積節省的計算量就越多。

MobileNet的另外一個貢獻是寬度和分辨率乘數。MobileNet團隊但願找到一種規範的方法來縮小移動設備的模型大小,而最直觀的方法是減小輸入和輸出通道的數量以及輸入圖像的分辨率。爲了控制此行爲,比率alpha乘以通道,比率rho乘以輸入分辨率(這也會影響要素圖的大小)。所以,參數總數能夠用如下公式表示:

圖片

「 MobileNets:用於移動視覺應用的高效卷積神經網絡」

儘管這種變化在創新方面看似天真,但它具備巨大的工程價值,由於這是研究人員首次得出結論,能夠針對不一樣的資源約束調整網絡的規範方法。此外,它還總結了改進神經網絡的最終解決方案:更大和更高的分辨率輸入會致使更高的精度,更薄和更低的分辨率輸入會致使更差的精度。

在2018年和2019年晚些時候,MobiletNet團隊還發布了「 MobileNetV2:殘差和線性瓶頸」和「搜索MobileNetV3」。在MobileNetV2中,使用了倒置的殘留瓶頸結構。在MobileNetV3中,它開始使用神經體系結構搜索技術來搜索最佳體系結構組合,咱們將在後面介紹。

2017年:NASNet

學習可擴展的體系結構以實現可擴展的圖像識別

就像針對資源受限環境的圖像分類同樣,神經體系結構搜索是在2017年左右出現的另外一個領域。藉助ResNet,Inception和Xception,彷佛咱們已經達到了人類能夠理解和設計的最佳網絡拓撲,可是若是有的話一個更好,更復雜的組合,遠遠超出了人類的想象力?2016年的一篇論文《帶有強化學習的神經體系結構搜索》提出了一種經過強化學習在預約搜索空間內搜索最佳組合的想法。衆所周知,強化學習是一種以目標明確,獎勵搜索代理商的最佳解決方案的方法。可是,受計算能力的限制,本文僅討論了在小型CIFAR數據集中的應用。

圖片

NASNet搜索空間。「 學習可擴展的體系結構以實現可擴展的圖像識別

爲了找到像ImageNet這樣的大型數據集的最佳結構,NASNet建立了針對ImageNet量身定製的搜索空間。它但願設計一個特殊的搜索空間,以便CIFAR上的搜索結果也能夠在ImageNet上正常工做。首先,NASNet假設在良好的網絡(如ResNet和Xception)中經常使用的手工模塊在搜索時仍然有用。所以,NASNet再也不搜索隨機鏈接和操做,而是搜索這些模塊的組合,這些模塊已被證實在ImageNet上已經有用。其次,實際搜索仍在32x32分辨率的CIFAR數據集上執行,所以NASNet僅搜索不受輸入大小影響的模塊。爲了使第二點起做用,NASNet預約義了兩種類型的模塊模板:Reduction和Normal。

圖片
摘自「 學習可擴展的體系結構以實現可伸縮的圖像識別

儘管NASNet具備比手動設計網絡更好的度量標準,可是它也有一些缺點。尋找最佳結構的成本很是高,只有像Google和Facebook這樣的大公司才能負擔得起。並且,最終結構對人類來講並無太大意義,所以在生產環境中難以維護和改進。在2018年晚些時候,「 MnasNet:針對移動平臺的神經結構搜索」經過使用預約義的鏈塊結構限制搜索步驟,進一步擴展了NASNet的想法。此外,經過定義權重因子,mNASNet提供了一種更系統的方法來搜索給定特定資源限制的模型,而不只僅是基於FLOP進行評估。

2019年:EfficientNet

EfficientNet:卷積神經網絡模型縮放的反思

在2019年,對於CNN進行監督圖像分相似乎再也不有使人興奮的想法。網絡結構的急劇變化一般只會帶來少量的精度提升。更糟的是,當同一網絡應用於不一樣的數據集和任務時,之前聲稱的技巧彷佛不起做用,這引起了人們的批評,即這些改進是否僅適合ImageNet數據集。另外一方面,有一個技巧毫不會辜負咱們的指望:使用更高分辨率的輸入,爲卷積層添加更多通道以及添加更多層。儘管力量很是殘酷,但彷佛存在一種按需擴展網絡的原則方法。MobileNetV1在2017年提出了這種建議,但後來重點轉移到了更好的網絡設計上。

圖片

摘自「 EfficientNet:卷積神經網絡的模型縮放思考

繼NASNet和mNASNet以後,研究人員意識到,即便在計算機的幫助下,架構的改變也不會帶來太多好處。所以,他們開始回落到擴展網絡規模。EfficientNet只是創建在此假設之上的。一方面,它使用了mNASNet的最佳構建基塊,以確保有良好的基礎。另外一方面,它定義了三個參數alpha,beta和rho來分別控制網絡的深度,寬度和分辨率。這樣,即便沒有大型GPU池來搜索最佳結構,工程師仍能夠依靠這些原則性參數根據他們的不一樣要求來調整網絡。最後,EfficientNet提供了8種不一樣的變體,它們具備不一樣的寬度,深度和分辨率,而且不管大小模型都具備良好的性能。換句話說,若是要得到較高的精度,請使用600x600和66M參數的EfficientNet-B7。若是您想要低延遲和更小的模型,請使用224x224和5.3M參數EfficientNet-B0。問題解決了。

其餘

若是您完成了10篇以上的論文的閱讀,您應該對CNN的圖像分類歷史有了很好的瞭解。若是您想繼續學習這一領域,我還列出了一些其餘有趣的論文供您閱讀,這些論文在各自領域都頗有名,並啓發了世界上許多其餘研究人員。

2014年:SPPNet

深度卷積網絡中的空間金字塔池用於視覺識別

SPPNet從傳統的計算機視覺特徵提取中借鑑了特徵金字塔的思想。該金字塔造成了一個具備不一樣比例的要素詞袋,所以它能夠適應不一樣的輸入大小並擺脫固定大小的全鏈接層。這個想法還進一步啓發了DeepLab的ASPP模塊以及用於對象檢測的FPN。

2016年:DenseNet

緊密鏈接的卷積網絡

康奈爾大學的DenseNet進一步擴展了ResNet的想法。它不只提供各層之間的跳過鏈接,並且還具備來自全部先前各層的跳過鏈接。

2017年:SENet

擠壓和激勵網絡

Xception網絡證實,跨渠道關聯與空間關聯關係不大。可是,做爲上屆ImageNet競賽的冠軍,SENet設計了一個「擠壓和激發」區並講述了一個不一樣的故事。SE塊首先使用全局池將全部通道壓縮爲較少的通道,而後應用徹底鏈接的變換,而後使用另外一個徹底鏈接的層將其「激發」回原來的通道數量。所以,實質上,FC層幫助網絡瞭解輸入要素圖上的注意力。

2017年:ShuffleNet

ShuffleNet:一種用於移動設備的極其高效的卷積神經網絡

ShuffleNet構建在MobileNetV2的倒置瓶頸模塊之上,他認爲深度可分離卷積中的點式卷積會犧牲準確性,以換取更少的計算量。爲了彌補這一點,ShuffleNet增長了一個額外的通道改組操做,以確保逐點卷積不會始終應用於相同的「點」。在ShuffleNetV2中,此通道重排機制也進一步擴展到ResNet身份映射分支,所以身份功能的一部分也將用於重排。

2018:Bag of Tricks

使用卷積神經網絡進行圖像分類的技巧

「技巧包」重點介紹在圖像分類區域中使用的常見技巧。當工程師須要提升基準性能時,它能夠做爲很好的參考。有趣的是,諸如混合加強和餘弦學習速率之類的這些技巧有時能夠比新的網絡體系結構實現更好的改進。

結論

隨着EfficientNet的發佈,ImageNet分類基準彷佛即將結束。使用現有的深度學習方法,除非發生另外一種模式轉變,不然咱們永遠不會有一天能夠在ImageNet上達到99.999%的準確性。所以,研究人員正在積極研究一些新穎的領域,例如用於大規模視覺識別的自我監督或半監督學習。同時,使用現有方法,對於工程師和企業家來講,找到這種不完美技術的實際應用已經成爲一個問題。

Reference

計算機視覺聯盟 報道 | 公衆號 CVLianMeng

相關文章
相關標籤/搜索