當前位置:
首頁 > 最新 > 理解卷積神經網路的利器:9篇重要的深度學習論文

理解卷積神經網路的利器:9篇重要的深度學習論文

雲棲君導讀:本文將介紹過去五年內發表的一些重要論文,並探討其重要性。論文1—5涉及通用網路架構的發展,論文6—9則是其他網路架構的論文。點擊原文即可查看更詳細的內容哦。

一、AlexNet(2012)

AlexNet是卷積神經網路架構的起源(儘管可能會有人認為,1998年Yann LeCun發表的論文才是真正的開創性出版物)。這篇名為「基於深度卷積網路ImageNet分類https://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pdf?spm=a2c4e.11153959.blogcont552464.16.2a1e53d0ousmlV&file=4824-imagenet-classification-with-deep-convolutional-neural-networks.pdf)」的論文總共被引用6,184次,被公認為是該領域最具影響力的論文之一。在2012年的ImageNet大規模視覺識別挑戰賽中,Alex Krizhevsky等人創建的「大而深的卷積神經網路」取得了大賽冠軍——將分類誤差從26%降至15%,這是一個驚人的改進,幾乎讓所有的計算機視覺社區為之震撼。從那時起,卷積神經網路被廣泛傳播,成了一個家喻戶曉的名字。

該論文討論了AlexNet架構的網路結構。與現代架構相比,AlexNet使用了相對簡單的網路結構:由5個卷積層、最大池化層、drop-out層和3個全連接層組成。他們設計的網路可用於對1000個類別進行分類。

主要論點

在ImageNet數據集上訓練網路,ImageNet數據集包含超過1500萬張注釋圖像,類別超過22000個。

使用ReLU處理非線性函數(這樣可以減少訓練時間,因為ReLU比傳統的tanh函數運行速度要快幾倍)。

使用的數據增強技術包括:圖像轉換,水平反射和補丁提取。

採用drop-out層,解決了訓練數據的過擬合問題。

使用批量隨機梯度下降訓練架構,其中動量和權重衰減都有固定的具體值。

重要性

Krizhevsky等人在2012年開發出來的神經網路,是卷積神經網路在計算機視覺社區的一場盛宴。這是首次在ImageNet數據集上性能表現非常好的架構,利用了今天仍在使用的技術,如數據增強和dropout。這篇論文闡述了卷積神經網路的優點,並創造了其他神經網路難以逾越的性能。

二、ZF Net

由於AlexNet在2012年閃亮登場,在2013的ImageNet大規模視覺識別挑戰賽中出現的卷積神經網路架構數量大幅度增加,該年度大賽冠軍是由紐約大學的Matthew Zeiler團隊創建的網路——ZF Nethttp://arxiv.org/pdf/1311.2901v3.pdf?spm=a2c4e.11153959.blogcont552464.17.2a1e53d0ousmlV&file=1311.2901v3.pdf),該架構實現了低至11.2%的誤差率。ZF Net架構相當於對AlexNet架構做了微調,但作者仍然提出了一些能夠提高模型性能的重要設想。這篇論文之所以特別重要,另一個原因就是作者花了很多精力來解釋卷積神經網路的可視化,並展示了如何正確的可視化濾波器和權重。

在這篇題為「卷積神經網路的可視化和理解」的論文中,Zeiler團隊首先解釋了重新對卷積神經網路感興趣的原因,這源自於大型訓練集的可訪問性,以及隨著GPU的使用率增大,計算能力也有提高。作者還提到「更好的架構會減少試驗和誤差次數」。儘管和三年前相比,我們對卷積神經網路有了更全面的理解,但這仍然是很多研究人員所面臨的問題!本文的主要貢獻是對AlexNet架構的細節做了微調,並且以一種很有意思的方法對特徵映射做了可視化處理。

主要論點

ZF Net與AlexNet模型有非常相似的架構,同時也做了一些微調。

