1. 程式人生 > >深度概覽卷積神經網路全景圖,沒有比這更全的了

深度概覽卷積神經網路全景圖,沒有比這更全的了

640?wx_fmt=jpeg

來源: 人工智慧頭條  翻譯 | 林椿眄

摘要:深度卷積神經網路是這一波 AI 浪潮背後的大功臣。雖然很多人可能都已經聽說過這個名詞,但是對於這個領域的相關從業者或者科研學者來說,淺顯的瞭解並不足夠。

通過這篇文章,我們希望幫助大家加深對卷積神經網路的理解,並對這個重要概念有一個全面的認知。

以下為翻譯後的內容:

第一章

引言

▌本文動機

過去幾年,計算機視覺研究主要集中在卷積神經網路上(通常簡稱為 ConvNet 或 CNN),在大量諸如分類和迴歸任務上已經實現了目前為止最佳的表現。

實際上,計算機視覺領域的很多成果都把 CNN 當作了一種黑箱,這種方式雖然有效的,但對結果的解釋卻是模糊不清的,這也無法滿足科學研究的需求。尤其是當這兩個問題是互補關係時:

(1)學習的方面(比如卷積核),它到底學習到的是什麼?

(2)模型結構設計方面(比如卷積層數量、卷積核數量、池化策略、非線性函式的選擇),為什麼某些組合會優於其他組合呢?求解這些問題的答案,不僅有利於我們更好地理解卷積神經網路,而且還能進一步提升它的工程實用性。

此外,當前 CNN 的實現方法都需要大量訓練資料,而且模型的設計方案對最終的結果有很大的影響。

▌本文目標

針對以上問題,本文將綜述幾種當前最優秀的多層卷積結構模型。更重要的是,本文還將通過不同方法來總結標準卷積神經網路的各種元件,並介紹它們所基於的生物學或合理的理論基礎。此外,本文還將介紹如何通過視覺化方法及例項研究來嘗試理解卷積神經網路內部的變化情況。我們的最終目標是向讀者詳細展示卷積神經網路中所涉及到的每一個卷積層操作,著重強調當前最先進的卷積神經網路模型並說明未來仍需解決的問題。

第二章

▌多層網路結構

近年來,在深度學習或深層神經網路取得成功前,計算機視覺識別系統最先進的方法主要由兩個步驟組成,這兩個步驟各自分離但又互補:首先,我們需要通過人工設計操作(如卷積、區域性或全域性編碼方法)將輸入資料轉換成合適的形式。這種輸入的變換形式,通常是為了得到輸入資料的一種緊湊或抽象的表徵,同時還要根據當前任務的需要手動設計一些不變數。

神經網路

標準的神經網路結構通常由輸入層 x,輸出層 y 和多個隱藏層 h 堆疊而成,其中每個層還由多個單元組成,如下圖所示。通常,每個隱藏單元 hj 接受上一層所有單元的輸入,並將其加權組合,其非線性組合的數學形式如下:



640?wx_fmt=png

wij  是權重值,用於控制輸入單位和隱藏單位之間連線的強度,bj 是隱藏單位的偏置,F 是非線性函式,如 Sigmoid 函式。

深度神經網路可以被視為是 Rosenblatt 感知器及多層感知器的例項。 儘管神經網路模型已經存在多年(即自 1960 年代以來),但它們並未被廣泛使用。

直到最近,一些研究人員將簡單感知器擴充套件到多層神經網路模型。 此更重要的是,多層神經網路結構依賴於大量的引數,這就意味著我們需要大量的訓練資料和計算資源來支援模型訓練及學習引數過程。

640?wx_fmt=png

標準神經網路結構示意圖

受限波爾茨曼機(RBM)的提出是深層神經網路領域的一大重要貢獻。受限玻耳茲曼機可以看作是兩層的神經網路,只允許網路以前饋連線的方式堆疊。而神經網路可以看作是使用受限波爾茨曼機進行分層無監督預訓練的一種模型,在影象識別任務中,這種無監督學習方法主要包括三個步驟:首先,對於影象中的每個畫素,對 xi 及初始化的 wij、偏置 bj、隱藏層狀態 hj,其概率可以被定義為:



640?wx_fmt=png



其中,σ(y)= 1 /(1 + exp(-y))。

其次,如上式所示,一旦所有的隱藏狀態都被隨機設定,我們可以根據概率640?wx_fmt=png將每個畫素設定為 1,並以此重建影象。

然後,隱藏單元將通過重建的權重和偏差來更新校正單位的誤差:



640?wx_fmt=png

