?

卷積神經網絡發展

2021-03-03 09:43歐陽鑫玉
遼寧科技大學學報 2021年5期
關鍵詞:池化網絡結構神經元

周 楠,歐陽鑫玉

(遼寧科技大學 電子與信息工程學院,遼寧 鞍山 114051)

卷積神經網絡(Convolutional neural networks,CNN)與傳統識別方法相比,具有識別速度快、分類準確度高、所需特征少、可以自訓練等優點,已被廣泛應用于計算機視覺、智能控制、模式識別和信號處理等領域,并在圖像目標識別、自然語言處理、語音信號識別等方面取得了極大的成功,成為深度學習的代表算法之一[1-2],推動著人工智能的快速發展。

1 卷積神經網絡的發展階段

1.1 萌芽階段

卷積神經網絡的雛形最早出現于1962年,Hubel和Wiesel[3]對貓大腦中的視覺進行系統研究,整理了貓腦中各個神經元的電活動,首次提出感受野的概念,激發人們對神經網絡進一步思考,并在圖像識別等領域引入感受野的思想,促進了神經網絡的快速發展。1980年,Fukushima等[4]提出一個神經網絡結構,該結構包含卷積層和池化層,并給出神經認知機(Neocognitron)算法。這是CNN中卷積層和池化層的設計來源。

1.2 發展階段

在此基礎上,Lecun等[5]于1998年提出LeNet-5網絡,構建基于梯度的反向傳播(Back propagation,BP)算法對網絡進行訓練,采用有監督的方法,形成卷積神經網絡的雛形。LeNet-5使用兩個卷積層和兩個全連接層,首次提出“卷積”的概念。自此以后,卷積神經網絡吸引了學術界的廣泛關注。LeNet-5在物體檢測、人臉識別、目標檢測、語音識別等方面逐漸開始被應用。但在一般的任務中,LeNet-5不如k-近鄰(k-nearest neighbor,KNN)、支持向量機(Support vector machine,SVM)等算法應用廣泛,發展緩慢,處于學術邊緣。

2006年,Hinton等[6]提出一種具有多層神經元的深度置信網絡(Deep belief networks,DBN),它是一種生成模型,通過訓練各個神經元的權重,生成訓練數據,訓練效果特別好,大大提高了神經網絡的魯棒性。

1.3 快速發展階段

在2012年的Imagenet圖像識別大賽中,Hinton組提出深層結構的AlexNet[7],引入Dropout方法。與LeNet-5網絡相比,AlexNet的網絡更深,將識別錯誤率從25%降低到15%。特別是AlexNet使用圖形處理器(Graphics processing unit,GPU)運算,促進了圖像識別領域的發展。

2013年,Zeiler等[8]提出ZFNet,獲得ILSVRC(Imagenet large scale visual recognition challenge)冠軍。ZFNet采用反卷積技術對CNN進行可視化分析,使用更小的卷積核,保留更多的特征,加強了CNN的分層抽象學習的能力。

2015年,He等[9]提出ResNet算法,在Top-5上的錯誤率僅為3.75%,緩解梯度消失問題。之后,He等優化Fast R-CNN[10]和Mask R-CNN[11]等算法,在識別大量信息的基礎上,還能完成目標檢測、實例分割等任務,使圖像識別技術迅猛發展。

此后,新的卷積神經網絡不斷產生。如VGGNet(Visual geometry group network)[12]和Goog-LeNet[13]等卷積神經網絡具有良好的識別效果。2016年以后,殘差注意力網絡(Residual attention network)[14]、Xception[15]、MobileNet[16]、Mobile-NetV2[17]和Efficient Net[18]等網絡在識別精度、運行速度、網絡輕量性和適用范圍等方面,較之前的網絡又有進一步提升。

2 卷積神經網絡結構

卷積神經網絡包含4種核心模塊。

2.1 卷積層

卷積是一種提取圖像特征的有效方法。用卷積核按照設定好的步長在特征圖上滑動,遍歷所有像素點。

卷積層是卷積神經網絡的核心層,包含大量的計算。在處理高維度圖像輸入時,無法讓每個神經元均與所有神經元一一連接,只能讓每個神經元進行局部連接,這種連接的空間大小稱為神經元的感受野。為了控制參數的數量,需要用到權值共享。權值共享使用同一個卷積核卷積整個圖像,參數量大大減少。

卷積層參數包含卷積核(filter)、步長(stride)和填充(padding)。為了防止邊緣信息丟失,可采取填充方法多次計算邊緣,使得卷積之后圖片跟原來一樣大。