AlexNet訓練了1500萬張圖片,而ZF Net僅僅訓練了130萬張圖片。

AlexNet在第一層使用11*11的濾波器,而ZF Net使用了7*7的濾波器和一個較小的步長。做這一調整的原因是第一個卷積層中使用較小的濾波器有助於將大量的原始像素信息保留在輸入數組中。11*11的濾波器會過濾掉很多有用的信息,尤其是在第一個卷積層。

隨著卷積網路的發展,使用濾波器的數量有所增加。

將ReLUs作為其激活函數,交叉熵代價函數作為誤差函數,並使用批量隨機梯度下降進行訓練。

開發了一種名為去卷積網路的可視化技術,有助於測試不同的特徵激活與輸入數組的關係。之所以被稱為「去卷積」,因為它將特徵映射為像素(與卷積層的作用正好相反)。

DeConvNet

DeConvNet模型的基本思想是,在卷積神經網路已經訓練好的每一層,都增加一個「去卷積」返回圖像像素。圖像輸入到卷積神經網路中,並在每個級別計算其特徵激活。假設現在要檢查第四個卷積層中某個特徵激活,我們來存儲這一個特徵映射的激活,但將卷積層中的所有其他激活都設為0,然後將此特徵映射作為輸入傳遞給DeConvNet模型。該DeConvNet模型具有與原始卷積神經網路相同的濾波器。然後,輸入經過一系列的反池化(和最大池化相反)、校正以及前面每個層的濾波器操作,然後到達輸入數組。

這整個過程是因為我們想要檢查到底哪種類型的結構激活給定的特徵映射。 我們來看看第一層和第二層的可視化效果。

我們知道,卷積層中的第一層是一個基本特徵檢測器,檢測邊緣或顏色。如上圖所示,我們可以看到,在第二層有更多的循環特徵被檢測到。下面,我們來看看第3、4、5層。

這些層顯示了更多高級特徵,如狗的頭部或鮮花。需要注意的是,在第一個卷積層之後,我們通常會有一個池化層對圖像進行下採樣(例如,將32*32*3數組轉換為16*16*3的數組)。這樣做可以在第二層看到原始圖像範圍更廣的特徵。

重要性

ZF Net模型不僅是2013年度ImageNet大規模視覺識別挑戰賽的冠軍,而且還提供了有關卷積神經網路運行的絕佳的視覺效果,並展示了更多能夠提高性能的方法。 ZF Net模型所描述的可視化方法不僅有助於解釋卷積神經網路的內部運行機制,而且還提供了對網路架構進行改進的獨特見解。

三、VGG Net (2014)