其中,α 是學習率,(xihj)表示隱藏單元 hj 中畫素 xi 出現的次數。整個訓練過程將重複 N 次或直到誤差下降到預設的閾值 τ。通常,網路中的所有層經過預訓練後,它們還將通過梯度下降的方式,反向傳播誤差來進一步微調標記資料。使用這種分層無監督預訓練的方式可以不需大量標記資料的情況下,訓練深層神經網路結構。因為利用受限波爾茨曼機進行無監督預訓練,能夠為模型引數的初始化提供了一種有效途徑。受限波爾茨曼機的第一個成功應用案例是用於人臉識別的降維,它們被當作是一種自編碼器。

640?wx_fmt=png標準的自編碼器結構

迴圈神經網路

迴圈神經網路是處理序列資料相關任務最成功的多層神經網路模型(RNN)。 RNN,其結構示意圖如下圖所示,它可以看作是神經網路的一種特殊型別,隱藏單元的輸入由當前時間步所觀察到的資料中獲取輸入以及它在前一個時間步的狀態組合而成。 迴圈神經網路的輸出定義如下:

640?wx_fmt=png

其中 σ 表示一些非線性函式,wi 和ui 是網路引數,用於控制當前和過去資訊的相對重要性。

640?wx_fmt=png標準的迴圈神經網路結構示意圖

每個迴圈單元的輸入將由當前時刻的輸入 xt 及上一時刻 ht-1 組成,新的輸出表示可通過上式計算得到,並傳遞給迴圈神經網路中的其他層。

雖然迴圈神經網路是一類強大的多層神經網路模型,但其的主要問題是模型對時間的長期依賴性,由於梯度爆炸或梯度消失,這種限制將導致模型訓練過程在網路回傳過程中誤差的不平穩變化。為了糾正這個困難,引入了長短期記憶網路(LSTM)。

 值得注意的是,LSTM 還包含遺忘門,即網路能夠刪除一些不必要的資訊。總的來說, LSTM 的結構主要包含有:三個控制不同的門(輸入門、遺忘門及輸出門),以及儲存單元狀態。 輸入門由當前輸入 xt 和前一個狀態 ht-1 控制,它的定義如下:



640?wx_fmt=png

其中,wi,ui,bi 表示權重和偏差項,用於控制與輸入門相關的權重,σ 通常是一個 Sigmoid 函式。類似地,遺忘門定義如下:

640?wx_fmt=png

相應地,權重和偏差項由 wf,uf,bf 控制。 可以說,LSTM 最重要的一點是它可以應對梯度消失或梯度爆炸時網路中誤差傳播不平穩的挑戰。

640?wx_fmt=png標準的長短期記憶網路結構示意圖

每個迴圈單元的輸入將由當前時刻的輸入 xt 及上一時刻 ht-1 組成,網路的返回值將饋送到下一時刻 ht。LSTM 最終的輸出由輸入門 it,遺忘門 ft 及輸出門 ot 和記憶單元狀態 ct 共同決定。

卷積神經網路

卷積網路(ConvNets)是一種特殊的神經網路型別,其特別適合計算機視覺應用,因為它們對於區域性操作有很強的抽象表徵能力。推動卷積神經網路結構在計算機視覺中成功應用的兩個關鍵性的因素:

第一,卷積神經網路能夠利用影象的 2D 結構和影象相鄰畫素之間的高度相關性,從而避免在所有畫素單元之間使用一對一連線(即如同大多數全連線的神經網路),這有利於使用分組的區域性連線。此外,卷積神經網路結構依賴於特徵共享原則,正如下圖所示,每個通道的輸出(或輸出的特徵對映)都是通過所有位置的相同濾波器的卷積生成。

640?wx_fmt=png標準的卷積神經網路結構示意圖

第二,卷積神經網路還引入一個池化步驟,在一定程度上保證了影象的平移不變性,這使得模型不受位置變化的影響。還值得注意的是,池化操作使得網路擁有更大的感受野,從而能夠接受更大的輸入。感受野的增大,將允許網路在更深層學習到更加抽象的特徵表徵。例如,對於目標識別任務,卷積網路中的淺層將學習到影象的一些邊、角特徵,而在更深層能夠學習到整個目標的特徵。

卷積神經網路的結構最早是受生物視覺機制啟發而設計的,正如 Hube 在其開創性的研究中所描述的人類視覺皮層的工作原理。隨後,Fukushima 提出的神經感知器(Neocognitron)是卷積神經網路的前身,它依賴區域性連線的方式,由 K 層神經網路層級聯而成,每層神經網路由 S-cell 單元,U sl 及複雜的單元相間分佈而成,這種交替分佈的形式是模仿生物簡單細胞中的處理機制而設計的,其結構示意圖如下圖所示。

