導讀:深度摺積神經網路是這一波 AI 浪潮背後的大功臣。雖然很多人可能都已經聽說過這個名詞,但是對於這個領域的相關從業者或者科研學者來說,淺顯的瞭解並不足夠。近日,約克大學電氣工程與電腦科學系的 Isma Hadji 和 Richard P. Wildes 發表了一篇《我們該如何理解摺積神經網路?》的論文:
-
第一章回顧了理解摺積神經網路的動機;
-
第二章闡述了幾種多層神經網路,並介紹當前計算機視覺領域應用中最成功的摺積結構;
-
第三章具體介紹了標準摺積神經網路中的各構成元件,並從生物學和理論兩個角度分析不同元件的設計方案;
-
第四章討論了當前摺積神經網路設計的趨勢及視覺化理解摺積神經網路的相關研究工作,還重點闡述了當前結構仍存在的一些關鍵問題。
透過這篇文章,我們希望幫助大家加深對摺積神經網路的理解,並對這個重要概念有一個全面的認知。
翻譯:林椿眄
來源:AI科技大本營(ID:rgznai100)
目錄
第一章
引言
本文動機
本文標的
第二章
多層網路結構
神經網路
迴圈神經網路
摺積神經網路
生成對抗網路
多層網路的訓練
遷移學習
空間摺積神經網路
摺積神經網路的不變形
摺積神經網路中的標的定位問題
時域摺積神經網路
總結
第三章
理解摺積神經網路的構建模組
摺積層
非線性單元
歸一化
池化操作
第四章
當前研究狀態
當前趨勢
摺積的視覺化分析
摺積的消融學習
摺積結構的控制設計
待解決問題
第一章
引言
本文動機
過去幾年,計算機視覺研究主要集中在摺積神經網路上(通常簡稱為 ConvNet 或 CNN),在大量諸如分類和回歸任務上已經實現了目前為止最佳的表現。儘管這些方法的歷史可以追溯到多年前,但相對而言,對這些方法的理論理解及對結果的解釋還比較淺薄。
實際上,計算機視覺領域的很多成果都把 CNN 當作了一種黑箱,這種方式雖然有效的,但對結果的解釋卻是模糊不清的,這也無法滿足科學研究的需求。尤其是當這兩個問題是互補關係時:
(1)學習的方面(比如摺積核),它到底學習到的是什麼?
(2)模型結構設計方面(比如摺積層數量、摺積核數量、池化策略、非線性函式的選擇),為什麼某些組合會優於其他組合呢?求解這些問題的答案,不僅有利於我們更好地理解摺積神經網路,而且還能進一步提升它的工程實用性。
此外,當前 CNN 的實現方法都需要大量訓練資料,而且模型的設計方案對最終的結果有很大的影響。而更深層的理論理解應該減輕模型對資料的依賴性。儘管大量的研究已經集中在摺積神經網路的實現方式,但目前為止,這些研究結果很大程度上還只侷限在對摺積操作內部處理的視覺化上,目的是為了理解摺積神經網路中不同層的變化情況。
本文標的
針對以上問題,本文將綜述幾種當前最優秀的多層摺積結構模型。更重要的是,本文還將透過不同方法來總結標準摺積神經網路的各種元件,並介紹它們所基於的生物學或合理的理論基礎。此外,本文還將介紹如何透過視覺化方法及實體研究來嘗試理解摺積神經網路內部的變化情況。我們的最終標的是向讀者詳細展示摺積神經網路中所涉及到的每一個摺積層操作,著重強調當前最先進的摺積神經網路模型並說明未來仍需解決的問題。
第二章
多層網路結構
近年來,在深度學習或深層神經網路取得成功前,計算機視覺識別系統最先進的方法主要由兩個步驟組成,這兩個步驟各自分離但又互補:首先,我們需要透過人工設計操作(如摺積、區域性或全域性編碼方法)將輸入資料轉換成合適的形式。這種輸入的變換形式,通常是為了得到輸入資料的一種緊湊或抽象的表徵,同時還要根據當前任務的需要手動設計一些不變數。透過這種轉換,我們能夠將輸入資料表徵成一種更容易分離或識別的形式,這有助於後續的識別分類。其次,轉換後的資料通常作為分類器(如支援向量機)訓練的輸入訊號。通常而言,任何分類器的表現都會受到變換後的資料質量及所使用的變換方法的影響。
多層神經網路結構的出現為解決這一問題帶來了新的方式,這種多層結構不僅能夠訓練標的分類器,還能從輸入資料中直接學習所需的變換操作。這種學習方式通常稱為表徵學習,當將其應用在深度或多層神經網路結構中時,我們稱之為深度學習。
多層神經網路定義為是一種從輸入資料的層次抽象表徵中提取有用資訊的計算模型。一般而言,設計多層網路結構的標的是為了在高層凸顯輸入資料的重要資訊,同時能讓那些不太不重要的資訊變化更具魯棒性。
近年來,研究者已經提出了很多不同型別的多層架構,而大多數的多層神經網路都是以堆疊的方式,將一些線性和非線性函式模組組合形成多層結構。本章將會改寫計算機視覺應用中最先進的多層神經網路結構。其中,人工神經網路是我們需要的關註重點,因為這種網路結構的表現非常突出。為了方便起見,在下文我們會直接將這類網路稱為神經網路。
神經網路
標準的神經網路結構通常由輸入層 x,輸出層 y 和多個隱藏層 h 堆疊而成,其中每個層還由多個單元組成,如下圖所示。通常,每個隱藏單元 hj 接受上一層所有單元的輸入,並將其加權組合,其非線性組合的數學形式如下:
wij 是權重值,用於控制輸入單位和隱藏單位之間連線的強度,bj 是隱藏單位的偏置,F 是非線性函式,如 Sigmoid 函式。
深度神經網路可以被視為是 Rosenblatt 感知器及多層感知器的實體。 儘管神經網路模型已經存在多年(即自 1960 年代以來),但它們並未被廣泛使用。造成這種的原因有很多,最主要的原因是感知器無法模擬像 XOR 這樣的簡單操作而被外界否定,這也進一步阻礙了研究人員對感知器的研究。
直到最近,一些研究人員將簡單感知器擴充套件到多層神經網路模型。 此外,缺乏適當的訓練演演算法也會延緩感知度的訓練進度,而反向傳播演演算法的提出也使得神經網路模型得以普及。更重要的是,多層神經網路結構依賴於大量的引數,這就意味著我們需要大量的訓練資料和計算資源來支援模型訓練及學習引數過程。
▲標準神經網路結構示意圖
受限波爾茨曼機(RBM)的提出是深層神經網路領域的一大重要貢獻。受限玻耳茲曼機可以看作是兩層的神經網路,只允許網路以前饋連線的方式堆疊。而神經網路可以看作是使用受限波爾茨曼機進行分層無監督預訓練的一種模型,在影象識別任務中,這種無監督學習方法主要包括三個步驟:首先,對於影象中的每個畫素,對 xi 及初始化的 wij、偏置 bj、隱藏層狀態 hj,其機率可以被定義為:
其中,σ(y)= 1 /(1 + exp(-y))。
其次,如上式所示,一旦所有的隱藏狀態都被隨機設定,我們可以根據機率將每個畫素設定為 1,並以此重建影象。
然後,隱藏單元將透過重建的權重和偏差來更新校正單位的誤差:
其中,α 是學習率,(xihj)表示隱藏單元 hj 中畫素 xi 出現的次數。整個訓練過程將重覆 N 次或直到誤差下降到預設的閾值 τ。訓練完一層後,使用它的輸出作為下一層的輸入,然後接著重覆上述過程訓練下一層。通常,網路中的所有層經過預訓練後,它們還將透過梯度下降的方式,反向傳播誤差來進一步微調標記資料。使用這種分層無監督預訓練的方式可以不需大量標記資料的情況下,訓練深層神經網路結構。因為利用受限波爾茨曼機進行無監督預訓練,能夠為模型引數的初始化提供了一種有效途徑。受限波爾茨曼機的第一個成功應用案例是用於人臉識別的降維,它們被當作是一種自編碼器。
自動編碼器主要是透過引入不同的正則化方法來防止模型學習一些無關緊要的資料特徵。目前一些比較優秀的編碼器包括稀疏自編碼器、去噪自編碼器(DAE)和壓縮自編碼器(CAE)等。稀疏自編碼器允許中間編碼表示的大小(即由輸入生成編碼器)大於輸入的大小,同時透過稀疏表示來正則化負相的輸出。相反,去噪自編碼器改變了編碼重建本身的標的,試圖重建一個乾凈、不帶噪聲的輸入版本,得到一個更加強大的表示。類似地,壓縮自編碼器是透過懲罰噪聲中最敏感的單位來實現類似去噪自編碼器的過程。
▲標準的自編碼器結構
迴圈神經網路
迴圈神經網路是處理序列資料相關任務最成功的多層神經網路模型(RNN)。 RNN,其結構示意圖如下圖所示,它可以看作是神經網路的一種特殊型別,隱藏單元的輸入由當前時間步所觀察到的資料中獲取輸入以及它在前一個時間步的狀態組合而成。 迴圈神經網路的輸出定義如下:
其中 σ 表示一些非線性函式,wi 和ui 是網路引數,用於控制當前和過去資訊的相對重要性。
▲標準的迴圈神經網路結構示意圖
每個迴圈單元的輸入將由當前時刻的輸入 xt 及上一時刻 ht-1 組成,新的輸出表示可透過上式計算得到,並傳遞給迴圈神經網路中的其他層。
雖然迴圈神經網路是一類強大的多層神經網路模型,但其的主要問題是模型對時間的長期依賴性,由於梯度爆炸或梯度消失,這種限制將導致模型訓練過程在網路回傳過程中誤差的不平穩變化。為了糾正這個困難,引入了長短期記憶網路(LSTM)。
長短期記憶網路(LSTM)的結構示意圖下圖所示,擁有儲存單元或記憶單元,隨著時間的推移儲存記憶資訊。LSTM 的儲存單元是透過門控機制從中讀取資訊或寫入資訊。 值得註意的是,LSTM 還包含遺忘門,即網路能夠刪除一些不必要的資訊。總的來說, LSTM 的結構主要包含有:三個控制不同的門(輸入門、遺忘門及輸出門),以及儲存單元狀態。 輸入門由當前輸入 xt 和前一個狀態 ht-1 控制,它的定義如下:
其中,wi,ui,bi 表示權重和偏差項,用於控制與輸入門相關的權重,σ 通常是一個 Sigmoid 函式。類似地,遺忘門定義如下:
相應地,權重和偏差項由 wf,uf,bf 控制。 可以說,LSTM 最重要的一點是它可以應對梯度消失或梯度爆炸時網路中誤差傳播不平穩的挑戰。這種能力的實現是透過遺忘門和輸入門的狀態進行加法結合來確定儲存單元的狀態。
▲標準的長短期記憶網路結構示意圖
每個迴圈單元的輸入將由當前時刻的輸入 xt 及上一時刻 ht-1 組成,網路的傳回值將饋送到下一時刻 ht。LSTM 最終的輸出由輸入門 it,遺忘門 ft 及輸出門 ot 和記憶單元狀態 ct 共同決定。
摺積神經網路
摺積網路(ConvNets)是一種特殊的神經網路型別,其特別適合計算機視覺應用,因為它們對於區域性操作有很強的抽象表徵能力。推動摺積神經網路結構在計算機視覺中成功應用的兩個關鍵性的因素:
第一,摺積神經網路能夠利用影象的 2D 結構和影象相鄰畫素之間的高度相關性,從而避免在所有畫素單元之間使用一對一連線(即如同大多數全連線的神經網路),這有利於使用分組的區域性連線。此外,摺積神經網路結構依賴於特徵共享原則,正如下圖所示,每個通道的輸出(或輸出的特徵對映)都是透過所有位置的相同濾波器的摺積生成。相比於標準的神經網路結構,摺積神經網路的這個重要特性依賴於很少的模型引數。
▲標準的摺積神經網路結構示意圖
第二,摺積神經網路還引入一個池化步驟,在一定程度上保證了影象的平移不變性,這使得模型不受位置變化的影響。還值得註意的是,池化操作使得網路擁有更大的感受野,從而能夠接受更大的輸入。感受野的增大,將允許網路在更深層學習到更加抽象的特徵表徵。例如,對於標的識別任務,摺積網路中的淺層將學習到影象的一些邊、角特徵,而在更深層能夠學習到整個標的的特徵。
摺積神經網路的結構最早是受生物視覺機制啟發而設計的,正如 Hube 在其開創性的研究中所描述的人類視覺皮層的工作原理。隨後,Fukushima 提出的神經感知器(Neocognitron)是摺積神經網路的前身,它依賴區域性連線的方式,由 K 層神經網路層級聯而成,每層神經網路由 S-cell 單元,U sl 及複雜的單元相間分佈而成,這種交替分佈的形式是模仿生物簡單細胞中的處理機制而設計的,其結構示意圖如下圖所示。
▲神經感知器結構示意圖
此外,在摺積操作後都會跟隨一個非線性變化單元,常見的非線性函式是修正線形單元 ReLu,其數學運算式如下:
在非線性變換後,通常會引入池化單元。平均池化操作是常用的池化操作之一,透過平均化感受野中的畫素值,來綜合考慮周圍畫素的特徵。而最大池化則是用來提取相鄰畫素間最重要的特徵資訊,避免模型學習到一些無關緊要的特徵。經典的摺積網路由四個基本處理層組成: 摺積層、非線性變換層、歸一化層及池化層。
近年來,在計算機視覺領域中所應用的摺積神經網路結構,大多是基於 Lecun 在 1998 年提出的用於手寫字母識別的 LeNet 摺積模型結構。LeNet 的一個關鍵是加入反向傳播過程來更有效地學習摺積引數。與全連線神經網路相比,雖然摺積神經網路有其獨特的優勢,但其對於標簽資料的嚴重依賴性,也是其未被廣泛使用的主要原因之一。直到 2012 年,隨著大型 ImageNet 資料集的釋出及計算能力的提高,人們重新恢復對摺積神經網路的研究興趣。
生成對抗網路
生成對抗網路是 2014 年首次引入的一種新型多層神經網路模型,這種模型結構充分體現了多層網路架構的強大性。雖然生成對抗網路並沒有多種不同的網路構建模組,但這種網路結構具有一些特殊性,最關鍵的是引入了無監督學習方式,使得模型的訓練學習不再依賴大量的標記資料。
一個標準的生成對抗模型主要由兩部分子網路組成:生成網路 G 和判別網路 D,如下圖所示,兩個子網路都是預先定義好的多層網路結構(最初提出的模型中二者都是多層全連線網路)。經過交替對抗訓練,判別網路的標的是鑒別生成網路的生成資料標簽與真實資料標簽之間的真偽,而生成網路的標的是生成更加最佳化的資料,以 “欺騙”判別網路,訓練的最終結果是使得生成的資料達到以假亂真的目的。
▲通用的生成對抗網路結構示意圖
生成對抗網路自提出以來,因其強大的多層網路結構及獨特的無監督學習方式,得到了廣泛的關註和研究。GAN 的成功應用包括:文字到影象合成(其中網路的輸入是要呈現影象的文字描述);超解析度影象的生成,即用較低解析度的輸入生成逼真的高解析度影象;影象修複,即用 GAN 來生成來自輸入影象中的缺失資訊;紋理合成,即從輸入噪聲中生成逼真的紋理特徵。
多層網路的訓練
如前所述,當前各種多層神經網路結構所取得的成功,在很大程度上取決於網路訓練學習過程的進步。通常,神經網路的訓練首先需要進行多層無監督預訓練,隨後,將預訓練好的模型進行有監督訓練,訓練過程都是基於梯度下降的反向傳播原則,透過反向傳播網路誤差,來更正修正模型的引數值,從而最佳化網路結構及輸出結果。
遷移學習
多層神經網路結構的一大益處是在跨資料集甚至跨不同任務中,模型所學得的特徵具有通用的適用性。在多層網路結構中,隨著層次的增加,所學得的特徵表徵通常也是從簡單到複雜、從區域性到全域性發展。因此,在低層次提取的特徵往往適用於多種不同任務,這使得多層結構更容易進行遷移學習。
空間摺積神經網路
理論上,摺積神經網路可以應用於任意維度的資料,特別適用於二維的影象資料,因此摺積結構在計算機視覺領域受到了相當關註。隨著可用的大規模資料集和強大的計算機能力的發展,摺積神經網路在計算機視覺領域的應用也日益增長。本節我們將介紹幾種最突出的摺積神經網路結構,包括 AlexNet, VGGNet, GoogleNet, ResNet, DenseNet 等,其結構示意圖依次如下,這些體系結構都是基於原始的 LeNet 發展起來的。
▲AlexNet 模型結構示意圖。值得註意的是,這種結構由兩個分支網路構成,分別在兩個不同的 GPU 上並行訓練
▲GoogleNet 模型結構示意圖,該模型由多個 Inception 模組構成
▲ResNet 模型結構示意圖,該模型由多個殘差模組構成
▲DenseNet 模型結構示意圖,該模型由多個密集模組堆疊而成
摺積神經網路的不變形
使用摺積神經網路的一大挑戰是需要非常大的資料集來訓練並學習模型的所有基本引數。但即便是當前大規模的資料集,如 ImageNet 擁有超過一百萬張影象資料的資料集,仍然無法滿足深層摺積結構訓練的需要。通常,在模型訓練前,我們會透過資料增強操作來處理資料集:即透過隨機翻轉、旋轉等操作來改變影象,從而增加資料樣本的數量。
這些資料增強操作的主要優點是使得網路對於各種影象轉換更加魯棒,這項技術也是 AlexNet 取得成功的主要原因之一。因此,除了上述改變網路架構以簡化訓練的方法之外,其他的研究工作旨在引入新穎的模組結構來更好的訓練模型。處理不變性最大化的一種優秀結構是空間變換網路(STN)。具體的說,這種網路結構使用了一個新穎的學習模組,增加了模型對不重要空間變換的不變性,例如, 在物體識別過程中那些由不同視點引起的變換。該模型結構由三個子模組組成:一個定位模組,一個網格生成模組和一個取樣模組,如下圖所示。
▲空間變換網路結構示意圖
摺積神經網路中的標的定位問題
除了簡單的標的識別分類任務,近年來摺積結構在標的精準定位的任務中同樣表現出色,如標的檢測、語意分割任務等。全摺積網路(FCN)是其中最成功的摺積結構之一,主要用於影象語意分割。顧名思義,FCN 並未使用全連線層,而是將它們轉換為摺積層,其感受野範圍改寫整個摺積層的底層特徵圖。更重要的是,網路透過學習一個上取樣或者去摺積濾波器,可以恢復最後一層影象的全解析度,其結構示意圖如下圖所示。
▲全摺積網路結構示意圖。經過上取樣操作,在模型最後一層得到全解析度的特徵圖,適用 softmax 將每個畫素分類,並生成最終的分割結果
在 FCN 中,語意分割問題被轉化成一個密集的逐畫素分類問題,透過投射來實現。換句話說,每個畫素都與 softmax 層關聯,透過畫素逐類分組來實現影象的語意分割。更值得註意的是,在這項工作中對較低結構層的特徵適用上取樣操作,起著至關重要作用。由於較低層特徵更傾向於捕捉更精細化的細節,因此上取樣操作允許模型進行更精確的分割。此外,反摺積濾波器的一種替代方案是使用擴張摺積,即上取樣稀疏濾波器,這有助於在保持引數數量的同時,模型能夠學習到更高解析度的特徵圖。
R-CNN 是最早用於標的檢測任務的摺積結構,這是一種帶區域建議的摺積神經網路(RPN),在最初的標的檢測任務中取得了最先進的檢測結果,特別是使用區域建議的選擇性搜尋演演算法來檢測可能包含標的的潛在區域,並將這些建議區域做一些變換以便匹配摺積結構的輸入大小,經卷積神經網路中特徵提取後,最終送入 SVM 中進行分類,並透過非極大值抑制後處理步驟中最佳化模型的表現。
隨後,Fast R-CNN,Faster R-CNN,Mask R-CNN 等標的檢測模型的提出都是基於最初的 R-CNN 結構。可以說,摺積神經網路在標的檢測方面的應用是圍繞 R-CNN 結構展開。
時域摺積神經網路
如上所述,摺積神經網路在計算機視覺二維空間的應用中所取得的顯著效能,引發了人們對 3D 時空應用的研究。許多文獻中提出的時域摺積結構通常只是試圖從空間域(x,y)擴充套件到時間域(x,y,t)的二維摺積結構。而時域神經網路結構有三種不同的形式:基於 LSTM 的時域摺積網路、3D 摺積神經網路和雙流摺積神經網路,其模型結構示意圖如下圖。
▲基於 LSTM 的時域摺積神經網路,該模型中,由影片流的每幀資料構成模型的輸入
▲雙流摺積神經網路,該模型以 RGB 光流資料作為輸入
總結
相比於手動設計的特徵或淺層的特徵表示,多層摺積結構是當前計算機視覺領域最先進、最具吸引力的結構之一。總體而言,大多數模型結構都是基於四個共同的構件塊,即摺積、非線性單元、歸一化和池化操作。雖然這些優秀的摺積模型在大多數計算機視覺任務中取得了最優效能,但它們共同的缺點仍然是對摺積內部操作、特徵表徵的理解相當有限,依賴於大規模的資料集和模型訓練過程,缺乏精確的效能界限和超引數選擇的清晰度。這些超引數包括濾波器的大小、非線性函式、池化操作引數以及模型層數的選擇。接下來我們將進一步討論摺積神經網路設計過程中這些超引數的選擇。
第三章
理解摺積神經網路的構建模組
考慮到摺積神經網路領域還存在大量未解決的問題,在本章我們將探討一些典型案例中摺積網路的每一層處理操作的作用及意義,尤其我們將從理論和生物學角度給出合理解釋。
摺積層
摺積神經網路的核心層是摺積層,這是模型最重要的一步。總的來說,摺積是一種線性的、具有平移不變性的運算,它是透過區域性加權輸入訊號來實現的。權重集合是根據點擴散函式(point spread function)來確定的,不同的權重函式能夠反映出輸入訊號的不同性質。
在頻率域中,與點擴散函式相關聯的是調製函式,這表明瞭輸入的頻率組分可以透過縮放和相移來進行調製。因此,選擇合適的摺積核,將有助於模型獲取輸入訊號中最顯著、最重要的特徵資訊。
非線性單元
多層神經網路通常是高度的非線性模型,而修正單元(rectification)通常將引入一個非線性函式(也被稱為啟用函式),即將非線性函式應用到摺積層輸出中。引入修正單元的目的,一方面是為了最好的、最合適的模型解釋;另一方面是為了讓模型能更快和更好地學習。常用的非線性函式主要包括 Logistic 函式、tanh 函式、Sigmoid 函式、ReLU 及其變體 LReLU, SReLU, EReLU 等,其函式影象如下圖所示。
▲多層網路結構中的非線性啟用函式
歸一化
如上所述,由於這些多層網路中存在級聯的非線性運算,因此多層神經網路都是高度的非線性模型。除了上面討論的修正非線性單元外,歸一化(normalization)同樣是摺積神經網路結構中重要的非線性處理模組。最廣泛使用的歸一化形式即所謂的區域性響應歸一化操作(LRN,Local Response Normalization)。此外,還有諸如批歸一化(batch normalization),分裂歸一化(divisive normalization)等。
池化操作
幾乎所有的摺積神經網路,都包含池化操作。池化操作是為了提取特徵在不同位置和規模上的變化,同時聚合不同特徵對映的響應。正如摺積結構中前三個組份,池化操作也是受到生物學啟發和理論支援而提出的。 平均池化和最大池化是兩個最廣泛使用的池化操作,其池化效果依次如下圖所示。
▲經平均池化操作後Gabor特徵的變化情況
▲經最大池化操作後Gabor特徵的變化情況
第四章
當前研究狀態
對摺積神經網路結構中各組作用的闡述凸顯了摺積模組的重要性,這個模組主要用於捕獲最抽象的特徵資訊。相對而言,我們對摺積模組操作的理解卻很模糊,對其中繁瑣的計算過程的理解並不透徹。本章我們將嘗試理解摺積網路中不同層所學習的內容及不同的視覺化方法。同時,我們還將重點展望這些方面仍待解決的問題。
當前趨勢
儘管各種優秀的摺積模型在多種計算機視覺應用中取得了最優表現,但在理解這些模型結構的工作方式及探索這些結構的有效性方面的研究進展仍相當緩慢。如今,這個問題已經引起了眾多研究者的興趣,為此很多研究提出用於理解摺積結構的方法。
總的來說,這些方法可以分成三個方向:對所學習到的過濾器和提取的特徵圖進行視覺化分析、受生物視覺皮層理解方法所啟發的消融學習(ablation study)、以及透過引入主成分分析法設計並分析網路最小化學習過程,我們將簡要概述這三種方法。
摺積的視覺化分析
摺積視覺化的第一種方法是以資料集為中心的方法,因為摺積操作依靠從資料集輸入來探測網路在網路中找到最大響應單元。這種方法的第一個應用是反摺積(DeConvNet)。其中視覺化是分兩步實現:首先,一個摺積結構接收來自資料集 a 的幾個影象並記錄資料集中輸入的特徵對映最大響應;其次,這些特徵地圖使用反摺積結構,透過反轉摺積操作模組,將摺積操作中學習到的濾波器特徵進行轉置來執行“解摺積”操作,從而實現摺積的視覺化分析。反摺積操作的示意圖如下圖所示:
▲反摺積構建模組
摺積視覺化的第二種方法稱為以網路為中心的方法,因為它僅使用網路引數而不需要任何用於視覺化的資料。這種方法首次應用於深層置信網路的視覺化分析中,後來才應用於摺積網路結構中。具體地說,這種摺積視覺化是透過合成影象來實現的,該影象將最大化某些神經元(或過濾器)的響應。
摺積的消融學習
另一種流行的視覺化方法是使用所謂的網路消融研究。實際上,許多著名的摺積結構都包括模型消融研究實驗部分,其目的是隔離摺積結構的不同部分組成網路,來檢視刪除或新增某些模組如何模擬整體的效能。消融研究能夠指導研究者設計出效能更優的網路結構。
摺積結構的控制設計
理解摺積結構的另一種方法是在網路設計時新增先驗知識,從而最大限度地減少所需學習的模型引數。例如,一些方法是減少每層摺積層所需學習的過濾器數量,並用轉換後的版本在每一層中學習的濾波器來模擬旋轉不變性。 其他方法依賴於用基礎集合代替過濾器的學習過程,而不是學習過濾器引數,它們的標的是學習如何組合基礎集合,以便在每一層形成有效的過濾器。此外,還有一些方法,是透過完全手工設計摺積網路,並針對特定的任務在網路設計階段加入特定的先驗知識,如此設計出可解釋的網路。
待解決問題
透過上述內容,我們總結了摺積模型一些關鍵技術以及如何更好地理解摺積結構的方法。下麵,我們將進一步討論在摺積模型領域仍待解決的一些問題。
基於摺積視覺化的研究方法仍待解決的幾個關鍵問題:
-
首先,開發更加客觀的視覺化評價方法是非常重要的,可以透過引入評價指標來評估所生成的視覺化影象質量或含義來實現。
-
此外,儘管看起來以網路為中心的摺積視覺化方法更有前景(因為它們在生成視覺化結果過程中不依賴模型結構自身),但也缺乏一套標準化的評估流程。一種可能的解決方案是使用一個評估基準來評價同樣條件下生成的網路視覺化結果。這樣的標準化方法反過來也能實現基於指標的評估方法,而不是當前的解釋性分析。
-
另一個視覺化分析的發展方向是同時視覺化網路的多個單元,以更好地理解模型中特徵表徵的分佈情況,甚至還能遵循一種控制方法。
基於 ablation study 的研究方法仍待解決的幾個關鍵問題:
-
使用共同的、系統性組織的資料集。我們不僅要解決計算機視覺領域常見的不同挑戰(比如視角和光照變化),還必須要應對複雜度更大的類別問題(如影象紋理、部件和標的複雜度等)。近年來,已經出現了一些這樣的資料集。在這樣的資料集上,使用 ablation study,輔以混淆矩陣分析,可以確定摺積結構中出錯的模組,以便實現更好的理解摺積。
-
此外,分析多個協同的 ablation 對模型表現的影響方式,是一個很受關註的研究方向。這樣的研究也能有助於我們理解獨立單元的工作方式。
相比於完全基於學習的方法,還有一些受控方法能讓我們對這些結構的運算和表徵有更深入的理解,因而具有很大的研究前景。這些有趣的研究方向包括:
-
逐層固定網路引數及分析對網路行為的影響。例如,基於當前特定任務的先驗知識,一次固定一層的摺積核引數,以分析每一摺積層中摺積核的適用性。這個逐層漸進式的學習方式有助於揭示摺積學習的作用,還可用作最小化訓練時間的初始化方法。
-
類似地,可以透過分析輸入的特徵來研究網路結構的設計(如層的數量或每層中過濾器數量的選擇方案),這種方法有助於設計出最適合模型結構。
-
最後,將受控方法應用於網路的同時,可以對摺積神經網路的其它方面的作用進行系統性的研究。通常,我們重點關註的是模型所學習的引數,所以對這方面得到的關註較少。例如,我們可以在固定大多數引數的情況下,研究各種池化策略和殘差連線的作用。
作者:Isma Hadji, Richard P. Wildes
論文連結:
https://arxiv.org/pdf/1803.08834.pdf
推薦閱讀
Q: 關於摺積神經網路,
你都掌握了哪些內容?
歡迎留言與大家分享
覺得不錯,請把這篇文章分享給你的朋友
轉載 / 投稿請聯絡:baiyu@hzbook.com
更多精彩,請在後臺點選“歷史文章”檢視