選自arXiv 機器之心編譯 參與:Panda
論文地址:https:///abs/1803.08834 1 引言 1.1 動機 過去幾年來,,計算機視覺研究主要集中在卷積神經(jīng)網(wǎng)絡(常簡稱為 ConvNet 或 CNN)上。這些工作已經(jīng)在廣泛的分類和回歸任務上實現(xiàn)了新的當前最佳表現(xiàn),。相對而言,,盡管這些方法的歷史可以追溯到多年前,但對這些系統(tǒng)得到出色結(jié)果的方式的理論理解還很滯后,。事實上,,當前計算機視覺領(lǐng)域的很多成果都是將 CNN 當作黑箱使用,這種做法是有效的,,但其有效的原因卻非常模糊不清,,這嚴重滿足不了科學研究的要求。尤其是這兩個可以互補的問題:(1)在被學習的方面(比如卷積核),,究竟被學習的是什么,?(2)在架構(gòu)設(shè)計方面(比如層的數(shù)量、核的數(shù)量,、池化策略,、非線性的選擇),為什么某些選擇優(yōu)于另一些選擇,?這些問題的答案不僅有利于提升我們對 CNN 的科學理解,,而且還能提升它們的實用性。 此外,,目前實現(xiàn) CNN 的方法需要大量訓練數(shù)據(jù),,而且設(shè)計決策對結(jié)果表現(xiàn)有很大的影響。更深度的理論理解應該能減輕對數(shù)據(jù)驅(qū)動的設(shè)計的依賴,。盡管已有實證研究調(diào)查了所實現(xiàn)的網(wǎng)絡的運行方式,,但到目前為止,這些結(jié)果很大程度上還局限在內(nèi)部處理過程的可視化上,,目的是為了理解 CNN 中不同層中發(fā)生的情況,。 1.2 目標 針對上述情況,本報告將概述研究者提出的最突出的使用多層卷積架構(gòu)的方法,。要重點指出的是,,本報告將通過概述不同的方法來討論典型卷積網(wǎng)絡的各種組件,并將介紹它們的設(shè)計決策所基于的生物學發(fā)現(xiàn)和/或合理的理論基礎(chǔ),。此外,,本報告還將概述通過可視化和實證研究來理解 CNN 的不同嘗試,。本報告的最終目標是闡釋 CNN 架構(gòu)中涉及的每一個處理層的作用,匯集我們當前對 CNN 的理解以及說明仍待解決的問題,。 1.3 報告提綱 本報告的結(jié)構(gòu)如下:本章給出了回顧我們對卷積網(wǎng)絡的理解的動機,。第 2 章將描述各種多層網(wǎng)絡并給出計算機視覺應用中使用的最成功的架構(gòu)。第 3 章將更具體地關(guān)注典型卷積網(wǎng)絡的每種構(gòu)造模塊,,并將從生物學和理論兩個角度討論不同組件的設(shè)計,。最后,第 4 章將會討論 CNN 設(shè)計的當前趨勢以及理解 CNN 的工作,,并且還將重點說明仍然存在的一些關(guān)鍵短板,。 2 多層網(wǎng)絡 總的來說,本章將簡要概述計算機視覺領(lǐng)域中所用的最突出的多層架構(gòu),。需要指出,,盡管本章涵蓋了文獻中最重要的貢獻,但卻不會對這些架構(gòu)進行全面概述,,因為其它地方已經(jīng)存在這樣的概述了(比如 [17, 56, 90]),。相反,本章的目的是為本報告的剩余部分設(shè)定討論基礎(chǔ),,以便我們詳細展示和討論當前對用于視覺信息處理的卷積網(wǎng)絡的理解,。 2.1 多層架構(gòu) 在近來基于深度學習的網(wǎng)絡取得成功之前,最先進的用于識別的計算機視覺系統(tǒng)依賴于兩個分離但又互補步驟,。第一步是通過一組人工設(shè)計的操作(比如與基本集的卷積,、局部或全局編碼方法)將輸入數(shù)據(jù)變換成合適的形式。對輸入的變換通常需要找到輸入數(shù)據(jù)的一種緊湊和/或抽象的表征,,同時還要根據(jù)當前任務注入一些不變量,。這種變換的目標是以一種更容易被分類器分離的方式改變數(shù)據(jù)。其次,,被變換的數(shù)據(jù)通常用于訓練某些類型的分類器(比如支持向量機)來識別輸入信號的內(nèi)容,。通常而言,任何分類器的表現(xiàn)都會受到所使用的變換方法的嚴重影響,。 多層學習架構(gòu)為這一問題帶來了不同的前景,,這種架構(gòu)提出不僅要學習分類器,而且要從數(shù)據(jù)中直接學習所需的變換操作,。這種形式的學習通常被稱為「表征學習」,,當應用在深度多層架構(gòu)中時即被稱為「深度學習」,。 多層架構(gòu)可以定義為允許從輸入數(shù)據(jù)的多層抽象中提取有用信息的計算模型,。一般而言,多層架構(gòu)的設(shè)計目標是在更高層凸顯輸入中的重要方面,,同時能在遇到更不重要的變化時變得越來越穩(wěn)健,。大多數(shù)多層架構(gòu)都是將帶有交替的線性和非線性函數(shù)的簡單構(gòu)建模塊堆疊在一起,。多年以來,研究者已經(jīng)提出了很多不同類型的多層架構(gòu),,本章將會覆蓋計算機視覺應用中所采用的最為突出的此類架構(gòu),。人工神經(jīng)網(wǎng)絡是其中的關(guān)注重點,因為這種架構(gòu)的表現(xiàn)非常突出,。為了簡單起見,,后面會直接將這類網(wǎng)絡稱為「神經(jīng)網(wǎng)絡」。 2.1.1 神經(jīng)網(wǎng)絡 典型的神經(jīng)網(wǎng)絡由一個輸入層,、一個輸出層和多個隱藏層構(gòu)成,,其中每一層都包含多個單元。 圖 2.1:典型神經(jīng)網(wǎng)絡架構(gòu)示意圖,,圖來自 [17] 自動編碼器可以定義為由兩個主要部分構(gòu)成的多層神經(jīng)網(wǎng)絡,。第一個部分是編碼器,可以將輸入數(shù)據(jù)變換成特征向量,;第二個部分是解碼器,,可將生成的特征向量映射回輸入空間。 圖 2.2:典型自動編碼器網(wǎng)絡的結(jié)構(gòu),,圖來自 [17] 2.1.2 循環(huán)神經(jīng)網(wǎng)絡 當談到依賴于序列輸入的任務時,,循環(huán)神經(jīng)網(wǎng)絡(RNN)是最成功的多層架構(gòu)之一。RNN 可被視為一種特殊類型的神經(jīng)網(wǎng)絡,,其中每個隱藏單元的輸入時其當前時間步驟觀察到的數(shù)據(jù)和其前一個時間步驟的狀態(tài),。 圖 2.3:標準循環(huán)神經(jīng)網(wǎng)絡的運算的示意圖。每個 RNN 單元的輸入都是當前時間步驟的新輸入和前一個時間步驟的狀態(tài),;然后根據(jù)計算得到新輸出,,這個輸出又可被饋送到多層 RNN 的下一層進行處理。 圖 2.4:典型 LSTM 單元示意圖,。該單元的輸入是當前時間的輸入和前一時間的輸入,,然后它會返回一個輸出并將其饋送給下一時間。LSTM 單元的最終輸出由輸入門,、輸出門和記憶單元狀態(tài)控制,。圖來自 [33] 2.1.3 卷積網(wǎng)絡 卷積網(wǎng)絡(CNN)是一類尤其適合計算機視覺應用的神經(jīng)網(wǎng)絡,因為它們能使用局部操作對表征進行分層抽象,。有兩大關(guān)鍵的設(shè)計思想推動了卷積架構(gòu)在計算機視覺領(lǐng)域的成功,。第一,CNN 利用了圖像的 2D 結(jié)構(gòu),,并且相鄰區(qū)域內(nèi)的像素通常是高度相關(guān)的,。因此,CNN 就無需使用所有像素單元之間的一對一連接(大多數(shù)神經(jīng)網(wǎng)絡都會這么做),,而可以使用分組的局部連接,。第二,,CNN 架構(gòu)依賴于特征共享,因此每個通道(即輸出特征圖)是在所有位置使用同一個過濾器進行卷積而生成的,。 圖 2.5:標準卷積網(wǎng)絡的結(jié)構(gòu)的示意圖,,圖來自 [93] 圖 2.6:Neocognitron 的結(jié)構(gòu)示意圖,圖來自 [49] 2.1.4 生成對抗網(wǎng)絡 典型的生成對抗網(wǎng)絡(GAN)由兩個互相競爭的模塊或子網(wǎng)絡構(gòu)成,,即:生成器網(wǎng)絡和鑒別器網(wǎng)絡,。 圖 2.7:生成對抗網(wǎng)絡的一般結(jié)構(gòu)的示意圖 2.1.5 多層網(wǎng)絡的訓練 如前面討論的一樣,多種多層架構(gòu)的成功都很大程度上取決于它們的學習過程的成功,。其訓練過程通常都基于使用梯度下降的誤差的反向傳播,。由于使用簡單,梯度下降在訓練多層架構(gòu)上有廣泛的應用,。 2.1.6 簡單說說遷移學習 使用多層架構(gòu)提取的特征在多種不同數(shù)據(jù)集和任務上的適用性可以歸功于它們的分層性質(zhì),,表征會在這樣的結(jié)構(gòu)中從簡單和局部向抽象和全局發(fā)展。因此,,在其層次結(jié)構(gòu)中的低層級提取的特征往往是多種不同任務共有的特征,,因此使得多層結(jié)構(gòu)更容易實現(xiàn)遷移學習。 2.2 空間卷積網(wǎng)絡 理論上而言,,卷積網(wǎng)絡可以應用于任意維度的數(shù)據(jù),。它們的二維實例非常適用于單張圖像的結(jié)構(gòu),因此在計算機視覺領(lǐng)域得到了相當大的關(guān)注,。有了大規(guī)模數(shù)據(jù)集和強大的計算機來進行訓練之后,,CNN 近來在多種不同任務上的應用都出現(xiàn)了迅猛增長。本節(jié)將介紹為原來的 LeNet 引入了相對新穎的組件的比較突出的 2D CNN 架構(gòu),。 2.2.1 CNN 近期發(fā)展中的關(guān)鍵架構(gòu) 圖 2.8:AlexNet 架構(gòu),。需要指出,雖然從圖上看這是一種有兩個流的架構(gòu),,但實際上這是一種單流的架構(gòu),,這張圖只是說明 AlexNet 在 2 個不同 GPU 上并行訓練的情況。圖來自 [88] 圖 2.9:GoogLeNet 架構(gòu),。(a)典型的 inception 模塊,,展示了順序和并行執(zhí)行的操作。(b)由層疊的許多 inception 模塊構(gòu)成的典型 inception 架構(gòu)的示意圖,。圖來自 [138] 圖 2.10:ResNet 架構(gòu),。(a)殘差模塊。(b)由層疊的許多殘差模塊構(gòu)成的典型 ResNet 架構(gòu)示意圖,。圖來自 [64] 圖 2.11:DenseNet 架構(gòu),。(a)dense 模塊。(b)(b)由層疊的許多 dense 模塊構(gòu)成的典型 DenseNet 架構(gòu)的示意圖,。圖來自 [72] 2.2.2 實現(xiàn) CNN 的不變性 使用 CNN 的一大難題是需要非常大的數(shù)據(jù)集來學習所有的基本參數(shù),。甚至擁有超過 100 萬張圖像的 ImageNet 等大規(guī)模數(shù)據(jù)集在訓練特定的深度架構(gòu)時仍然被認為太小,。滿足這種大數(shù)據(jù)集要求的一種方法是人工增強數(shù)據(jù)集,,具體做法包括對圖像進行隨機翻轉(zhuǎn)、旋轉(zhuǎn)和抖動(jittering)等。這些增強方法的一大優(yōu)勢是能讓所得到的網(wǎng)絡在面對各種變換時能更好地保持不變,。 2.2.3 實現(xiàn) CNN 的定位 除了識別物體等簡單的分類任務,,CNN 近來也在需要精準定位的任務上表現(xiàn)出色,比如形義分割和目標檢測,。 2.3 時空卷積網(wǎng)絡 使用 CNN 為各種基于圖像的應用帶來了顯著的性能提升,,也催生了研究者將 2D 空間 CNN 擴展到視頻分析的 3D 時空 CNN 上的興趣。一般而言,,文獻中提出的各種時空架構(gòu)都只是試圖將空間域 (x,y) 的 2D 架構(gòu)擴展到時間域 (x, y, t) 中,。在基于訓練的時空 CNN 領(lǐng)域存在 3 種比較突出的不同架構(gòu)設(shè)計決策:基于 LSTM 的 CNN、3D CNN 和 Two-Stream CNN,。 2.3.1 基于 LSTM 的時空 CNN 基于 LSTM 的時空 CNN 是將 2D 網(wǎng)絡擴展成能處理時空數(shù)據(jù)的一些早期嘗試,。它們的操作可以總結(jié)成圖 2.16 所示的三個步驟。第一步,,使用一個 2D 網(wǎng)絡處理每一幀,,并從這些 2D 網(wǎng)絡的最后一層提取出特征向量。第二步,,將這些來自不同時間步驟的特征用作 LSTM 的輸入,,得到時間上的結(jié)果。第三步,,再對這些結(jié)果求平均或線性組合,,然后再傳遞給一個 softmax 分類器以得到最終預測。 2.3.2 3D CNN 這種突出的時空網(wǎng)絡是將 2D CNN 最直接地泛化到圖像時空域中,。它直接處理 RGB 圖像的時間流,,并通過應用所學習到的 3D 卷積過濾器來處理這些圖像。 2.3.3 Two-Stream CNN 這種類型的時空架構(gòu)依賴于一種雙流式(two-stream)的設(shè)計,。標準的雙流式架構(gòu)是采用兩個并行通路——一個用于處理外觀,,另一個用于處理運動;這種方法類似于生物視覺系統(tǒng)研究中的雙流式假設(shè),。 2.4 整體討論 需要重點指出的是,,盡管這些網(wǎng)絡在很多計算機視覺應用上都實現(xiàn)了很有競爭力的結(jié)果,但它們的主要缺點仍然存在:對所學習到的表征的確切本質(zhì)的理解很有限,、依賴于大規(guī)模數(shù)據(jù)訓練集,、缺乏支持準確的表現(xiàn)邊界的能力、網(wǎng)絡超參數(shù)選擇不清晰,。 3 理解 CNN 的構(gòu)建模塊 鑒于 CNN 領(lǐng)域存在大量懸而未決的問題,,本章將介紹典型卷積網(wǎng)絡中每種處理層的作用和意義,。為此本章將概述在解決這些問題上最突出的工作。尤其值得一提的是,,我們將從理論和生物學兩個角度來展示 CNN 組件的建模方式,。每種組件的介紹后面都總結(jié)了我們當前的理解水平。 3.1 卷積層 卷積層可以說是 CNN 架構(gòu)中最重要的步驟之一,?;径裕矸e是一種線性的,、平移不變性的運算,,其由在輸入信號上執(zhí)行局部加權(quán)的組合構(gòu)成。根據(jù)所選擇的權(quán)重集合(即所選擇的點擴散函數(shù)(point spread function))的不同,,也將揭示出輸入信號的不同性質(zhì),。在頻率域中,與點擴散函數(shù)關(guān)聯(lián)的是調(diào)制函數(shù)——說明了輸入的頻率組分通過縮放和相移進行調(diào)制的方式,。因此,,選擇合適的核(kernel)對獲取輸入信號中所包含的最顯著和最重要的信息而言至關(guān)重要,這能讓模型對該信號的內(nèi)容做出更好的推斷,。本節(jié)將討論一些實現(xiàn)這個核選擇步驟的不同方法,。 3.2 整流 多層網(wǎng)絡通常是高度非線性的,而整流(rectification)則通常是將非線性引入模型的第一個處理階段,。整流是指將點方面的非線性(也被稱為激活函數(shù))應用到卷積層的輸出上,。這一術(shù)語借用自信號處理領(lǐng)域,其中整流是指將交流變成直流,。這也是一個能從生物學和理論兩方面都找到起因的處理步驟,。計算神經(jīng)科學家引入整流步驟的目的是尋找能最好地解釋當前神經(jīng)科學數(shù)據(jù)的合適模型。另一方面,,機器學習研究者使用整流的目的是為了讓模型能更快和更好地學習,。有趣的是,這兩個方面的研究者往往都認同這一點:他們不僅需要整流,,而且還會殊途同歸到同一種整流上,。 圖 3.7:多層網(wǎng)絡的文獻中所使用的非線性整流函數(shù) 3.3 歸一化 正如前面提到的,由于這些網(wǎng)絡中存在級聯(lián)的非線性運算,,所以多層架構(gòu)是高度非線性的,。除了前一節(jié)討論的整流非線性,歸一化(normalization)是 CNN 架構(gòu)中有重要作用的又一種非線性處理模塊,。CNN 中最廣泛使用的歸一化形式是所謂的 Divisive Normalization(DN,,也被稱為局部響應歸一化)。本節(jié)將介紹歸一化的作用并描述其糾正前兩個處理模塊(卷積和整流)的缺點的方式。同樣,,我們會從生物學和理論兩個方面討論歸一化,。 3.4 池化 不管是生物學啟發(fā)的,還是純粹基于學習的或完全人工設(shè)計的,,幾乎所有 CNN 模型都包含池化步驟,。池化運算的目標是為位置和尺寸的改變帶來一定程度的不變性以及在特征圖內(nèi)部和跨特征圖聚合響應。與之前幾節(jié)討論的三種 CNN 模塊類似,,池化在生物學和理論研究上都具有支持,。在 CNN 網(wǎng)絡的這個處理層上,,主要的爭論點是池化函數(shù)的選擇,。使用最廣泛的兩種池化函數(shù)分別是平均池化和最大池化。本節(jié)將探索相關(guān)文獻中描述的各種池化函數(shù)的優(yōu)點和缺點,。 圖 3.10:平均池化和最大池化在 Gabor 濾波后的圖像上的比較,。(a)展示了不同尺度的平均池化的效果,其中(a)中上面一行是應用于原始灰度值圖像的結(jié)果,,(a)中下面一行是應用于 Gabor 濾波后的圖像上的結(jié)果,。平均池化能得到灰度值圖像的更平滑的版本,而稀疏的 Gabor 濾波后的圖像則會褪色消散,。相對而言,,(b)給出了不同尺度的最大池化的效果,其中(b)中上面一行是應用于原始灰度值圖像的結(jié)果,,(b)中下面一行是應用于 Gabor 濾波后的圖像上的結(jié)果,。這里可以看到,最大池化會導致灰度值圖像質(zhì)量下降,,而 Gabor 濾波后的圖像中的稀疏邊則會得到增強,。圖來自 [131] 4 當前狀態(tài) 對 CNN 架構(gòu)中各種組件的作用的論述凸顯了卷積模塊的重要性,這個模塊很大程度上負責了在網(wǎng)絡中獲取最抽象的信息,。相對而言,,我們對這個處理模塊的理解卻最少,因為這需要最繁重的計算,。本章將介紹在嘗試理解不同的 CNN 層所學習的內(nèi)容上的當前趨勢,。同時,我們還將重點說明這些趨勢方面仍有待解決的問題,。 4.1 當前趨勢 盡管各種 CNN 模型仍繼續(xù)在多種計算機視覺應用中進一步推進當前最佳的表現(xiàn),,但在理解這些系統(tǒng)的工作方式和如此有效的原因上的進展仍還有限。這個問題已經(jīng)引起了很多研究者的興趣,,為此也涌現(xiàn)出了很多用于理解 CNN 的方法,。一般而言,這些方法可以分成三個方向:對所學習到的過濾器和提取出的特征圖進行可視化、受理解視覺皮層的生物學方法啟發(fā)的 ablation study,、通過向網(wǎng)絡設(shè)計中引入分析原理來最小化學習過程,。本節(jié)將簡要概述其中每種方法。 4.2 仍待解決的問題 基于上述討論,,基于可視化的方法存在以下關(guān)鍵研究方向:
以下是基于 ablation study 的方法的潛在研究方向:
最后,,這些受控方法是很有前景的未來研究方向,;因為相比于完全基于學習的方法,這些方法能讓我們對這些系統(tǒng)的運算和表征有更深入的理解,。這些有趣的研究方向包括:
本文為機器之心編譯,,轉(zhuǎn)載請聯(lián)系本公眾號獲得授權(quán)。 ?------------------------------------------------ 加入機器之心(全職記者/實習生):[email protected] 投稿或?qū)で髨蟮溃篹[email protected] 廣告&商務合作:[email protected] |
|