640?wx_fmt=png神經感知器結構示意圖

此外,在卷積操作後都會跟隨一個非線性變化單元,常見的非線性函式是修正線形單元 ReLu,其數學表示式如下:

640?wx_fmt=png

在非線性變換後,通常會引入池化單元。平均池化操作是常用的池化操作之一,通過平均化感受野中的畫素值,來綜合考慮周圍畫素的特徵。經典的卷積網路由四個基本處理層組成: 卷積層、非線性變換層、歸一化層及池化層。

生成對抗網路

生成對抗網路是 2014 年首次引入的一種新型多層神經網路模型,這種模型結構充分體現了多層網路架構的強大性。雖然生成對抗網路並沒有多種不同的網路構建模組,但這種網路結構具有一些特殊性,最關鍵的是引入了無監督學習方式,使得模型的訓練學習不再依賴大量的標記資料。

一個標準的生成對抗模型主要由兩部分子網路組成:生成網路 G 和判別網路 D,如下圖所示,兩個子網路都是預先定義好的多層網路結構(最初提出的模型中二者都是多層全連線網路)。

640?wx_fmt=png通用的生成對抗網路結構示意圖

生成對抗網路自提出以來,因其強大的多層網路結構及獨特的無監督學習方式,得到了廣泛的關注和研究。GAN 的成功應用包括:文字到影象合成(其中網路的輸入是要呈現影象的文字描述);超解析度影象的生成,即用較低解析度的輸入生成逼真的高解析度影象;影象修復,即用 GAN 來生成來自輸入影象中的缺失資訊;紋理合成,即從輸入噪聲中生成逼真的紋理特徵。

多層網路的訓練

如前所述,當前各種多層神經網路結構所取得的成功,在很大程度上取決於網路訓練學習過程的進步。通常,神經網路的訓練首先需要進行多層無監督預訓練,隨後,將預訓練好的模型進行有監督訓練,訓練過程都是基於梯度下降的反向傳播原則,通過反向傳播網路誤差,來更正修正模型的引數值,從而優化網路結構及輸出結果。

遷移學習

多層神經網路結構的一大益處是在跨資料集甚至跨不同任務中,模型所學得的特徵具有通用的適用性。在多層網路結構中,隨著層次的增加,所學得的特徵表徵通常也是從簡單到複雜、從區域性到全域性發展。

▌空間卷積神經網路

理論上,卷積神經網路可以應用於任意維度的資料,特別適用於二維的影象資料,因此卷積結構在計算機視覺領域受到了相當關注。

640?wx_fmt=png

AlexNet 模型結構示意圖

值得注意的是,這種結構由兩個分支網路構成,分別在兩個不同的 GPU 上並行訓練。

640?wx_fmt=pngGoogleNet 模型結構示意圖。該模型由多個 Inception 模組構成。

640?wx_fmt=pngResNet 模型結構示意圖。該模型由多個殘差模組構成。

640?wx_fmt=png

640?wx_fmt=pngDenseNet 模型結構示意圖。該模型由多個密集模組堆疊而成。

卷積神經網路的不變形

使用卷積神經網路的一大挑戰是需要非常大的資料集來訓練並學習模型的所有基本引數。但即便是當前大規模的資料集,如 ImageNet 擁有超過一百萬張影象資料的資料集,仍然無法滿足深層卷積結構訓練的需要。

處理不變性最大化的一種優秀結構是空間變換網路(STN)。該模型結構由三個子模組組成:一個定位模組,一個網格生成模組和一個取樣模組,如下圖所示。

640?wx_fmt=png空間變換網路結構示意圖

卷積神經網路中的目標定位問題

全卷積網路(FCN)是其中最成功的卷積結構之一,主要用於影象語義分割。顧名思義,FCN 並未使用全連線層,而是將它們轉換為卷積層,其感受野範圍覆蓋整個卷積層的底層特徵圖。更重要的是,網路通過學習一個上取樣或者去卷積濾波器,可以恢復最後一層影象的全解析度,其結構示意圖如下圖所示。

640?wx_fmt=png

全卷積網路結構示意圖。經過上取樣操作,在模型最後一層得到全解析度的特徵圖,適用 softmax 將每個畫素分類,並生成最終的分割結果。

在 FCN 中,語義分割問題被轉化成一個密集的逐畫素分類問題,通過投射來實現。換句話說,每個畫素都與 softmax 層關聯,通過畫素逐類分組來實現影象的語義分割。更值得注意的是,在這項工作中對較低結構層的特徵適用上取樣操作,起著至關重要作用。

▌時域卷積神經網路