VGG Net是2014年創建的架構(但並不是ImageNet大規模視覺識別挑戰賽的冠軍),其利用率達到7.3%。來自牛津大學的Karen Simonyan和Andrew Zisserman(http://arxiv.org/pdf/1409.1556v6.pdf?spm=a2c4e.11153959.blogcont552464.18.2a1e53d0ousmlV&file=1409.1556v6.pdf)創建了一個特別簡單的19層的卷積神經網路,使用步長為1的3*3的濾波器,步長為2的2*2池化層。

主要論點

僅僅使用了3*3的濾波器,這與AlexNet第一層使用的11*11濾波器和ZF Net使用的7*7濾波器大不相同。作者證明了兩個3*3 卷積層的組合具有5*5的有效感受野。在使用較小的濾波器的同時,也模擬出了一個更大的濾波器,同時也減少了參數的數量。此外,我們還可以在兩個卷積層中使用ReLU層。

三個卷積層的組合具有7*7的有效感受野。

隨著每層的深入,輸入數組隨之減小(卷積層和池化層的原因),過濾器的數量隨之,因此數組的深度也不斷增加。

有趣的是,濾波器的數量在每個最大池化層之後都會增加一倍。這強化了縮小空間維度的想法,但增加了網路的深度。

特別適用於圖像分類和本地化任務。作者使用本地化的形式作為回歸。

用Caffe構建架構。

在訓練過程中使用數據增強技術是抖動( scale jittering )。

在每個卷積層之後使用ReLU層,並採用批梯度下降進行訓練。

重要性

VGG Net模型一直都是我心目中最有影響力的論文之一,因為它強化了這一觀點:為了使視覺數據可以分層表示,卷積神經網路必須具有更加深入的網路層。

四、GoogLeNet (2015)

谷歌使用了Inception模塊來代替簡單網路架構這一概念,GoogLeNet模型http://www.cv-foundation.org/openaccess/content_cvpr_2015/papers/Szegedy_Going_Deeper_With_2015_CVPR_paper.pdf?spm=a2c4e.11153959.blogcont552464.19.2a1e53d0ousmlV&file=Szegedy_Going_Deeper_With_2015_CVPR_paper.pdf

)是一個22層的卷積神經網路架構,並且是2014年度ImageNet大規模視覺識別挑戰賽的冠軍,誤差率高達6.7%。據我所知,這是第一個真正摒棄了在順序結構中對卷積層和池化層進行簡單堆疊的卷積神經網路架構之一。這個新架構著重考慮內存和功耗(堆疊所有的這些層並添加大量的濾波器會產生計算成本和內存成本,同時也會增加過擬合的概率)。

Inception模塊

並不是像以前的架構按順序運行,GoogLeNet架構中存在可以並行的網路。如下圖所示,這個方框被稱為Inception模塊。

讓我們來看看它的內部組成。

底部的綠色框是輸入,最上面的是輸出。在傳統的卷積網路的每一層,你必須選擇是否進行池化或卷積操作(也可以選擇過濾器大小)。Inception模塊可以所有這些操作。這正是GoogLeNet的亮點之一。

這樣會導致太多的輸出,為了解決這一問題,作者在3*3和5*5的層前面添加1*1 的卷積操作對其進行降維。舉個例子,假設輸入數組為100*100*60(這不一定是圖像大小,只是網路任意一層的輸入)。使用20個1*1卷積濾波器可以讓將數組降到100*100*20。這就意味著3*3和5*5的卷積操作不會有大量的操作。由於我們正在降低數組的維度,這一操作被稱作「特徵池化」,這和我們用普通的最大池化層來減小圖片的高度和寬度比較相似。

GoogLeNet模型有什麼用?這個網路由網路層的一個網路、一個中型卷積濾波器、一個大型卷積濾波器和一個池化操作組成。卷積網路能夠提取輸入數組的細節信息,而5*5濾波器能夠覆蓋輸入較大範圍的接受野,因此也能夠提取其細節信息。你還可以在GoogLeNet模型中進行池化操作,這有助於降低空間維度並避免過擬合。最重要的是,在每個卷積層之後都有ReLU函數,這有助於改善網路的非線性。基本上,網路在執行這些操作的同時,仍能夠保持計算上的良好性能。

主要論點

在整個架構中使用了九個Inception模塊,總共超過100層!

沒有使用全連接層! 他們使用平均池化,這大大節省了參數的數量。

使用的參數比AlexNet架構少12倍。

利用R-CNN的概念介紹其檢測架構。

Inception模塊有了版本更新(版本6和7)。

重要性

GoogLeNet模型是第一個引入「卷積神經網路層並不需要依次疊加」這一理念的架構之一,作為Inception模塊的一部分,富有創造性的層結構提高了整體性能和計算效率。

五、Microsoft ResNet(2015)

現在,將一個深度卷積神經網路的層數增加一倍,再增加幾層,也仍然不可能達到2015年微軟亞洲研究院提出的ResNethttps://arxiv.org/pdf/1512.03385v1.pdf?spm=a2c4e.11153959.blogcont552509.14.1a4d29d6cLq7BV&file=1512.03385v1.pdf)架構的深度。ResNet是一種新的包含152層的網路架構,它使用一個特殊的結構記錄分類、檢測和定位。除了在層數方面進行創新外,ResNet還贏得了2015年ImageNet大規模視覺識別挑戰賽的冠軍,誤差率低達3.6%(在現有的技術水平上,誤差率通常在5-10%)

