經典必讀:你應該知道的深度學習論文(一)

如果你有興趣瞭解深度學習的現狀,這篇文章概述並全面總結了該領域當代最有影響力的9篇論文。


在這篇文章中,我們將總結計算機視覺和卷積神經網絡領域的許多新的重要發展。我們將看看過去5年發表的一些最重要的論文,並討論它們為什麼如此重要。這篇文章先奉上前半部分。

經典必讀:你應該知道的深度學習論文(一)

1.AlexNet(2012)

這篇文章是深度學習的起源,(儘管有些人可能會說1998年Yann LeCun的論文菜是真正的開創性出版物)。本文標題為“ImageNet Classification with Deep Convolutional Networks”,總共被引用6,184次,被廣泛認為是該領域最有影響力的出版物之一。 Alex Krizhevsky,Ilya Sutskever和Geoffrey Hinton創建了一個“巨大而深度的卷積神經網絡”,用於贏得2012年ILSVRC(ImageNet大規模視覺識別挑戰)。對於那些不熟悉的人來說,這個競賽可以被認為是計算機視覺年度奧運會,來自世界各地的團隊參加比賽,看看誰擁有最好的計算機視覺模型,用於分類、本地化、檢測等任務。2012年標誌著CNN被用來實現15.4%的前5個測試錯誤率的第一年(前5個錯誤是在給定圖像的情況下,該模型未輸出具有前5個預測的正確標籤的速率)。接下來的最佳條目達到了26.2%的錯誤,這是一個驚人的改進,幾乎讓計算機視覺社區感到震驚。可以肯定地說,CNN在此後的競爭中成為家喻戶曉的名字。

在論文中,該小組討論了網絡的體系結構(稱為AlexNet)。與現代架構相比,他們使用相對簡單的佈局。網絡由5個conv層、max-pooling層,dropout層和3個完全連接的層組成。他們設計的網絡被用於1000種可能的類別分類。

要點

·在ImageNet數據上訓練網絡,其中包含超過22000個類別的超過1500萬註釋圖像。

·用於非線性函數的ReLU(發現減少訓練時間,因為ReLU比傳統tanh函數快幾倍)。

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

·為了解決訓練數據的過度擬合問題,實現了分層。

·使用批量隨機梯度下降訓練模型,具有特定的動量和重量衰減值。

·在兩臺GTX 580 GPU上訓練五至六天。

為什麼這很重要

2012年由Krizhevsky、Sutskever和Hinton開發的神經網絡成為聚會的主題

計算機視覺社區中的CNN。這是模型首次在歷史上的ImageNet數據集上表現得非常好。利用今天仍在使用的技術,如數據增強和丟失,本文真正說明了CNN的優勢,並在競爭中創造了創紀錄的性能。