2.2 池化

在卷積神經網絡中,需要大量的圖片輸入到網絡中進行訓練。為了減輕網絡負擔,在為圖片保留顯著特征基礎上,降低特征維度,則必須進行池化。池化利用圖片的下采樣不變性減少像素信息,只保留圖片重要信息,且變小后仍能看出所表達的內容。池化后的圖片大大提高了網絡計算效率。池化的方法有多種,如最大池化、均值池化等,而最大值池化是卷積神經網絡中常用的方法。池化過程如圖1所示。

圖1 池化過程Fig.1 Pooling process

采用2×2的池化核,步長為2,使用全0填充。均值池化是將每一個2×2區域中的平均值作為輸出結果;最大池化是將2×2區域中的最大值作為輸出結果,從而找到圖像特征。池化操作容易丟失圖片信息,需要增加網絡深度解決。

2.3 激活函數

卷積神經網絡提取到的圖像特征是線性的,非線性變換可以增加模型表達能力。激活函數可以對提取到的特征進行非線性變換,起到特征組合的作用。

早期卷積神經網絡主要采用Sigmoid函數或tanh函數。隨著網絡的擴展以及數據的增多,近幾年ReLU(Rectified linear unit)在多層神經網絡中應用較為廣泛。ReLU的改進型函數,如Leaky-ReLU、P-ReLU、R-ReLU等也在使用。除此之外,ELU(Exponential linear units)函數、MaxOut函數等也經常被使用。

常用的Sigmoid函數的表達式為

tanh函數的表達式為

ReLU函數表達式為

上述三種常用函數的圖像如圖2所示。Sigmoid函數存在梯度彌散,且函數不是關于原點對稱,計算指數函數比較耗時,在反向傳播時,易出現梯度消失,無法完成深層網絡的訓練。tanh函數原點對稱,計算指數函數速度快,但仍存在梯度彌散問題。ReLU函數解決部分梯度彌散問題,收斂速度更快,但在x取負數時,部分神經元死亡且不會復活。Leaky-ReLU函數解決了神經死亡問題。

2.4 全連接層

全連接層是卷積神經網絡的分類器,通常位于網絡的最后。卷積操作可以實現全連接層。矩陣向量乘積是全連接網絡的核心操作,即

式中:x是全連接層的輸入;W為權重;b為偏置。

圖2 三種激活函數的圖像Fig.2 Images of three activation functions

全連接層的每個節點都需要和上一層每個節點彼此相接,學習模型參數,進行特征擬合,把前一層的輸出特征綜合起來,故該層的權值參數在網絡中最多。參數過多,導致網絡運算速度降低,所以近年來常用全局平均池化(Global average pooling,GAP)來替換全連接層,很大程度上加快了網絡的運行速度。全連接層結構如圖3所示。在池化后輸出的20個12×12的圖像,經過全連接層變成1×100向量,實現預測分類功能。

圖3 全連接層示意圖Fig.3 Schematic diagram of full connection layer

3 幾種經典的卷積神經網絡

3.1 LeNet

LeNet即LeNet-5,是公認最早的卷積神經網絡之一,是很多神經網絡架構的基礎,其網絡結構如圖4所示。LeNet-5共有7層網絡,每層都包含可訓練參數;每層都有多個特征圖(Feature Map),每個特征圖輸入的特征通過卷積濾波器進行提取,每個特征圖有多個神經元。卷積層的局部連接和權重共享,卷積層的參數較少。

圖4 LeNet-5網絡結構Fig.4 Lenet-5 network structure

LeNet-5是一種用于手寫體字符識別的非常高效的卷積神經網絡。Ahranjany等[19]提出一種將卷積神經網絡與梯度下降訓練算法相結合的手寫波斯語/阿拉伯語數字識別方法,識別率達到99.17%;如果剔除10%的“難識別”樣本,識別率達到99.98%。Liu等[20]改進LeNet-5的卷積神經網絡模型,應用于脫機手寫英文字符識別,對每一層的神經元數量和某些層之間的連接方式進行特殊設置,在UNIPEN的小寫和大寫數據集上進行測試,對大寫和小寫的識別率分別為93.7%和90.2%。Ying等[21]在LeNet-5上提出一種新的激活函數——整流指數單元(Rectified exponential units,REU),該函數輸出的均值接近0,改進了ReLU函數中神經元假死現象,使激活函數的選擇更加多樣化。Liu等[22]利用LeNet-5檢測診斷制造設備中的內圈磨損、外圈磨損和軸承滾子磨損等故障,在電機軸承數據集上進行驗證,提高了診斷精度,收斂速度更快。傳統的表情識別方法通常只利用一個或幾個特征處理正面人臉圖像,導致有用信息丟失嚴重,對噪聲和人臉姿態過于敏感。Ma等[23]將LeNet-5和SVM(Support vector machine,SVM)結合,在MTFL數據庫和GENKI-4K數據庫上的識別準確率分別達到87.81%和86.80%。

