02《卷積神經網路研究綜述》學習總結
一、本篇介紹
篇名:卷積神經網路研究綜述
作者:周飛燕,金林鵬,董軍
作者單位:中國科學院
發表在:計算機學報,2017年6月
二、主要內容
1、神經網路的歷史
1943年,心理學家McCulloch和數理邏輯學家Pitts提出了神經元的第1個數學模型——MP模型。
20世紀50年代末至60年代初,Rosenblatt提出了單層感知器模型,第一次把神經網路的研究付諸實踐。
1986年,Rumelhart等人提出了一種按誤差逆傳播演算法訓練的多層前饋網路—反向傳播網路,即Back Propagation Network,BP網路。
20世紀90年代,各種淺層機器學習模型相繼被提出,較經典的如支援向量機,而且當增加神經網路的層數時傳統的BP網路會遇到區域性最優、過擬合及梯度擴散等問題,這些使得深度模型的研究被擱置。
2006年,Hinton等人在《Science》上發文,從此引出了深度學習(Deep Learning)的研究,同時也掀起了人工神經網路的又一熱潮。
2、神經元
即激勵函式,n個輸入訊號xi和其對應的權值wij,通過激勵函式產生一個輸出yj,其可以有很多種選擇,可以是線性糾正函式(Rectified Linear Unit,ReLU),sigmoid函式、tanh(x)函式、徑向基函式等,即:
3、多層感知器
由輸入層、隱含層(一層或者多層)及輸出層構成的神經網路模型。
其中每一層有數個神經元,隱含層和輸出層中每個神經元的輸入x=(當前偏置值b)+(上一層每個神經元的輸出和相對於的權值的乘積之和),即:
4、損失函式
5、權值更新公式
其中,η為學習率。
6、卷積層
1.卷積層由多個特徵面(FeatureMap)組成,每個特徵面由多個神經元組成,它的每一個神經元通過卷積核與上一層特徵面的區域性區域相連。
2.CNN的卷積層通過卷積操作提取輸入的不同特徵,第1層卷積層提取低階特徵如邊緣、線條、角落,更高層的卷積層提取更高階的特徵。
3.卷積核是一個權值矩陣(如對於二維影象而言可為3×3或5×5矩陣)。
4.卷積核的滑動步長即卷積核每一次平移的距離。
5.卷積層的輸出特徵面的大小(即神經元的個數)oMapN滿足如下關係:
其中:iMapN表示每一個輸入特徵面的大小;CWindow為卷積核的大小;CInterval表示卷積核在其上一層的滑動步長。通常情況下,要保證式(6)能夠整除,否則需對CNN網路結構作額外處理。
6.每個卷積層可訓練引數數目CParams滿足:
其中:oMap為每個卷積層輸出特徵面的個數;iMap為輸入特徵面個數。1表示偏置,在同一個輸出特徵面中偏置也共享。
7.輸出值
假設卷積層中輸出特徵面n第k個神經元的輸出值為xoutnk,而xinmh表示其輸入特徵面m第h個神經元的輸出值,則
bn為輸出特徵面n的偏置值。fcov(?)為非線性激勵函式。
8.激勵函式
在傳統的CNN中,激勵函式一般使用飽和非線性函式(saturating nonlinearity)如sigmoid函式、tanh函式等。相比較於飽和非線性函式,不飽和非線性函式(non-saturating nonlinearity)能夠解決梯度爆炸/梯度消失問題,同時也能夠加快收斂速度。Jarrett等人探討了卷積網路中不同的糾正非線性函式(rectified nonlinearity,包括max(0,x)非線性函式),通過實驗發現它們能夠顯著提升卷積網路的效能,Nair等人也驗證了這一結論。
因此在目前的CNN結構中常用不飽和非線性函式作為卷積層的激勵函式如ReLU函式。ReLU函式的計算公式如下所示
9.結論
具有較小卷積核的CNN結構的一些結論:(1)增加網路的深度能夠提升準確率;(2)增加特徵面的數目也可以提升準確率;(3)增加一個卷積層比增加一個全連線層更能獲得一個更高的準確率。
深度網路結構具有兩個優點:(1)可以促進特徵的重複利用;(2)能夠獲取高層表達中更抽象的特徵
深度越深,網路的效能越好;然而隨著深度的增加,網路效能也逐漸達到飽和。
發現特徵面數目和卷積核大小的優先順序差不多,其發揮的作用均沒有網路深度大
通過權值共享可以減小模型複雜度,使網路更易於訓練。
卷積層通過卷積操作提取其前一層的各種不同的區域性特徵。
CNN中的卷積濾波器是一種廣義線性模型(Generalized Linear Model,GLM),GLM的抽象水平比較低,但通過抽象卻可以得到對同一概念的不同變體保持不變的特徵。
7、池化層
常用的池化方法有最大池化即取區域性接受域中值最大的點、均值池化即對區域性接受域中的所有值求均值、隨機池化。
(1)最大池化特別適用於分離非常稀疏的特徵;(2)使用區域性區域內所有的取樣點去執行池化操作也許不是最優的,例如均值池化就利用了局部接受域內的所有采樣點。
當分類層採用線性分類器如線性SVM時,最大池化方法比均值池化能夠獲得一個更好的分類效能。
隨機池化方法是對區域性接受域取樣點按照其值大小賦予概率值,再根據概率值大小隨機選擇,該池化方法確保了特徵面中不是最大激勵的神經元也能夠被利用到。隨機池化具有最大池化的優點,同時由於隨機性它能夠避免過擬合。
混合池化、空間金字塔池化、頻譜池化等池化方法。
在通常所採用的池化方法中,池化層的同一個特徵面不同神經元與上一層的區域性接受域不重疊,然而也可以採用重疊池化的方法。所謂重疊池化方法就是相鄰的池化視窗間有重疊區域。與無重疊池化框架相比,其泛化能力更強,更不易產生過擬合。
卷積層用來模擬Hubel-Wiesel理論的簡單細胞,池化層模擬該理論的複雜細胞
池化層在上一層滑動的視窗也稱為池化核。
池化層通過減少卷積層間的連線數量,即通過池化操作使神經元數量減少,降低了網路模型的計算量。
池化層的作用是在語義上把相似的特徵合併起來,池化層通過池化操作使得特徵對噪聲和變形具有魯棒性。
卷積層和池化層的層數越高,特徵的表現形式也越抽象。顯然,這些特徵並沒有實際的物理意義,僅僅是數理值。
8、全連線層
在CNN結構中,經多個卷積層和池化層後,連線著1個或1個以上的全連線層。
全連線層可以整合卷積層或者池化層中具有類別區分性的區域性資訊。
為了提升CNN網路效能,全連線層每個神經元的激勵函式一般採用ReLU函式。
最後一層全連線層的輸出值被傳遞給一個輸出層,可以採用softmax邏輯迴歸(softmax regression)進行分類,該層也可稱為softmax層(softmax layer)。
對於一個具體的分類任務,選擇一個合適的損失函式是十分重要的。
為了避免訓練過擬合,常在全連線層中採用正則化方法———丟失資料(dropout)技術,即使隱層神經元的輸出值以0.5的概率變為0,通過該技術部分隱層節點失效,這些節點不參加CNN的前向傳播過程,也不會參加後向傳播過程。
目前,關於CNN的研究大都採用ReLU+dropout技術,並取得了很好的分類效能。
9、特徵面
特徵面數目作為CNN的一個重要引數,它通常是根據實際應用進行設定的,如果特徵面個數過少,可能會使一些有利於網路學習的特徵被忽略掉,從而不利於網路的學習;但是如果特徵面個數過多,可訓練引數個數及網路訓練時間也會增加,這同樣不利於學習網路模型。
與每層特徵面數目均相同的CNN結構相比,金字塔架構(該網路結構的特徵面數目按倍數增加)更能有效利用計算資源。
目前,對於CNN網路特徵面數目的設定通常採用的是人工設定方法,然後進行實驗並觀察所得訓練模型的分類效能,最終根據網路訓練時間和分類效能來選取特徵面數目。
10、BP演算法
可分為兩個階段:前向傳播和後向傳播,其後向傳播始於MLP的輸出層。
11、CNN的一些改進演算法
1、網中網結構(Network in Network,NIN)
該模型使用微型神經網路(micro neural network)代替傳統CNN的卷積過程,同時還採用全域性平均池化層來替換傳統CNN的全連線層,它可以增強神經網路的表示能力。微神經網路主要是採用MLP模型
優點:
1.在傳統的CNN結構中全連線層的引數過多,易於過擬合,因此它嚴重依賴於dropout正則化技術。NIN模型採用全域性平均池化代替原來的全連線層,使模型的引數大大減少。
2.通過全域性平均池化方法對最後一個MLP卷積層的每個特徵面求取均值,再將這些數值連線成向量,最後輸入到softmax分類層中。全域性平均池化可看成是一個結構性的正則化運算元(structural regularizer),它可以增強特徵面與類別的一致性。
3.在全域性平均池化層中沒有需要優化的引數,因此能夠避免過擬合。此外,全域性平均池化層對空間資訊進行求和,因此對輸入的空間變化具有更強的魯棒性。
2、空間變換網路(Spatial Transformer Networks,STNs)
儘管CNN已經是一個能力強大的分類模型,但是它仍然會受到資料在空間上多樣性的影響。該模組由3個部分組成:本地化網路(localisation network)、網格生成器(grid generator)及取樣器(sampler)。
STNs可用於輸入層,也可插入到卷積層或者其它層的後面,不需要改變原CNN模型的內部結構。STNs能夠自適應地對資料進行空間變換和對齊,使得CNN模型對平移、縮放、旋轉或者其它變換等保持不變性。此外,STNs的計算速度很快,幾乎不會影響原有CNN模型的訓練速度。
3、反捲積
CNN學習到的特徵對於平移和縮放具有不變性,但是對於旋轉操作一般不具有該特性,除非被識別物件具有很強的對稱性。
SWWAE在各種半監督和有監督任務中取得了很高的準確率,它特別適用於具有大量無標註類別而有標註類別相對少的資料集的情況,該模型也可能適用於與視訊相關的任務。
12、其他
1、訓練方法
CNN可直接執行有監督學習訓練
CNN也可以進行無監督訓練。
2、開源工具
目前常用的深度學習模擬工具有Caffe、Torch、Theano、Neon及Tensor-Flow等
其中Caffe、Torch及Theano是目前最廣泛使用的軟體架構。
這5個軟體架構均可在CPU或者GPU上執行,但是Neon不能使用多執行緒CPU,Caffe需要在安裝的時候確定好CPU的執行緒數,TensorFlow、Torch及Theano則可以靈活地選擇CPU執行緒數。
3、實際應用
1.影象分類(我的目標)
2.人臉識別
3.音訊檢索
4.ECG分析(目前極為有用的一種心血管系統疾病的臨床診斷體徵)
4、關於CNN的一些引數的分析
這個分析是基於ECG實驗的,作者應該是專注於這個領域的卷積神經網路的研究者,於我的影象分類並沒有太直接的關係,因為卷積的各個引數基本都是根據具體的應用領域通過實驗得到的最優值,CNN的引數的影響至今沒有一個可靠的理論依據。
13、CNN進一步的工作
(1)目前所使用的CNN模型是Hubel-Wiesel模型簡化的版本,有待進一步借鑑Hubel-Wiesel模型,對它進行深入研究並發現結構特點及一些規律,同時還需引入其它理論使CNN能夠充分發揮其潛在的優勢。
(2)對於一個具體的任務,仍很難確定使用哪種網路結構,使用多少層,每一層使用多少個神經元等才是合適的。仍然需要詳細的知識來選擇合理的值如學習率、正則化的強度等。
(3)如果訓練資料集與測試資料集的分佈不一樣,則CNN也很難獲得一個好的識別結果,特別是對於複雜的資料例如臨床ECG資料。因此,需要引入CNN模型的自適應技術,可考慮將自適應抽樣等應用於CNN模型中。
(4)儘管依賴於計算機的CNN模型是否與靈長類視覺系統相似仍待確定,但是通過模仿和納入靈長類視覺系統也能使CNN模型具有進一步提高效能的潛力。
(5)目前,CNN在計算機輔助ECG分析領域中,其輸入維數需保持一致。為了使輸入維數保持一致,需要將原始資料擷取到固定長度,然而RNN可以處理長度不等的資料,因此需考慮如何將CNN與RNN相結合,並應用於ECG記錄分類中。
(6)在隱性訓練中,如何將整個訓練過程中的最佳分類模型儲存下來也是一個值得探討的問題。在文獻的隱性訓練中,當所有的訓練樣本在一個訓練週期內都參與BP反向傳播過程後,才輸出整個訓練中的測試結果,如果此時其準確率是目前為止最高的,則儲存當前分類模型。事實上,我們還可以對它做進一步的改進,例如當部分樣本進行BP訓練後,就可採用校驗樣本測試當前的模型,然後判斷該模型是否為迄今為止效能最佳的分類模型。
三、具體創新
本文屬於綜述,沒有具體創新點。
四、心得感想
讓我對CNN有了一個具體的瞭解,雖然對其中的很多具體的概念公式還不懂,但是在接下來的日子裡,終究會搞懂。
fighting!!!
附:專業詞彙
shallow architectures 淺層架構
feature extracting 特徵提取
model fitting 建模
raw input data 原始資料
generalization ability 泛化能力
feature representations 特徵表示
chip processing capabilities 晶片處理能力
drastic increases 劇烈增長
significant progress 巨大的進展,成效卓然
object detection computer vision目標檢測和計算機視覺
speech recognition 語音識別
semantic parsing 語義分析
consists of 包含,組成
non-linear transformations 非線性變換
neurons 神經元
connectivity pattern 連線模式
organization of the animal visual cortex 動物視覺皮層組織
convolutional neural network 卷積神經網路
local connections 區域性連線
shared weights 分享權值
pooling 池化
robustness 魯棒性
fault tolerance 容錯能力
optimize 優化
fully connected neural networks 全連線神經網路
multilayer perception 多層感知器
spatial transformer networks 空間變換網路
Network in Network 網中網模型
supervised learning 監督學習
unsupervised learning 無監督學習
remained issues 待解決的問題
recurrent neural network 遞迴神經網路
parameters 引數
Artificial Neural Network 人工神經元網路ANN
Deep Belief Network 深度置信網路DBN
Stacked Deoising Autoencoders 層疊自動去噪編碼機SDA
另:一些說明
1、本部落格僅用於學習交流,歡迎大家瞧瞧看看,為了方便大家學習,相關論文請去知網等地方自行下載。
2、如果原作者認為侵權,請及時聯絡我,我的qq是244509154,郵箱是[email protected],我會及時刪除侵權文章。
3、我的文章大家如果覺得對您有幫助或者您喜歡,請您在轉載的時候請註明來源,不管是我的還是其他原作者,我希望這些有用的文章的作者能被大家記住。
4、最後希望大家多多的交流,提高自己,從而對社會和自己創造更大的價值。