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

摘要: 為了更好地幫助你理解卷積神經網路,在這裡,我總結了計算機視覺和卷積神經網路領域內許多新的重要進步及有關論文。

手把手教你理解卷積神經網路(一)

手把手教你理解卷積神經網路(二)

繼「理解卷積神經網路的利器:9篇重要的深度學習論文(上)」文章,本文繼續介紹過去五年內發表的一些重要論文,並探討其重要性。論文1—5涉及通用網路架構的發展,論文6—9則是其他網路架構的論文。點擊原文即可查看更詳細的內容。

5.Microsoft ResNet(2015)

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

殘差塊

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

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

主要論點

1.「極端深度」 - Yann LeCun。

2.包含152層

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

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

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

重要性

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

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

有些人可能會說,R-CNN的出現比以前任何與新網路架構有關的論文都更具影響力。隨著第一篇論述R-CNN的論文被引用超過1600次,加州大學伯克利分校的Ross Girshick團隊創造出了計算機視覺領域最有影響力的進展之一:研究表明Fast R-CNNFaster R-CNN更適合對象檢測,且速度更快。

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已經成為對象檢測程序的一個標準。

7.生成敵對網路(2014)

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

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

重要性

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

8.Generating Image Descriptions(2014)

將卷積神經網路與循環神經網路結合起來會發生什麼?Andrej Karpathy團隊研究了卷積神經網路與雙向循環神經網路的組合,並撰寫了一篇論文,用來生成圖像不同區域的自然語言描述。基本上,圖像經過該模型後輸出效果如下:

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

對齊模型

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

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

生成模型

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

重要性

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

9.空間變換網路(Spatial Transformer Network)(2015年)

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

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

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

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

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

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

重要性

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

以上為譯文。

本文由阿里云云棲社區組織翻譯。

文章原標題《A Beginners Guide to Understanding Convolutional Neural Networks》,譯者:Mags,審校:袁虎。

原文鏈接

更多技術乾貨敬請關注云棲社區知乎機構號:阿里云云棲社區 - 知乎

推薦閱讀:

Nginx學習之配置RTMP模塊搭建推流服務
寶馬玩家(二)——設碼E底盤

TAG:架構 | 模塊 | 深度學習DeepLearning |