孫雙林,楊 倩,張優敏
(重慶工程學院 軟件學院,重慶 400056)
近年來,機器學習在圖像分析領域取得了大量的成功,特別是在圖像分類[1]、基于語義的圖像分割[2]等領域,深度卷積神經網絡(deep convolutional neural network,DCNN)成為最受歡迎的方法之一[3]。
傳統的圖像切割基于圖切割技術,圖切割就是移除一些邊,使得2個子圖不相連;圖切割的目標是,找到一個切割,使得移除邊的和權重最小。該技術的優點是分割效果還不錯,并且是一種普適性的框架,適合各種特征。其問題主要在于時間復雜度和空間復雜度較高,需要事先選取分割塊的數目[4]。FCN[5]是一類基于神經網絡的圖切割算法,它把所有的全連接層換成卷基層,原來只能輸出一個類別分類的網絡,可以在特征圖的每一個像素輸出一個分類結果[6]。Mask r-cnn[7]是一種基于劃分區域的卷積神經網絡的圖像分割算法,該算法采用多分支輸出和二進制掩碼,取得了較好的分割效果,但復雜度較高。
在DCNN中,輸入圖像于中間層圖像在大量后續層中于學習到的核心進行卷積,從而使網絡可能學習到高度非線性的特征[8]。隨著Tensor-Flow和Caffe等開源平臺和工具的普及,DCNN的應用仍有進一步上升的勢頭[9]。
在DCNN應用中,為了取得更高的準確性,往往需要和其他操作相結合,比如通過縮小和放大操作,在不同的圖像比例下捕獲特征[10],并且DCNN往往需要大量的中間層圖像和大量可被訓練的參數,對于高度非線性的困難問題,甚至需要上億的參數[11]。復雜的模型和大量的參數給DCNN的應用帶來了重大的挑戰,比如層次和連接組合的不同選擇可能顯著地影響訓練出的網絡的準確性,而什么樣的組合是最優的,在模型中是很難預測的[12]。此外,大量的參數還要求我們在選擇超參數時必須非常小心,否則就會導致過擬合、梯度消失和時間開銷過大等問題[13-15]。
為了便于DCNN的部署、訓練與應用,本文提出了一種新的卷積神經網絡模型,該模型中,網絡的所有層都使用相同的操作集,并以相同的方式相互連接,因此無需為特定問題選擇要使用的操作和連接。模型使用擴展卷積而不是縮放操作來捕獲不同圖像比例的特征,在一個層中使用多個比例,然后在其他層中使用密度連接媒體圖像。此外,本文提出的網絡體系結構以相對較少的中間圖像和參數實現精確的結果,從而在訓練中避免了調整超參數和額外的層的工作。在訓練中,網絡將學習為給定問題使用哪種擴展組合,從而可以應用相同的網絡去解決不同的問題。
在本文中,模型將被應用于實值二維圖像分析問題。我們將圖像定義為包含m行、n列和c個通道的像素的集合,x∈Rm×n×c,并用xj表示只與通道j相關的像素x。大多圖像處理問題都可以定義為對于給定圖像x,尋找生成圖像y的方程映射f∶Rm×n×c→Rm′×n′×c′的過程,當然輸入圖像和輸出圖像的維度可以不同。本文面向圖像分類問題中,主要考慮m=m′,n=n′,也就是像素對像素的問題。
卷積神經網絡通過互相連接的連續的多層對映射函數f建模,對于任意第i層,將以前zi-1層的輸出作為輸入,生成一個輸出圖像的特征映射zi∈Rmi×ni×ci,并且zi層輸出與zi-1層輸入的維度可以不同。最初的輸入圖像x可以作為第一層(z0),最后一層的輸出將是最終的圖像y。每個獨立的層可以包含多個操作,通常,層的架構是:首先將每個輸入的特征映射與不同的過濾器做卷積;然后將逐像素卷積的結果相加,并在結果圖像中加入常量(偏差參數);最后對每個像素做非線性運算。這些操作可以采用不同的過濾器和偏差值重復執行,從而為輸出映射產生多個通道。因此,對于通道j,卷積層的輸出可表示為:

式中:σ∶Rmi×ni→Rmi×ni代表非線性運算,例如可以是sigmoid函數或rectified linear unit(ReLU)[16];bij∈R是偏差參數;gij∶Rmi-1×ni-1×ci-1→Rmi×ni通過不同的過濾器將輸入特征映射的每個通道卷積,并逐像素求合,過程為:

式(2)中,Cha代表2D圖像a與過濾器h的卷積。
對于卷積過程中圖像邊界的處理可以采用多種方法,本文將采用反射邊界。通常情況下,過濾器hijk相對較小,例如3×3像素,以使計算和訓練的時間開銷都較小。符合這種架構的2層卷積神經網絡結果如圖1所示。

圖1 2層卷積神經網絡架構圖
深度卷積神經網絡的架構與經典卷積神經網絡類似,但它包含更多的層。此外,在DCNN中通常會包含層與層之間的增大和縮小操作,并通過增大或降低特征映射的維度,以便捕捉不同規模圖像的特征。很多深度神經網絡會在同一層的前一半逐漸縮小特征映射,在后一半逐漸增大特征映射,這2個過程通常也叫做編碼和解碼。圖2為基于編-解碼的DCNN的架構。

圖2 基于編-解碼的DCNN架構
通常,隨著層數的增多,DCNN比傳統卷積神經網絡的訓練更難,因為訓練將陷入局部最優并導致梯度過大或過小。此外,過大的參數空間會使訓練更加困難,因為一方面時間開銷更大,另一方面網絡的最大似然更容易過擬合[17],因此,DCNN往往需要巨大的訓練集。為了克服這些問題,學者們對傳統方法進行了一系列的改進,例如對層做歸一化的批處理、層高速連接、剩余連接和分形網絡等等[18-20]。雖然這些工作在某些方面取得了進步,但這些方法在很多領域難于應用,本文提出的算法能很好解決上述問題。
本文目標是通過低復雜度的網絡架構得到易于在各個領域部署的深度卷積神經網絡,從而顯著降低參數規模和訓練的難度,并能使模型自適應地解決復雜問題。為了達到這一目的,我們引入了“混合規模密集型”的網絡架構概念,一方面在每層混合不同的規模,另一方面讓所有特征映射密集聯系。
現有的DCNN模型大多使用擴大與縮小原則或者說編碼與解碼模式,與現有DCNN模型不同的是,混合密集型架構基于擴大的卷積操作,擴大卷積Dh,s在s∈Z+上利用擴大的過濾器h,h只在距離為像素s到中心點的整數倍時非零。我們通過式(3)所示的擴大方程為特定層的輸出圖像的每個通道連接卷積操作,即:

混合規模架構如圖3所示。

圖3 混合規模架構
在圖3中,可以通過多種不同的方法選擇每層通道的數量,例如,可以讓每層的通道數相同,都具有w個通道,網絡的非輸入層和非輸出層的數量用網絡深度d表示,在圖3中我們選擇w=2,d=3。圖3中的混合尺度方法可以減輕或避免編碼-解碼方法中的很多不利。首先,通過大尺度的擴大,圖像的大規模信息在網絡的早期層就快速可得,這可以使后續層利用該信息提升性能。其次,特定尺度的信息可以直接被其他尺度利用,不再需要跨層傳輸,因此在訓練過程中不需要學習額外的參數,從而控制網絡的復雜度。此外,雖然擴大因子sij必須提前選定,但網絡可以在本輪學習中確定下一輪的因子,從而自適應地應用于各種問題。
當使用帶有反射邊界的卷積操作時,與傳統DCNN相比,混合尺度方法還能帶來額外的好處,比如:對于輸入和輸出圖像,所有的網絡特征映射將具有相同的行數和列數,也就是說對于第i層,滿足mi=m,ni=n。因此,當計算特定層的特征映射時,不再局限于僅僅使用前一層的輸出,而是所有之前計算出的特征映射{z0,…,zi-1},甚至包括輸入圖像x,都可用來求解zi。因此,我們可以將式(1)和式(3)轉化為:

在密集連接的網絡中,所有特征映射的利用與再利用都將被最大化。如果在特征映射中發現了某個有用的特征,它不需要像傳統DCNN那樣被其他層復制。因此就可以顯著減小待訓練參數的數量。
通過將混合規模架構和密集連接相結合,我們提出了一種新型的深度卷積神經網絡,本文稱為參數簡化型DCNN。與現有的模型類似,參數簡化型DCNN也包含多層特征映射。每層特征映射都是之前所有層執行方程(4)的結果,也就是通過3×3像素過濾器擴展卷積運算、逐像素求和、為每個像素添加偏差常量矯正以及通過ReLU運算求最終解。最終輸出圖像的通道是通過對所有特征映射的所有通道做線性聚合而得到的,即:

在式(5)中,對于每層中通道數量的選擇可以有不同的方法,在本文中,我們采用簡化的方法,讓每層的通道數相同,用網絡的寬度w來表示,而非輸入非輸出層的數量由網絡的深度d表示。模型將在訓練中學習方程(4)中的卷積過濾器hijkl、偏差bij和式(5)中的權重wijk以及偏差b′k等參數。當給定了網絡的深度d、寬度w、輸入通道數量cin和輸出通道數量cout時,可以訓練的參數數量Npar=Nflts+Nwgts+Nbias,即:

在學習過程中,我們采用均方對數損失函數作為參數學習的損失函數。根據以上分析可知,求解參數Nflts的時間復雜度為O(d),因而訓練參數Npar的復雜度也是階的O(d)。
與現有的DCNN模型相比,基于規模擴大與密集連接的參數簡化神經網絡具有更少的參數,可以使參數訓練更加容易,并在一定程度上避免了過擬合。
本文提出的模型通過Python實現,借助PyCUDA[21]實現GPU加速,以應對卷積等高計算開銷的任務需求。現有的平臺工具(如TensorFlow或Caffe等)不能實現本文提出的模型,因此本文獨立地從代碼上實現了本文提出的模型。模型的運行基于4顆Nvidia Tesla K80 GPU,運算平臺基于CUDA 8.0。
通常,深的神經網絡會比淺的網絡更能得到精確的結果,并且由于本文提出的規模擴大密集連接網絡的特性,應當能夠得到很深的網絡層次和較少的通道數量。一般的很深層次的網絡總是比淺網絡更難訓練,但是在本文提出的模型中不存在這樣的問題。我們通過對均值為0、方差為的正態分布隨機采樣來初始化卷積過濾器的參數,其中nc與特征映射中所有入連接與出連接之和相關,可以通過nc=9(cin+w(d-1))+cout求得。其他可訓練的參數都初始化為0。此外,在絕大多數實驗中,我們使用相同分布的擴大參數sij∈[1,10],對于第i層、通道j,sij可由式(7)求得,即:

在具有L個標簽的圖像分割問題中,我們用L通道的圖像表示正確的輸出,在通道j中,對于分配給它的像素將被置為1,對于其他像素將被置為0。在最終輸出層,我們用soft-max激活函數和ADAM優化方法[22]來訓練,以最小化正確輸出與網絡輸出之間的交叉熵。為了驗證本文提出方法的性能,我們采用了全局準確率測度和經典準確率測度[23]。
在第一個實驗中,網絡輸入包含512×512像素的單通道圖像集,圖像集中包含圓與方2種形狀、3種不同的尺寸、6種不同的紋理并添加了高斯噪聲,因此總共包含36種不同的形狀、尺寸與紋理的組合。我們通過訓練發現其中6種特定的組合,比如帶有水平紋理的大方塊或者帶有垂直紋理的小圓圈等等。我們選擇這一類圖像分類問題是因為這個問題恰好需要深度伸進網絡去解決小尺度與大尺度的問題,比如像素級的紋理和特征級的形狀。
為了便于對照,我們部署了本文提出的模型和經典的U-Net[24]模型,我們通過105個隨機生成的圖像來訓練2個模型。2個模型的參數規模與準確率的關系如圖4所示。

圖4 準確率與參數規模的關系
在圖4中,用100張圖片作為準確率的測試集,本文提出模型的w取值為1,d∈{25,50,100,200};U-Net的規模分別選擇為2、3、4、5。在105輪訓練內,當全局準確率沒有顯著變化時,將停止訓練。實驗結果表明,本文提出模型的初始準確率顯著高于U-Net模型,并且隨著準確率的提升,本文提出算法的參數規模顯著小于對照算法,在任何準確率級別上,參數規模都小于對照算法,并且本文提出算法最終能達到對照算法難以達到的準確率。
為了進一步驗證本文提出方法的性能,我們又采用知名的CamVid數據集[25]進行了對照實驗,該數據集中包含360×480像素的彩色道路景觀圖,我們利用其中367張圖片作為訓練數據,101張圖片作為驗證數據,233張圖片作為測試數據。實驗的目標是區分出11類目標,例如汽車、道路、隔離帶和人行道等等。我們通過局部對比歸一化圖像方法訓練本文提出模型和U-Net方法,直到全局準確率在驗證集上沒有顯著變化時停止訓練。為了增強實驗結論的說服力,我們又增加了3種知名算法作為對照方法。實驗結果如表1所示。

表1 各種算法在CamVid數據集上的性能對比
在表1中,GA代表全局準確率(global accuracy),CA代表類別準確率(class accuracy)。對比算法除了前述的U-Net,還有經典SegNet[16]的2種版本,此外還有Boosting+Detector+CRF和Super Parsing 2類非神經網絡方法。如表1所示,本文提出方法在各種對比方法中可以達到最高的全局準確率和類別精度,并且,與神經網絡類的算法相比,本文提出算法具有最小的參數規模,從而具有遠小于其他神經網絡方法的訓練和計算開銷;與非神經網絡類算法相比,本文提出方法的全局準確率明顯要高一些。
為了驗證本文提出方法具有更好的抗過擬合性,我們將各種對照算法循環訓練300輪,測試其在ImageNet數據集中隨機挑選的1 000張圖片的分類情況,記錄其在不同輪數的分類準確率,實驗結果如圖5所示。

圖5 各對照算法再不同訓練輪數下的準確率
如圖5所示,在300輪訓練之內,本文提出方法的分類準確率隨著訓練輪數的增長而提高,在對照方法中,SegNet-Basic的最高準確率在160輪左右時達到最高,之后陷入過擬合,U-Net(3層)和Super Parsing在訓練超過200輪后,準確率產生振蕩。實驗結果表明,本文提出方法具有更好的抗過擬合性。
為了驗證本文提出方法可應用于不同領域,我們在不調整模型參數的情況下,將方法應用于生物細胞數據集的分類上,實驗結果如表2所示。

表2 各種算法在生物細胞數據集上的分類性能對比
表2中的數據集是由512×512像素的小鼠淋巴母細胞的斷層重建圖像組成,圖像內的標簽包括5類,分別是核膜、常染色質、異染色質、線粒體和脂質滴。如表2所示,在生物細胞圖像分類領域,本文提出方法依然能達到最高的準確率和召回率,從而證明了本文提出的模型可自適應地應用于不同領域。
本文提出了一種基于規模擴大和密集連接的深度卷積神經網絡模型,與傳統的深度卷積神經網絡采用尺度擴大-縮小的編碼-解碼方式不同,該模型通過擴大卷積規??梢栽谕粚邮褂枚鄠€不同規模的特征映射信息,避免了編碼-解碼的海量參數和巨大的時間開銷,并通過密集連接不同層的特征,提高了處理的準確率。實驗結果表明,與各種經典神經網絡和非神經網絡方法相比,本文提出模型具有更簡單的參數規模、更高的分類準確率,并且可以自適應地部署于各種類型的圖像分類問題,能夠避免過擬合,從而達到較高的處理性能。
近年來,深度卷積神經網絡在圖像處理之外的諸多領域取得成功,例如語音識別和文本處理[26-27],本文提出模型是否適用于這些領域,在這些領域模型需要做什么樣的提升,將是未來有意義的工作。