LeNet-5網絡的缺點有:(1)網絡規模較小,在大量數據集上表現不盡人意;(2)容易過擬合;(3)神經網絡計算復雜。

3.2 AlexNet

2012年,AlexNet在ILSVRC中奪得冠軍,Top-5測試的誤差率為15.3%,但是第二名誤差率卻達到26.2%。

AlexNet網絡結構類似于LeNet,均采用先卷積后進行全連接的方式。但AlexNet更為復雜。AlexNet有6.5萬個神經元,600萬個參數,5層卷積,3層全連接網絡,輸出層是有1 000通道的softmax函數。AlexNet的網絡結構如圖5所示。

圖5 AlexNet的網絡結構Fig.5 AlexNet network structure

呂鴻蒙等[24]在2017年把增強的AlexNet應用在阿爾茨海默病的早期診斷中,取得較好的測試效果。張雪芹等[25]將AlexNet網絡模型進行優化處理,應用于206類植物圖像識別,識別精度達到86.7%。Liu等[26]在AlexNet的基礎上設計一個殘差網絡,在煙霧識別上精度達到98.56%。

AlexNet的優點:(1)AlexNet將Sigmoid激活函數改為ReLU激活函數,使得運算更加簡單,更易訓練;(2)AlexNet采用丟棄法控制全連接層的模型復雜度;(3)AlexNet將局部響應歸一化處理(Local response normalization,LRN)后加在激活函數ReLU的后面,大大增加網絡的泛化能力,提高訓練準確度;(4)使用兩塊GPU進行計算,運算效率大大提高;(5)使用Dropout方法防止過擬合。

3.3 VGGNet

VGGNet是2014年由牛津大學Visual Geometry Group與Google DeepMind公司共同研發的深度卷積神經網絡,獲得2014年ILSVRC比賽的亞軍和定位項目的冠軍,在Top5上的錯誤率僅為7.5%。VGGNet探索了卷積神經網絡的深度和其性能之間的關系。VGGNet在整個網絡中全部采用3×3的卷積核和2×2的池化核,通過加深網絡結構來提升性能。網絡結構如圖6所示。

圖6 VGGNet網絡結構Fig.6 VGGNet network structure

Liu等[27]提出一種基于VGGNet算法的神經網絡學習方案,層和不重要的通道可以自動生成。相比AlexNet網絡,VGGNet模型尺寸是AlexNet網絡1/20,計算機操作是AlexNet網絡1/5,減少運行時內存,不需要高性能的硬件支持。Sun等[28]提出一種基于VGGNet網絡模型的深度學習智能調制識別算法,提高數字信號在低信噪比下的識別性能。Yang[29]改進VGGNet算法,提出一種名為MicroFace的人臉識別方法,減少對高性能計算機的依賴,識別率達到了96%,具有良好的識別性能和很高的實用性。

VGGNet優點:(1)AlexNet采用3×3的池化核,而VGGNet全部采用2×2的池化核和多個較小卷積核,AlexNet更有利于增加網絡的擬合或表達能力;(2)為了提取更多信息,VGGNet采用多通道,網絡第一層通道數為64,后面逐層翻倍,至512個通道;(3)由于卷積層可替代全連接層,故網絡可以適應不同尺寸的圖片,增加了通用性,但由于VGGNet使用3個全連接層,使得計算機資源耗費嚴重;(4)VGGNet在增加網絡深度方面起著舉足輕重的作用。

3.4 GoogLeNet

GoogLeNet在2014年的ILSVRC比賽中奪得冠軍。GoogLeNet是基于Inception模塊的深度神經網絡模型。經過兩年的不斷改進,逐漸形成了Inception V2、Inception V3、Inception V4等版本。GoogleNet有500萬個參數,是2012年的AlexNet參數的1/12,且準確度更高。GoogLeNet增加網絡的深度和寬度,網絡深度達到22層(不包括池化層和輸入層),但沒有增加計算代價。GoogLeNet模塊結構如圖7所示。

圖7 GoogLeNet模塊結構圖Fig.7 Diagram of GoogLeNet module structure

Zhong等[30]基于GoogLeNet網絡提出單一和集合HCCR-GoogLeNet模型,在手寫漢字識別上達到了新的技術水平。HCCR-GoogLeNet有19層,只涉及到726萬個參數,在離線HCCR競爭數據集上的識別準確率分別為96.35%和96.74%,超過以往的最佳成績。Zhu等[31]利用改進的GoogLeNet進行極端天氣識別,在ILSVRC-2012數據集上進行實驗,與原始GoogLeNet相比,該方法的識別正確率從94.74%提高到95.46%,在CPU和GPU上識別速度快1.39倍和2.44倍。Li等[32]提出一種基于深度卷積生成對抗網絡(Unsupervised representation learning with deep convolutional generative adversarial networks,DCGAN)和 改 進 的GoogLeNet脫機手寫漢字識別方法,能夠修復和識別被遮擋的字符,在擴展的CASIA-HWDB1.1數據集測試效果很好。

GoogLeNet的優點:(1)網絡架構的改變,充分提升網絡內部資源的利用率;(2)將網絡深度改為22層,在增加網絡深度和寬度的基礎上,未增加計算代價;(3)采用平均池化(average pooling)代替全連接層,將準確率提升0.6%;(4)網絡增加2個softmax用作輔助分類器,減少梯度消失問題。

3.5 ResNet

ResNet于2015年發布,獲得ILSVRC比賽的冠軍,取得5項第一。ResNet解決了深度卷積神經網絡模型訓練難的問題。

一般來說,深度學習表達能力的增強需要更多的參數和網絡層數,所以從AlexNet的7層網絡到VGGNet的16層乃至19層,直到GoogLeNet的22層網絡。但網絡層數的增加會導致網絡收斂慢,分類性能和準確率并不能明顯提升。為了解決這些問題,ResNet使用152層的網絡結構,并采用跳躍結構,使Top 5錯誤率僅為3.57%。

ResNet結構如圖8所示。在網絡結構中,采用捷徑連接(shortcut connections),把輸入a直接傳到最后的輸出作為初始結果,輸出結果為S(a)=K(a)+a,當K(a)=0時,S(a)=a。故ResNet學習目標從S(a)變為S(a)-a,殘差K(a)=S(a)-a。因此,殘差結果逼近于0成為后面的訓練目標,且隨著網絡加深,準確率不再下降。

圖8 ResNet網絡結構Fig.8 ResNet network structure

Lu等[33]提出深耦合ResNet模型,稱為DCR(Deep coupled ResNet),用于低分辨率的人臉識別,性能明顯優于現有技術水平。Wen等[34]提出一種新的TCNN(Transfer convolutional neural network)方法,該方法結合遷移學習,在電機軸承數據集和自吸離心泵數據集上預測精度均優于其他傳統方法與深度學習模型。

ResNet與VGGNet相比,復雜度降低,參數減少,深度更深,一定程度上減少梯度彌散或梯度爆炸問題的發生;更利于優化,能有效解決深度網絡退化問題。

4 結論

本文梳理了卷積神經網絡的發展歷程,介紹卷積神經網絡的三個階段。對卷積神經網絡的結構進行總結,介紹卷積層、池化層、常見激活函數的優缺點和全連接層。闡述了幾個經典的、具有代表性的卷積神經網絡(LeNet,AlexNet,VGGNet,GoogLeNet,ResNet)的發展和演變。

隨著人工智能的發展,人機交互的需要,卷積神經網絡有著不可替代的優勢,但也需要不斷改進:繼續增加網絡的自學習能力,使網絡更易搭建和解決實際問題;網絡層數的增加會導致訓練速度降低;在數據不足的情況下,增加網絡學習準確率等。隨著CNN對于目標檢測技術日趨成熟,向無人駕駛、教育、醫療和智能家居等領域迅速邁進。CNN研究還有很多關鍵問題需要解決,通過努力,定會將CNN的發展提升新的高度。

猜你喜歡
池化網絡結構神經元
基于Sobel算子的池化算法設計
基于高斯函數的池化算法
卷積神經網絡中的自適應加權池化
基于卷積神經網絡和池化算法的表情識別研究
躍動的神經元——波蘭Brain Embassy聯合辦公
基于互信息的貝葉斯網絡結構學習
知識網絡結構維對于創新績效的作用機制——遠程創新搜尋的中介作用
滬港通下A+ H股票網絡結構演化的實證分析
復雜網絡結構比對算法研究進展
ERK1/2介導姜黃素抑制STS誘導神經元毒性損傷的作用
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合