2.採埃孚網絡(2013

由於AlexNet在2012年盜取了該節目,提交給ILSVRC 2013的CNN模型數量大幅增加。當年的競賽獲勝者是由紐約大學的Matthew Zeiler和Rob Fergus創建的網絡。命名為ZF Net,該模型實現了11.2%的錯誤率。這種架構更適合於以前的AlexNet結構,但仍然提出了一些關於提高性能的非常關鍵的想法。這是一篇如此出色的論文的另一個原因是作者花了很多時間來解釋ConvNets背後的許多直覺,並展示瞭如何正確可視化過濾器和權重。

題為“Visualizing and Understanding Convolutional Neural Networks”的論文中,Zeiler和Fergus首先討論了這一觀點,即對CNN的這種重新關注是由於大型訓練集的可訪問性以及隨著GPU的使用而增加的計算能力。他們還談到研究人員對這些模型的內在機制所知有限的知識,並說如果沒有這種洞察力,“更好模型的開發就會減少到試驗和錯誤”。雖然我們現在比3年前有了更好的理解,但對於很多研究人員來說,這仍然是一個問題!本文的主要貢獻是稍微修改了AlexNet模型的細節,以及可視化特徵映射的一種非常有趣的方式。

要點

·與AlexNet非常相似的架構,除了一些小修改。

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

·ZF Net沒有在第一層使用11x11大小的過濾器(這是AlexNet實施的過濾器),而是使用尺寸為7x7的過濾器和減少的步幅值。此修改背後的原因是,第一個conv層中的較小濾波器大小有助於在卷中保留大量原始的像素信息。過濾大小為11x11的過濾被證明會跳過很多相關信息,特別是因為這是第一個conv層。

·隨著網絡的發展,我們也看到了所用濾波器數量的增加。

·用於激活函數的ReLUs,誤差函數的交叉熵損失以及使用批次隨機梯度下降的訓練。

·在GTX 580 GPU上訓練十二天。

·開發了一種名為Deconvolutional Network的可視化技術,它有助於檢查不同的特徵激活及其與輸入空間的關係。稱為“deconvnet”是因為它將要素映射到像素(與卷積層相反)。

DeConvNet

背後的基本思想是,在訓練有素的CNN的每一層,你都附加一個“解碼器”,它有一條返回到圖像像素的路徑。將輸入圖像輸入到CNN中,並在每個級別上計算激活。這是正向傳球。現在,假設我們想要檢查第四個conv層中某個特徵的激活。我們將存儲這一個特徵映射的激活,但將該圖層中的所有其他激活設置為0,然後將此特徵映射作為輸入傳遞到解碼器中。此deconvnet具有與原始CNN相同的過濾器。然後,這個輸入經過一系列的unpool(reverse maxpooling)、糾正和每個前面的層的過濾操作,直到達到輸入空間。

整個過程背後的原因是我們想要檢查哪種類型的結構能激發給定的特徵映射。我們來看看第一層和第二層的可視化效果。

經典必讀:你應該知道的深度學習論文(一)

就像我們在第1部分中討論的那樣,ConvNet的第一層始終是一個低級特徵檢測器,它將在這種特殊情況下檢測簡單的邊緣或顏色。我們可以看到,在第二層,我們有更多的循環功能被檢測到。我們來看看第3,4,5層。

經典必讀:你應該知道的深度學習論文(一)

這些圖層顯示了更多更高級別的功能,如狗臉或鮮花的特徵。有一點需要注意的是,正如你可能記得的那樣,在第一個conv層之後,我們通常有一個對圖像進行向下採樣的池層(例如,將一個32x32x3的卷轉換為16x16x3的卷)。這樣做的效果是第二層在原始圖像中可以看到的範圍更廣。

為什麼這很重要

採埃孚網絡不僅是2013年競爭對手的贏家,而且還提供了有關CNN運作的絕佳直覺,並說明了提高績效的更多途徑。所描述的可視化方法不僅有助於解釋CNN的內部工作原理,而且還提供了改進網絡架構的見解。

3. VGG Net(2014)

簡單性和深度。這是2014年創建的模型(不是ILSVRC 2014的獲勝者)在7.3%的錯誤率下得到最佳利用。牛津大學的Karen Simonyan和Andrew Zisserman創建了一個19層的CNN,嚴格使用3x3過濾器,步幅為1。

經典必讀:你應該知道的深度學習論文(一)

要點

·僅使用3x3大小的過濾器與第一層的AlexNet 11x11過濾器和ZF Net的7x7過濾器完全不同。作者的推理是兩個3x3 conv層的組合具有5x5的接收場。這反過來模擬更大的過濾器,同時保持較小的過濾器尺寸的好處。其中一個好處是減少了參數數量。此外,有了兩個conv層,我們可以使用兩個ReLU層,而不是一個。

·背靠背的3個conv層有7x7的有效接受場。

·隨著每層輸入體積的空間尺寸減小(conv和pool層的結果),隨著網絡的進入,體積的深度會隨著·濾波器數量的增加而增加。

·有趣的是,濾鏡的數量在每個maxpool圖層之後都會增加一倍。這強化了縮小空間維度的想法,但增加了深度。

·在圖像分類和本地化任務上工作得很好。作者使用本地化的形式作為迴歸(有關所有細節,請參閱本文的第10頁)。

·用Caffe工具箱構建模型。

·在每個conv層之後使用ReLU圖層並使用批梯度下降進行訓練。

·在4個Nvidia Titan黑色GPU上訓練兩次

為什麼這很重要

VGG Net是我心目中最有影響力的論文之一,因為它強化了卷積神經網絡必須具有深層網絡才能使視覺數據的分層表示工作的觀點。保持深度,把事情簡單化。

4. GoogLeNet(2015)

你知道我們剛才提到的簡單網絡架構的概念嗎?那麼,谷歌就會通過介紹Inception模塊將它拋出窗外。 GoogLeNet是一個22層的CNN,並且是ILSVRC 2014的贏家,前5名的錯誤率為6.7%。據我所知,這是第一個真正偏離了在順序結構中簡單地堆疊conv和pooling層的一般方法的CNN架構之一。這篇論文的作者還強調,這個新模型著重考慮了內存和功耗(重要的是,我有時也會忘記:堆疊所有這些層並添加大量過濾器會產生計算和內存成本,以及過度配合的機會增加)。

經典必讀:你應該知道的深度學習論文(一)

初始模塊

當我們首先看看GoogLeNet的結構時,我們立即注意到,並非所有事情都是按順序發生的,如以前的架構所見,我們有一些並行發生的網絡。

經典必讀:你應該知道的深度學習論文(一)

它被稱為初始模塊。讓我們仔細看看它是由什麼組成的。

經典必讀:你應該知道的深度學習論文(一)

底部的綠色框是我們的輸入,最高的一個是模型的輸出(將此圖片右轉90度可以讓您看到與顯示完整網絡的最後一張圖片相關的模型)。基本上,在傳統的ConvNet的每一層,你必須選擇是否進行池化操作或轉換操作(也可以選擇過濾器大小)。 Inception模塊允許您執行的操作是並行執行所有這些操作。事實上,這正是作者提出的“天真”的想法。

經典必讀:你應該知道的深度學習論文(一)

為什麼說它天真,因為這會導致太多的產出。我們最終會為輸出提供一個非常大的深度通道。作者解決這個問題的方式是在3x3和5x5層之前添加1x1 conv操作。 1×1卷積(或網絡層中的網絡)提供了降維的方法。例如,假設您的輸入體積為100x100x60(這不一定是圖像的尺寸,只是網絡任何層的輸入)。應用20個1x1卷積濾波器可以讓您將音量減小到100x100x20。這意味著3x3和5x5的卷積將不會有大量的卷積來處理。這可以被認為是“特徵彙集”,因為我們正在減小體積的深度,類似於我們如何使用普通的最大化圖層來減小高度和寬度的尺寸。另外需要注意的是,這些1x1 conv層次後面跟著的是ReLU單位,這些單位肯定不會受到傷害(參見Aaditya Prakash關於1x1卷積效果的更多信息)。

你可能會問自己:“這個架構如何提供幫助?”。那麼,你有一個由網絡層組成的網絡,一箇中等大小的卷積濾波器,一個大尺寸的卷積濾波器和一個池化操作。網絡conv中的網絡能夠提取有關該卷中非常精細的紋理細節的信息,而5x5過濾器可以覆蓋輸入的大量接受區域,從而也可以提取其信息。您還可以進行聯合操作,幫助減少空間尺寸並打擊過度配合。最重要的是,每個conv層之後都有ReLU,這有助於提高網絡的非線性。基本上,網絡能夠執行這些不同操作的功能,同時仍然保持計算上的體貼。本文還給出了更多的高層次推理,其中涉及稀疏性和密集聯繫等主題(請閱讀論文的第3和第4部分。

要點

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

·沒有使用完全連接的層!他們使用平均池,從7x7x1024的體積轉到1x1x1024的體積。這節省了大量的參數。

·使用比AlexNet少12倍的參數。

·在測試過程中,創建相同圖像的多個作物,並將其輸入網絡,並將softmax概率取平均值,為我們提供最終解決方案。

·利用R-CNN的概念(我們將在後面討論這篇文章)介紹他們的檢測模型。

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

·受過“一週內的一些高端GPU”的訓練。

為什麼這很重要

GoogLeNet是最早引入CNN層但並不一定要按順序排列的模型之一。它提出了一種初始化模塊,提出了一種分層的創造性結構,可以提高性能和計算效率。這篇論文確實為我們在未來幾年看到的一些令人驚歎的建築奠定了基礎。

未完待續······


分享到:


相關文章: