季長清,高志勇,秦 靜,汪祖民*
(1.大連大學物理科學與技術學院,遼寧大連 116622;2.大連大學信息工程學院,遼寧大連 116622;3.大連大學軟件工程學院,遼寧大連 116622)
近年來伴隨著深度學習的興起,計算機視覺所覆蓋的諸多領域逐步進入人們的視野和應用,其中圖像識別技術相關的研究和應用進展較為突出。追溯自20 世紀中葉開始,圖像分類技術在計算機視覺領域便取得了長足的發(fā)展,而最近幾年在人工神經網絡的大發(fā)展背景下,基于卷積神經網絡(Convolutional Neural Network,CNN)的圖像分類技術在智能數據采集和高效處理中也取得了較好的效果。
眾所周知圖像分類技術在互聯(lián)網應用的諸多領域有著良好的應用前景,例如:航空遙感和海洋遙感圖像的分析以及人臉識別等。早期的圖像識別分類技術大都是把人作為設計特征的對象。對于不同的識別場景,大多數應用的特征需要由相應的專家人為地進行識別。其原理主要依靠的是設計者的先驗知識,然后再根據特定的數據類型和領域特性進行人為的手工編碼,這樣做將很難進行海量數據的處理,存在效率極其低下等瓶頸問題。另外人為特征的設計只支持有限參數量,提取的特征會直接影響系統(tǒng)的性能,很可能導致實驗結果不理想。在當今大數據時代,通過人工進行數據提取特征并不合適。新型的基于深度學習和CNN的方法可以通過自動執(zhí)行提取和自我學習特征,有效地減少開發(fā)和優(yōu)化新特征提取器的任務。本文將從CNN 結構的深度化、模塊化的角度給出圖1 中幾種不同的網絡模型的發(fā)展歷程。
圖1 深度神經網絡模型發(fā)展歷程Fig.1 Development history of deep neural network model
20 世紀80 年代,因為多層感知機模型被提出,計算機在數字識別方面表現(xiàn)出出色的處理能力,但由于當時受限于計算機能力,尤其是CPU 和存儲等資源的處理能力,使能夠處理的數據規(guī)模較小、模型表達能力一般,通常不能處理復雜的圖片問題。2006 年Hinton 等提出了對網絡模型進行逐層預訓練的算法,通過增加人工神經網絡的層數,使得具有多隱藏層的人工神經網絡具備了強大的特征學習能力。他們通過訓練具有小中心層的多層神經網絡來重構高維的輸入向量,通過編碼降維,有效地降低了神經網絡的深層次訓練難度。除此之外,另有研究者使用支持向量機以克服訓練深度CNN 所遇到的部分困難。其后,深度學習的概念和CNN 的迅速發(fā)展受到了研究人員的廣泛關注。21 世紀初期,谷歌和微軟等諸多互聯(lián)網技術公司紛紛投入大量人力、物力進行大規(guī)模深度學習系統(tǒng)的研發(fā)與商用。
卷積運算作為一個多層的前饋神經網絡模型,它的網絡結構特征在于每一層中都單獨使用一組卷積核,其有助于從局部相關的數據點中提取有用的特征。在訓練過程中,CNN通過反向傳播算法來進行學習。這種反向傳播算法優(yōu)化后的目標函數采用了一種基于響應的類人腦學習機制。反向傳播算法和CNN 的不斷成功,使得人工智能領域進入了新的發(fā)展階段。
在處理復雜的學習問題時,深度架構取得的效果通常比淺層架構更好,尤其是LeNet 卷積神經網絡模型在Minst 數據集上的優(yōu)異表現(xiàn)之后,又相繼出現(xiàn)了AlexNet、VGG、GoogLeNet、ResNet和MobileNet等相關網絡模型,它們在醫(yī)療圖像處理、實例分割等領域中均獲得了廣泛的應用。
CNN 仿照生物的神經網絡,采用了核心的權重共享網絡結構,使其可以通過改變網絡的深度和寬度來進行調整網絡模型量級。本章將對流行的深度神經網絡模型的部分代表性的組件進行歸納與總結。
CNN 模型對自然圖像有很強的假設性,即統(tǒng)計平滑性和局部相關性。卷積操作可以有效降低網絡模型的學習復雜度,使網絡連接和權重參數更少,這使得它比同規(guī)模的全連接網絡更容易訓練。常見的卷積操作有以下四種:普通卷積、轉置卷積、擴張卷積和深度可分離卷積。
普通卷積是利用卷積核在圖像上滑動,經過一系列的矩陣運算最終完成所有圖像像素灰度值計算的過程;轉置卷積實現(xiàn)了與普通卷積反向的采樣操作,被廣泛地運用于語義分割、圖像識別等領域;擴張卷積又稱空洞卷積、膨脹卷積,就是將空洞注入卷積核之中,這樣做的目的就是增加模型的感受野,以此來進行更好的特征提取,擴張卷積在圖像識別等任務中取得了較好的表現(xiàn)性能;深度可分離卷積也被擴展用于輕量級的網絡模型MobileNet,與普通卷積方式相比,大幅地減少了網絡模型運算時所需要的參數,最為重要的是深度可分離卷積實現(xiàn)了普通卷積操作中通道和區(qū)域的分離。卷積方式的改進,在一定程度上緩解了特征提取上的問題。
1943 年,心理學家McClloch 等基于神經元的生理特征,建立了單個神經元的數學模型,模型中提到了激活函數(Activation function)的概念。激活函數的應用增加了神經網絡模型的非線性。常用的激活函數有線性整流函數(Rectified Linear Unit,ReLU)、隨機線性整流函數(Randomized ReLU,RReLU)、指數線性函數(Exponential Linear Unit,ELU)等。ReLU 是最顯著的非飽和激活函數之一,如圖2 所示,其數學表達式如下:
圖2 ReLU函數Fig.2 ReLU function
盡管ReLU 為0 時的不連續(xù)性可能會損害反向傳播的性能,仍有研究表明ReLU 比Sigmoid 和tanh 激活函數更有效。
梯度下降是一種用于訓練神經網絡的簡單方法,但需要人為地進行參數選擇,導致研究者很多的時間都浪費在不確定的調參工作中。2015 年谷歌團隊提出了歸一層(Batch Normalization,BN)的構想。利用該方法可以使研究者選擇較大的學習率,讓模型在訓練速度增長很快的同時,也讓模型具有快速收斂性。
ε
是為了避免被零除,用于增加數值穩(wěn)定性;可學習的參數β
和γ
用于將數據調整到一個合理的分布范圍內。池化層是當前CNN 中常用組件之一,自AlexNet 一文之后采用Pooling 命名。池化層通過模仿人的視覺系統(tǒng)對數據進行降維,利用更高層次特征來表示圖像。
池化層可以非常有效地縮小矩陣的尺寸,即可以對圖像的局部區(qū)域中的不同位置的特征執(zhí)行集合統(tǒng)計操作,從而緩解卷積層對圖像位置的過度敏感性,減少最后全連接層中的參數,加快計算速度。
實踐中最常用的池化方式為Max Pooling、Average Pooling和Spatial Pyramid Pooling等。池化操作除了降低模型計算量、降低信息冗余以外,也在不同程度上提高了模型的尺度不變性和旋轉不變性,有效地防止了過擬合。各種池化方式的改進也更好地實現(xiàn)了特征壓縮、特征提取,大幅地減少了模型訓練所需要的時間。
基于深度學習的CNN 可用于圖像的識別分類。該方法從大量數據中自動學習特征用來提高模式識別系統(tǒng)的性能。目前常規(guī)圖像分類網絡的方法大多直接采用常見的深度卷積網絡來直接進行圖像分類,比如AlexNet、VGG、GoogleNet、ResNet以 及MobileNet等,它們曾在ImageNet 大規(guī)模視覺識別挑戰(zhàn)賽(Imagenet Large Scale Visual Recognition Challenge,ILSVRC)上證明自己的應用價值。本章將介紹經典的網絡模型。
LeCun 等于1998年提出歷史上第一個CNN方法LeNet-5 并進行改進,被用于手寫數字的識別。LeNet-5 定義了CNN 的基本結構,其可看作是卷積網絡模型的鼻祖。LeNet-5 用較少的參數在多個位置提取相似特征,這不僅能減少可學習參數的數量,而且能夠自動從原始像素中學習特征。它能夠在不受小失真影響的情況下對手寫數字進行分類,當時的很多銀行將其用來識別支票上面的手寫數字。LeNet-5 網絡模型共有7 層,如圖3 所示,分別是C1 卷積層、S2 池化層、C3 卷積層、S4 池化層、C5 卷積層、F6 全連接層、輸出層。
圖3 LeNet-5模型的結構Fig.3 Structure of LeNet-5 model
AlexNet可以被稱為第一個現(xiàn)代深度卷積網絡模型,首次使用了很多現(xiàn)代深度卷積網絡技術。它是由Hinton 研究組于2012 年在Large Scale Visual Recognition Challenge 中提出的一種模型。他們取得了當年的最好成績,以15.3%的錯誤率拿到第一名,比第二名算法(26.1%)的錯誤率降低了10.8 個百分點。其主要貢獻在于:1)首次使用多GPU 進行并行訓練,克服了硬件限制深度CNN 架構學習能力的缺陷;2)采用ReLU 作為非線性激活函數,緩解了梯度消失問題,提高了網絡模型的收斂速度;3)使用Dropout 層防止過擬合。圖4 展示了全連接層與Dropout 層的區(qū)別;4)通過參數優(yōu)化策略增強CNN 學習能力。
圖4 全連接層與Dropout層原理模型Fig.4 Principle model of fully connected layer and Dropout layer
重疊二次采樣和局部響應歸一化也被用于減少過擬合來提高泛化能力。以上諸多優(yōu)點使卷積網絡模型具有高效的學習能力,并讓它在新一代CNN 中具有重要意義。
stride
=1、padding
=1 的卷積核,相較于AlexNet 中11×11、5×5、3×3 的卷積核,它的參數量更少,計算代價更低。3)VGG 卷積網絡模型使用了幾個小卷積核(3×3)的組合,這比使用一個大卷積核(5×5、11×11)的卷積層要好。因為小尺寸卷積核的使用減少了參數的數量,提供了低計算復雜度的額外好處。同時它驗證了通過不斷加深網絡結構可以提高性能。雖然VGG 在圖像分類問題上展現(xiàn)出良好的結果,但是它使用了較多的參數,耗費了較多的計算資源,導致其在低資源系統(tǒng)上部署困難,這迫切需要研究新的算法和開發(fā)新的并行計算系統(tǒng)。
GoogLeNet是谷歌團隊于2014 年 在Large Scale Visual Recognition Challenge 上提出的一種模型。GoogLeNet 與VGG都有很深的網絡層數。雖然GoogLeNet 有22 層之多,但它的參數量只有500 萬,AlexNet 的參數量是GoogLeNet 的15 倍,VGG 的參數量是GoogLeNet 的3 倍;所以在計算機硬件資源有限的情況下,GoogLeNet 是用于圖像分類的一個比較好的選擇。進一步提升卷積網絡性能的直接方法是加深網絡的深度、寬度,但是這樣做存在很多問題,比如:1)由于參數過多,若是在訓練數據集有限的情況下,很容易產生過擬合,而采用大數據集則會產生高成本;2)網絡模型越大、參數越多,計算復雜度越大,越難應用;3)深層網絡,容易出現(xiàn)梯度彌散的問題,難以優(yōu)化。
谷歌的研究團隊提出了Inception(初始模塊)的概念,用以構造基礎神經元,搭建一個稀疏的高性能計算的網絡結構。如圖5 所示,在這個CNN 中,一個卷積層包含多個不同大小的卷積操作,它能夠產生稠密的數據,也保證了計算資源的使用效率。繼最初的Inception V1 模塊之后,Google 相繼給出了Inception V2、Inception V3、Inception V4等模塊結構,其改進再次取得了長足的進步。另外它使用稀疏連接,用以解決冗余信息的問題,并通過省略不相關的特征圖來降低成本。最后GoogLeNet 網絡模型使用全局平均池化來降低連接密度,而不是使用全連接層。
圖5 Inception模塊概念模型Fig.5 Inception module conceptual model
f
(x,m
)去逼近一個目標函數H
(x
),將目標函數拆分成兩部分:恒等函數和殘差函數。H
(x
)=x
+f
(x
,m
) (6)其中:H
(x
)為殘差模塊;x
為恒等函數;f
(x,m
)為殘差函數。其原理如圖6 所示。圖6 殘差模塊結構Fig.6 Residual module structure
嵌入式設備不能采用復雜龐大的模型,如何研究小而高效的卷積網絡模型非常重要。Google 團隊在2017 年提出了MobileNet,它是專注于移動端或者嵌入式設備中的輕量級CNN。隨后2018 年Google 提出了MobileNet V2,2019 年Google提出了MobileNet V3。相較于傳統(tǒng)的CNN,MobileNet V3 在犧牲小幅度準確率的前提下,使得模型參數量大幅減少。在ImageNet 上的測試結果表明,相較于VGG-16 模型,其準確率減少了0.9%,但它的模型參數只有VGG-16 模型的3.1%。MobileNet 采用深度可分離卷積層,如圖7所示,即首先對特征圖的各通道進行逐深度卷積(Depthwise Convolution),然后進行逐點1×1卷積(Pointwise Convolution),以達到縮小計算量和模型參數量的目的。
圖7 深度可分離卷積層結構Fig.7 Deep separable convolution layer structure
利用深度CNN 去處理圖像是目前熱門研究方向之一。本文總結了CNN 的發(fā)展,討論了CNN 的部分模型。但CNN仍然面對著以下幾個問題:
1)從理論上講,將CNN 應用于新領域的一個關鍵問題是,需要很多先前的實踐經驗來選擇合適的超參數,這些超參數具有內部依賴性,這使得它們的調整成本特別高。如何更好地處理這些參數仍然是個問題。
2)從應用上講,網絡模型對硬件計算能力、大規(guī)模數據的依賴性、訓練模型的動態(tài)適應能力等都是目前迫切需要解決的問題。
CNN 和深度學習總體上仍然是活躍的研究領域,在未來仍有許多學習的潛力值得探索研究和挖掘。另外,在圖像識別領域后來也出現(xiàn)了新的研究方法與思路。比如Transformer模型結構,有很多工作者試圖把Transformer 模型引入到圖像中去。比如嘗試在CNN 中引入Transformer 的自注意力機制,或者直接用Transformer 模型結構替換卷積塊。這些嘗試也都取得了較好的成績,比如DeiT、Pyramid Vision Transformer、Swin Transformer網絡等。除了上述研究思路外,將深度學習與強化學習結合應用于圖像分類領域也是未來的重要研究方向之一。