如上所述,卷積神經網路在計算機視覺二維空間的應用中所取得的顯著效能,引發了人們對 3D 時空應用的研究。許多文獻中提出的時域卷積結構通常只是試圖從空間域(x,y)擴充套件到時間域(x,y,t)的二維卷積結構。而時域神經網路結構有三種不同的形式:基於 LSTM 的時域卷積網路、3D 卷積神經網路和雙流卷積神經網路,其模型結構示意圖如下圖。

640?wx_fmt=png基於 LSTM 的時域卷積神經網路。該模型中,由視訊流的每幀資料構成模型的輸入。

640?wx_fmt=png雙流卷積神經網路。該模型以 RGB 光流資料作為輸入。

▌總結

相比於手動設計的特徵或淺層的特徵表示,多層卷積結構是當前計算機視覺領域最先進、最具吸引力的結構之一。總體而言,大多數模型結構都是基於四個共同的構件塊,即卷積、非線性單元、歸一化和池化操作。接下來我們將進一步討論卷積神經網路設計過程中這些超引數的選擇。

第三章

理解卷積神經網路的構建模組

考慮到卷積神經網路領域還存在大量未解決的問題,在本章我們將探討一些典型案例中卷積網路的每一層處理操作的作用及意義,尤其我們將從理論和生物學角度給出合理解釋。

▌卷積層

卷積神經網路的核心層是卷積層,這是模型最重要的一步。總的來說,卷積是一種線性的、具有平移不變性的運算,它是通過區域性加權輸入訊號來實現的。權重集合是根據點擴散函式(point spread function)來確定的,不同的權重函式能夠反映出輸入訊號的不同性質。

▌非線性單元

多層神經網路通常是高度的非線性模型,而修正單元(rectification)通常將引入一個非線性函式(也被稱為啟用函式),即將非線性函式應用到卷積層輸出中。引入修正單元的目的,一方面是為了最好的、最合適的模型解釋;另一方面是為了讓模型能更快和更好地學習。常用的非線性函式主要包括 Logistic 函式、tanh 函式、Sigmoid 函式、ReLU 及其變體 LReLU,SReLU,EReLU 等,其函式影象如下圖所示。

640?wx_fmt=png多層網路結構中的非線性啟用函式

▌歸一化

如上所述,由於這些多層網路中存在級聯的非線性運算,因此多層神經網路都是高度的非線性模型。除了上面討論的修正非線性單元外,歸一化(normalization)同樣是卷積神經網路結構中重要的非線性處理模組。最廣泛使用的歸一化形式即所謂的區域性響應歸一化操作(LRN,Local Response Normalization)。此外,還有諸如批歸一化(batch normalization),分裂歸一化(divisive normalization)等。

▌池化操作

幾乎所有的卷積神經網路,都包含池化操作。池化操作是為了提取特徵在不同位置和規模上的變化,同時聚合不同特徵對映的響應。正如卷積結構中前三個組份,池化操作也是受到生物學啟發和理論支援而提出的。 平均池化和最大池化是兩個最廣泛使用的池化操作,其池化效果依次如下圖所示。

640?wx_fmt=png經平均池化操作後Gabor特徵的變化情況

640?wx_fmt=png經最大池化操作後Gabor特徵的變化情況

第四章

當前研究狀態

對卷積神經網路結構中各組作用的闡述凸顯了卷積模組的重要性,這個模組主要用於捕獲最抽象的特徵資訊。相對而言,我們對卷積模組操作的理解卻很模糊,對其中繁瑣的計算過程的理解並不透徹。本章我們將嘗試理解卷積網路中不同層所學習的內容及不同的視覺化方法。同時,我們還將重點展望這些方面仍待解決的問題。

▌當前趨勢

儘管各種優秀的卷積模型在多種計算機視覺應用中取得了最優表現,但在理解這些模型結構的工作方式及探索這些結構的有效性方面的研究進展仍相當緩慢。如今,這個問題已經引起了眾多研究者的興趣,為此很多研究提出用於理解卷積結構的方法。

總的來說,這些方法可以分成三個方向:對所學習到的過濾器和提取的特徵圖進行視覺化分析、受生物視覺皮層理解方法所啟發的消融學習(ablation study)、以及通過引入主成分分析法設計並分析網路最小化學習過程,我們將簡要概述這三種方法。

卷積的視覺化分析

卷積視覺化的第一種方法是以資料集為中心的方法,因為卷積操作依靠從資料集輸入來探測網路在網路中找到最大響應單元。這種方法的第一個應用是反捲積(DeConvNet)。其中視覺化是分兩步實現:首先,一個卷積結構接收來自資料集 a 的幾個影象並記錄資料集中輸入的特徵對映最大響應;其次,這些特徵地圖使用反捲積結構,通過反轉卷積操作模組,將卷積操作中學習到的濾波器特徵進行轉置來執行“解卷積”操作,從而實現卷積的視覺化分析。反捲積操作的示意圖如下圖所示:

640?wx_fmt=png反捲積構建模組

卷積視覺化的第二種方法稱為以網路為中心的方法,因為它僅使用網路引數而不需要任何用於視覺化的資料。這種方法首次應用於深層置信網路的視覺化分析中,後來才應用於卷積網路結構中。具體地說,這種卷積視覺化是通過合成影象來實現的,該影象將最大化某些神經元(或過濾器)的響應。

卷積的消融學習

另一種流行的視覺化方法是使用所謂的網路消融研究。實際上,許多著名的卷積結構都包括模型消融研究實驗部分,其目的是隔離卷積結構的不同部分組成網路,來檢視刪除或新增某些模組如何模擬整體的效能。消融研究能夠指導研究者設計出效能更優的網路結構。

卷積結構的控制設計

理解卷積結構的另一種方法是在網路設計時新增先驗知識,從而最大限度地減少所需學習的模型引數。例如,一些方法是減少每層卷積層所需學習的過濾器數量,並用轉換後的版本在每一層中學習的濾波器來模擬旋轉不變性。 

▌待解決問題

通過上述內容,我們總結了卷積模型一些關鍵技術以及如何更好地理解卷積結構的方法。下面,我們將進一步討論在卷積模型領域仍待解決的一些問題。

基於卷積視覺化的研究方法仍待解決的幾個關鍵問題:

  • 首先,開發更加客觀的視覺化評價方法是非常重要的,可以通過引入評價指標來評估所生成的視覺化影象質量或含義來實現。

  • 此外,儘管看起來以網路為中心的卷積視覺化方法更有前景(因為它們在生成視覺化結果過程中不依賴模型結構自身),但也缺乏一套標準化的評估流程。一種可能的解決方案是使用一個評估基準來評價同樣條件下生成的網路視覺化結果。這樣的標準化方法反過來也能實現基於指標的評估方法,而不是當前的解釋性分析。

  • 另一個視覺化分析的發展方向是同時視覺化網路的多個單元,以更好地理解模型中特徵表徵的分佈情況,甚至還能遵循一種控制方法。

基於 ablation study 的研究方法仍待解決的幾個關鍵問題:

  • 使用共同的、系統性組織的資料集。我們不僅要解決計算機視覺領域常見的不同挑戰(比如視角和光照變化),還必須要應對複雜度更大的類別問題(如影象紋理、部件和目標複雜度等)。近年來,已經出現了一些這樣的資料集。在這樣的資料集上,使用 ablation study,輔以混淆矩陣分析,可以確定卷積結構中出錯的模組,以便實現更好的理解卷積。

  • 此外,分析多個協同的 ablation 對模型表現的影響方式,是一個很受關注的研究方向。這樣的研究也能有助於我們理解獨立單元的工作方式。

相比於完全基於學習的方法,還有一些受控方法能讓我們對這些結構的運算和表徵有更深入的理解,因而具有很大的研究前景。這些有趣的研究方向包括:

  • 逐層固定網路引數及分析對網路行為的影響。例如,基於當前特定任務的先驗知識,一次固定一層的卷積核引數,以分析每一卷積層中卷積核的適用性。這個逐層漸進式的學習方式有助於揭示卷積學習的作用,還可用作最小化訓練時間的初始化方法。

  • 類似地,可以通過分析輸入的特徵來研究網路結構的設計(如層的數量或每層中過濾器數量的選擇方案),這種方法有助於設計出最適合模型結構。

  • 最後,將受控方法應用於網路的同時,可以對卷積神經網路的其它方面的作用進行系統性的研究。通常,我們重點關注的是模型所學習的引數,所以對這方面得到的關注較少。例如,我們可以在固定大多數引數的情況下,研究各種池化策略和殘差連線的作用。

未來智慧實驗室是人工智慧學家與科學院相關機構聯合成立的人工智慧,網際網路和腦科學交叉研究機構。

未來智慧實驗室的主要工作包括:建立AI智慧系統智商評測體系,開展世界人工智慧智商評測;開展網際網路(城市)雲腦研究計劃,構建網際網路(城市)雲腦技術和企業圖譜,為提升企業,行業與城市的智慧水平服務。

  如果您對實驗室的研究感興趣,歡迎加入未來智慧實驗室線上平臺。掃描以下二維碼或點選本文左下角“閱讀原文”

640?wx_fmt=jpeg