殘差塊

殘差塊的原理是,輸入x通過卷積-殘差函數-卷積系列,得到輸出F(x),然後將該結果加到原始輸入x中,用H(x)= F(x)+ x表示。在傳統的卷積神經網路中,H(x)=F(x)。因此,我們不只計算從x到F(x)變換,而是要計算H(x)= F(x)+ x。下圖中的最小模塊正在計算一個「增量」或對原始輸入x做輕微改變以獲得輕微改變後的表示。作者認為,「優化殘差映射比優化原始未引用的映射要容易。」

殘差塊可能比較有效的另一個原因是,在反向傳播的後向傳遞期間,由於加法運算可以作用於梯度,梯度將會更容易地通過殘差塊。

主要論點

「極端深度」 - Yann LeCun。

包含152層

有趣的是,僅在經過前兩層之後,將數組從224*224壓縮到56x56。

在普通網路中,單純的增加層數會導致更高的訓練和測試誤差(詳細請看論文)。

該模型嘗試構建了一個1202層的網路,可能是由於過擬合,測試精度較低。

重要性

3.6%的誤差率!這一點足夠重要。ResNet模型是目前我們所擁有的最好的卷積神經網路架構,也是殘差學習理念的一個偉大創新。我相信即使在彼此之上堆疊更多層,性能也不會再有大幅度的提升了,但肯定會有像過去兩年那樣有創意的新架構。

六、基於區域的卷積神經網路:R-CNN(2013年);Fast R-CNN(2015年); Faster R-CNN(2015年)

有些人可能會說,R-CNN(https://arxiv.org/pdf/1311.2524v5.pdf?spm=a2c4e.11153959.blogcont552509.16.1a4d29d6cLq7BV&file=1311.2524v5.pdf)的出現比以前任何與新網路架構有關的論文都更具影響力。隨著第一篇論述R-CNN的論文被引用超過1600次,加州大學伯克利分校的Ross Girshick團隊創造出了計算機視覺領域最有影響力的進展之一:研究表明Fast R-CNNhttps://arxiv.org/pdf/1504.08083.pdf?spm=a2c4e.11153959.blogcont552509.17.1a4d29d6cLq7BV&file=1504.08083.pdf)和Faster R-CNN(http://arxiv.org/pdf/1506.01497v3.pdf?spm=a2c4e.11153959.blogcont552509.18.1a4d29d6cLq7BV&file=1506.01497v3.pdf)更適合對象檢測,且速度更快。

R-CNN架構的目標解決對象檢測問題。現在,我們想對給定的圖像上所包含的所有對象繪製邊界框,可分為兩步:候選區域的選擇和分類。

作者指出,任何類不可知候選區域方法都應該適用。選擇性搜索專門用於R-CNN,它能夠產生2000個不同的最有可能包含指定對象的區域,候選區域產生後,會被「轉換」為圖像大小的區域,送入一個訓練好的卷積神經網路(在這種情況下為AlexNet),為每個區域提取特徵向量。然後,這組向量作為一組線性支持向量機的輸入,這些線性支持向量機對每個類進行訓練並輸出一個分類。向量也被送入邊界框回歸器以便獲得最準確的位置坐標。最後,使用非極大值抑制來抑制彼此具有明顯重疊的邊界框。

Fast R-CNN

對原始模型進行改進原因有三:模型訓練需要經歷多個步驟(ConvNets支持向量機邊界框回歸器);計算成本很高,運行速度很慢(R-CNN處理一張圖像需要53秒)。為了提高運行速度,Fast R-CNN共享了不同候選區域之間卷積層的計算,交換了候選區域的生成順序,同時運行卷積神經網路。在這個模型中,圖像圖像首先送入卷積網路,然後從卷積網路的最後一個特徵映射獲得候選區域的特徵,最後被送入全連接層、回歸以及分類頭部。

Faster R-CNN

Faster R-CNN致力於將R-CNN和Fast R-CNN比較複雜的訓練步驟簡單化。作者在最後一個卷積層後插入候選區域生成網路,該網路能夠查看最後的卷積特徵映射併產生候選區域。後面使用與R-CNN相同的方法:感興趣區域池化、全連接層、分類和回歸頭。

重要性

除了能夠準確識別圖像中的特定對象,Faster R-CNN也能夠對該對象進行準確定位,這是一個質的飛躍。現在,Faster R-CNN已經成為對象檢測程序的一個標準。

七、生成敵對網路(2014)

據Yann LeCun稱,該網路可能是下一重大進展。在介紹這篇文章(https://arxiv.org/pdf/1406.2661v1.pdf?spm=a2c4e.11153959.blogcont552509.21.1a4d29d6cLq7BV&file=1406.2661v1.pdf)之前,我們先看一個對抗的例子:將一個經過擾動的圖像經過卷積神經網路(已經在ImageNet數據集上訓練且運行良好),以使預測誤差最大化。因此,預測出來的對象類別有所改變,而該圖像看起來與沒有經過擾動的圖像相同。從某種意義上來說,對抗就是用圖像愚弄卷積網路。

這個對抗的例子著實讓很多研究人員感到驚訝,並且迅速成為了一個大家感興趣的話題。現在讓我們來談談生成對抗網路,它包含兩個模型:一個生成模型和一個判別模型。判別器用來確定給定的圖像是否真的自數據集,還是人為創建的;生成器用來是創建圖像,以便判別器得到訓練生成正確的輸出。這可以看作一個博弈遊戲,打個比方:生成模型就像「偽造者團隊,試圖製造和使用假幣」;而判別模型就像「警察,試圖檢測假幣」。生成器試圖欺騙判別器,而判別器努力不被欺騙。隨著模型的訓練,這兩種方法都會得到改進,直到「真幣與假幣無法區分」。

重要性

這看起來很簡單,但為什麼我們很看重這個網路?正如Yan Le Leun在Quora中所說的那樣,現在判別器已經意識到「數據的內在表示」,因為它已經被訓練的能夠了解數據集中真實圖像與人工創建圖像之間的差異。因此,可以像卷積神經網路那樣,將它用作特徵提取器。另外,你也可以創建很逼真的人造圖像(鏈接)。

八、Generating Image Descriptions(2014)

將卷積神經網路與循環神經網路結合起來會發生什麼?Andrej Karpathy團隊研究了卷積神經網路與雙向循環神經網路的組合,並撰寫了一篇論文(https://arxiv.org/pdf/1412.2306v2.pdf?spm=a2c4e.11153959.blogcont552509.23.1a4d29d6cLq7BV&file=1412.2306v2.pdf),用來生成圖像不同區域的自然語言描述。基本上,圖像經過該模型後輸出效果如下:

這真是令人難以置信!我們來看看這與普通的卷積神經網路有何區別。傳統的卷積神經網路上,訓練數據中的每個圖像都有一個明確的標籤。論文中描述的模型已經訓練了樣例,該樣例具有與每個圖像相關聯的文本。這種類型的標籤被稱為弱標籤,其中文本片段是指圖像的未知部分。使用這些訓練數據,深層神經網路能夠「推斷出文本片段和他們所要描述的區域之間的潛在關係」(引自論文)。另一個神經網路將圖像轉換成一個文本描述。讓我們分別看看這兩個部分:對齊模型和生成模型。

對齊模型

對齊模型的目標是能夠將視覺圖像和文本描述對齊,該模型將圖像和文本轉化為二者之間的相似性度量值。

首先將圖像輸入R-CNN模型,檢測單個對象,該模型在ImageNet數據集上進行訓練,排名前19位(加上原始圖像)的對象區域被嵌入到500維空間,現在在每個圖像中,我們都有20個不同的500維向量(用v表示),用來描述圖像的信息。現在我們需要關於文本的信息,將文本嵌入到同一個多維度空間中,這一步驟採用雙向遞歸神經網路完成。從更高層次來看,這是為了解釋給定文本中單詞的上下文信息。由於圖像和文本的信息都在相同的空間中,因此我們可以計算內部表示,來輸出相似性度量。

生成模型

對齊模型的主要目的是創建一個數據集:包含圖像區域和對應的文本。而生成模型將從該數據集中進行學習,生成給定圖像的描述。該模型將圖像送入一個卷積神經網路,由於全連接層的輸出成為另一個循環神經網路的輸入,softmax層則可以被忽略。對於那些不熟悉循環神經網路的人來說,該模型可以理解為產生句子中不同單詞的概率分布(循環神經網路也需要像卷積神經網路一樣進行訓練)。

重要性

Generating Image Descriptions的創新之處在於:使用看似不同的循環神經網路和卷積神經網路模型創建了一個非常實用的應用程序,它以某種方式將計算機視覺和自然語言處理領域結合在一起。在處理跨越不同領域的任務時如何使計算機和模型變得更加智能方面,它的新想法為我們打開一扇新的大門。

九、空間變換網路(Spatial Transformer Network)(2015年)

最後,我們來介紹一篇同樣很重要的論文(https://arxiv.org/pdf/1506.02025.pdf?spm=a2c4e.11153959.blogcont552509.24.1a4d29d6cLq7BV&file=1506.02025.pdf),該模型的主要亮點就是引入了一個變換模塊,它以某種方式對輸入圖像進行變換,以便後續網路層能夠更容易對圖像進行分類。作者不再對卷積神經網路的主要架構進行修改,而是在圖像輸入到特定的卷積層之前對圖像進行變換。這個模塊希望糾正姿態規範化(針對對象傾斜或縮放的場景)和空間注意力(在擁擠的圖像中關注需要分類的對象)。對於傳統的卷積神經網路來說,如果希望模型能夠同時適用於不同尺度和旋轉的圖像,那麼將需要大量的訓練樣例才能使模型進行正確的學習。這個變換模塊是如何解決這個問題的呢?

處理空間不變性的傳統卷積神經網路模型中的實體是最大池化層,一旦我們知道原始輸入數組(具有較高的激活值)中的特定特徵,其確切位置就不如它相對於其他特徵的相對位置那麼重要。而這種新的空間變換器是動態的,它會針對每個輸入圖像產生不同的變換,而並不會像傳統的最大池化那樣簡簡單和預定義。我們來看看這個變換模塊是如何運行的。該模塊包括:

定位網路,將輸入數組轉化並輸出必須使用的空間變換參數。對於仿射變換來說,參數或θ可以是六維的。

採樣網格,這是使用本地化網路中創建的仿射變換(θ)對常規網格進行變形的結果。

採樣器,將輸入特徵映射進行變形。

這個模塊可以放在卷積神經網路的任何一個節點,基本上可以幫助網路學習如何對特徵映射進行變換,從而最大限度地減少訓練期間的成本函數。

重要性

這篇文章之所以能夠引起我的注意,其主要原因就是對卷積神經網路的改進不一定需要對網路的整體架構做巨大的改變,我們不需要再創建下一個ResNet或Inception架構。本文對輸入圖像進行仿射變換這一思路,使模型更加適用於圖像的平移、縮放和旋轉。

end


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 雲棲社區 的精彩文章:

用深度學習解決Bongard問題
那些年,阿里巴巴技術男神們寫的書!

TAG:雲棲社區 |