孫雙林,楊 倩,張優(yōu)敏
(重慶工程學(xué)院 軟件學(xué)院,重慶 400056)
近年來,機器學(xué)習(xí)在圖像分析領(lǐng)域取得了大量的成功,特別是在圖像分類[1]、基于語義的圖像分割[2]等領(lǐng)域,深度卷積神經(jīng)網(wǎng)絡(luò)(deep convolutional neural network,DCNN)成為最受歡迎的方法之一[3]。
傳統(tǒng)的圖像切割基于圖切割技術(shù),圖切割就是移除一些邊,使得2個子圖不相連;圖切割的目標(biāo)是,找到一個切割,使得移除邊的和權(quán)重最小。該技術(shù)的優(yōu)點是分割效果還不錯,并且是一種普適性的框架,適合各種特征。其問題主要在于時間復(fù)雜度和空間復(fù)雜度較高,需要事先選取分割塊的數(shù)目[4]。FCN[5]是一類基于神經(jīng)網(wǎng)絡(luò)的圖切割算法,它把所有的全連接層換成卷基層,原來只能輸出一個類別分類的網(wǎng)絡(luò),可以在特征圖的每一個像素輸出一個分類結(jié)果[6]。Mask r-cnn[7]是一種基于劃分區(qū)域的卷積神經(jīng)網(wǎng)絡(luò)的圖像分割算法,該算法采用多分支輸出和二進制掩碼,取得了較好的分割效果,但復(fù)雜度較高。
在DCNN中,輸入圖像于中間層圖像在大量后續(xù)層中于學(xué)習(xí)到的核心進行卷積,從而使網(wǎng)絡(luò)可能學(xué)習(xí)到高度非線性的特征[8]。隨著Tensor-Flow和Caffe等開源平臺和工具的普及,DCNN的應(yīng)用仍有進一步上升的勢頭[9]。
在DCNN應(yīng)用中,為了取得更高的準確性,往往需要和其他操作相結(jié)合,比如通過縮小和放大操作,在不同的圖像比例下捕獲特征[10],并且DCNN往往需要大量的中間層圖像和大量可被訓(xùn)練的參數(shù),對于高度非線性的困難問題,甚至需要上億的參數(shù)[11]。復(fù)雜的模型和大量的參數(shù)給DCNN的應(yīng)用帶來了重大的挑戰(zhàn),比如層次和連接組合的不同選擇可能顯著地影響訓(xùn)練出的網(wǎng)絡(luò)的準確性,而什么樣的組合是最優(yōu)的,在模型中是很難預(yù)測的[12]。此外,大量的參數(shù)還要求我們在選擇超參數(shù)時必須非常小心,否則就會導(dǎo)致過擬合、梯度消失和時間開銷過大等問題[13-15]。
為了便于DCNN的部署、訓(xùn)練與應(yīng)用,本文提出了一種新的卷積神經(jīng)網(wǎng)絡(luò)模型,該模型中,網(wǎng)絡(luò)的所有層都使用相同的操作集,并以相同的方式相互連接,因此無需為特定問題選擇要使用的操作和連接。模型使用擴展卷積而不是縮放操作來捕獲不同圖像比例的特征,在一個層中使用多個比例,然后在其他層中使用密度連接媒體圖像。此外,本文提出的網(wǎng)絡(luò)體系結(jié)構(gòu)以相對較少的中間圖像和參數(shù)實現(xiàn)精確的結(jié)果,從而在訓(xùn)練中避免了調(diào)整超參數(shù)和額外的層的工作。在訓(xùn)練中,網(wǎng)絡(luò)將學(xué)習(xí)為給定問題使用哪種擴展組合,從而可以應(yīng)用相同的網(wǎng)絡(luò)去解決不同的問題。
在本文中,模型將被應(yīng)用于實值二維圖像分析問題。我們將圖像定義為包含m行、n列和c個通道的像素的集合,x∈Rm×n×c,并用xj表示只與通道j相關(guān)的像素x。大多圖像處理問題都可以定義為對于給定圖像x,尋找生成圖像y的方程映射f∶Rm×n×c→Rm′×n′×c′的過程,當(dāng)然輸入圖像和輸出圖像的維度可以不同。本文面向圖像分類問題中,主要考慮m=m′,n=n′,也就是像素對像素的問題。
卷積神經(jīng)網(wǎng)絡(luò)通過互相連接的連續(xù)的多層對映射函數(shù)f建模,對于任意第i層,將以前zi-1層的輸出作為輸入,生成一個輸出圖像的特征映射zi∈Rmi×ni×ci,并且zi層輸出與zi-1層輸入的維度可以不同。最初的輸入圖像x可以作為第一層(z0),最后一層的輸出將是最終的圖像y。每個獨立的層可以包含多個操作,通常,層的架構(gòu)是:首先將每個輸入的特征映射與不同的過濾器做卷積;然后將逐像素卷積的結(jié)果相加,并在結(jié)果圖像中加入常量(偏差參數(shù));最后對每個像素做非線性運算。這些操作可以采用不同的過濾器和偏差值重復(fù)執(zhí)行,從而為輸出映射產(chǎn)生多個通道。因此,對于通道j,卷積層的輸出可表示為:
式中:σ∶Rmi×ni→Rmi×ni代表非線性運算,例如可以是sigmoid函數(shù)或rectified linear unit(ReLU)[16];bij∈R是偏差參數(shù);gij∶Rmi-1×ni-1×ci-1→Rmi×ni通過不同的過濾器將輸入特征映射的每個通道卷積,并逐像素求合,過程為:
式(2)中,Cha代表2D圖像a與過濾器h的卷積。
對于卷積過程中圖像邊界的處理可以采用多種方法,本文將采用反射邊界。通常情況下,過濾器hijk相對較小,例如3×3像素,以使計算和訓(xùn)練的時間開銷都較小。符合這種架構(gòu)的2層卷積神經(jīng)網(wǎng)絡(luò)結(jié)果如圖1所示。
圖1 2層卷積神經(jīng)網(wǎng)絡(luò)架構(gòu)圖
深度卷積神經(jīng)網(wǎng)絡(luò)的架構(gòu)與經(jīng)典卷積神經(jīng)網(wǎng)絡(luò)類似,但它包含更多的層。此外,在DCNN中通常會包含層與層之間的增大和縮小操作,并通過增大或降低特征映射的維度,以便捕捉不同規(guī)模圖像的特征。很多深度神經(jīng)網(wǎng)絡(luò)會在同一層的前一半逐漸縮小特征映射,在后一半逐漸增大特征映射,這2個過程通常也叫做編碼和解碼。圖2為基于編-解碼的DCNN的架構(gòu)。
圖2 基于編-解碼的DCNN架構(gòu)
通常,隨著層數(shù)的增多,DCNN比傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練更難,因為訓(xùn)練將陷入局部最優(yōu)并導(dǎo)致梯度過大或過小。此外,過大的參數(shù)空間會使訓(xùn)練更加困難,因為一方面時間開銷更大,另一方面網(wǎng)絡(luò)的最大似然更容易過擬合[17],因此,DCNN往往需要巨大的訓(xùn)練集。為了克服這些問題,學(xué)者們對傳統(tǒng)方法進行了一系列的改進,例如對層做歸一化的批處理、層高速連接、剩余連接和分形網(wǎng)絡(luò)等等[18-20]。雖然這些工作在某些方面取得了進步,但這些方法在很多領(lǐng)域難于應(yīng)用,本文提出的算法能很好解決上述問題。
本文目標(biāo)是通過低復(fù)雜度的網(wǎng)絡(luò)架構(gòu)得到易于在各個領(lǐng)域部署的深度卷積神經(jīng)網(wǎng)絡(luò),從而顯著降低參數(shù)規(guī)模和訓(xùn)練的難度,并能使模型自適應(yīng)地解決復(fù)雜問題。為了達到這一目的,我們引入了“混合規(guī)模密集型”的網(wǎng)絡(luò)架構(gòu)概念,一方面在每層混合不同的規(guī)模,另一方面讓所有特征映射密集聯(lián)系。
現(xiàn)有的DCNN模型大多使用擴大與縮小原則或者說編碼與解碼模式,與現(xiàn)有DCNN模型不同的是,混合密集型架構(gòu)基于擴大的卷積操作,擴大卷積Dh,s在s∈Z+上利用擴大的過濾器h,h只在距離為像素s到中心點的整數(shù)倍時非零。我們通過式(3)所示的擴大方程為特定層的輸出圖像的每個通道連接卷積操作,即:
混合規(guī)模架構(gòu)如圖3所示。
圖3 混合規(guī)模架構(gòu)
在圖3中,可以通過多種不同的方法選擇每層通道的數(shù)量,例如,可以讓每層的通道數(shù)相同,都具有w個通道,網(wǎng)絡(luò)的非輸入層和非輸出層的數(shù)量用網(wǎng)絡(luò)深度d表示,在圖3中我們選擇w=2,d=3。圖3中的混合尺度方法可以減輕或避免編碼-解碼方法中的很多不利。首先,通過大尺度的擴大,圖像的大規(guī)模信息在網(wǎng)絡(luò)的早期層就快速可得,這可以使后續(xù)層利用該信息提升性能。其次,特定尺度的信息可以直接被其他尺度利用,不再需要跨層傳輸,因此在訓(xùn)練過程中不需要學(xué)習(xí)額外的參數(shù),從而控制網(wǎng)絡(luò)的復(fù)雜度。此外,雖然擴大因子sij必須提前選定,但網(wǎng)絡(luò)可以在本輪學(xué)習(xí)中確定下一輪的因子,從而自適應(yīng)地應(yīng)用于各種問題。
當(dāng)使用帶有反射邊界的卷積操作時,與傳統(tǒng)DCNN相比,混合尺度方法還能帶來額外的好處,比如:對于輸入和輸出圖像,所有的網(wǎng)絡(luò)特征映射將具有相同的行數(shù)和列數(shù),也就是說對于第i層,滿足mi=m,ni=n。因此,當(dāng)計算特定層的特征映射時,不再局限于僅僅使用前一層的輸出,而是所有之前計算出的特征映射{z0,…,zi-1},甚至包括輸入圖像x,都可用來求解zi。因此,我們可以將式(1)和式(3)轉(zhuǎn)化為:
在密集連接的網(wǎng)絡(luò)中,所有特征映射的利用與再利用都將被最大化。如果在特征映射中發(fā)現(xiàn)了某個有用的特征,它不需要像傳統(tǒng)DCNN那樣被其他層復(fù)制。因此就可以顯著減小待訓(xùn)練參數(shù)的數(shù)量。
通過將混合規(guī)模架構(gòu)和密集連接相結(jié)合,我們提出了一種新型的深度卷積神經(jīng)網(wǎng)絡(luò),本文稱為參數(shù)簡化型DCNN。與現(xiàn)有的模型類似,參數(shù)簡化型DCNN也包含多層特征映射。每層特征映射都是之前所有層執(zhí)行方程(4)的結(jié)果,也就是通過3×3像素過濾器擴展卷積運算、逐像素求和、為每個像素添加偏差常量矯正以及通過ReLU運算求最終解。最終輸出圖像的通道是通過對所有特征映射的所有通道做線性聚合而得到的,即:
在式(5)中,對于每層中通道數(shù)量的選擇可以有不同的方法,在本文中,我們采用簡化的方法,讓每層的通道數(shù)相同,用網(wǎng)絡(luò)的寬度w來表示,而非輸入非輸出層的數(shù)量由網(wǎng)絡(luò)的深度d表示。模型將在訓(xùn)練中學(xué)習(xí)方程(4)中的卷積過濾器hijkl、偏差bij和式(5)中的權(quán)重wijk以及偏差b′k等參數(shù)。當(dāng)給定了網(wǎng)絡(luò)的深度d、寬度w、輸入通道數(shù)量cin和輸出通道數(shù)量cout時,可以訓(xùn)練的參數(shù)數(shù)量Npar=Nflts+Nwgts+Nbias,即:
在學(xué)習(xí)過程中,我們采用均方對數(shù)損失函數(shù)作為參數(shù)學(xué)習(xí)的損失函數(shù)。根據(jù)以上分析可知,求解參數(shù)Nflts的時間復(fù)雜度為O(d),因而訓(xùn)練參數(shù)Npar的復(fù)雜度也是階的O(d)。
與現(xiàn)有的DCNN模型相比,基于規(guī)模擴大與密集連接的參數(shù)簡化神經(jīng)網(wǎng)絡(luò)具有更少的參數(shù),可以使參數(shù)訓(xùn)練更加容易,并在一定程度上避免了過擬合。
本文提出的模型通過Python實現(xiàn),借助PyCUDA[21]實現(xiàn)GPU加速,以應(yīng)對卷積等高計算開銷的任務(wù)需求?,F(xiàn)有的平臺工具(如TensorFlow或Caffe等)不能實現(xiàn)本文提出的模型,因此本文獨立地從代碼上實現(xiàn)了本文提出的模型。模型的運行基于4顆Nvidia Tesla K80 GPU,運算平臺基于CUDA 8.0。
通常,深的神經(jīng)網(wǎng)絡(luò)會比淺的網(wǎng)絡(luò)更能得到精確的結(jié)果,并且由于本文提出的規(guī)模擴大密集連接網(wǎng)絡(luò)的特性,應(yīng)當(dāng)能夠得到很深的網(wǎng)絡(luò)層次和較少的通道數(shù)量。一般的很深層次的網(wǎng)絡(luò)總是比淺網(wǎng)絡(luò)更難訓(xùn)練,但是在本文提出的模型中不存在這樣的問題。我們通過對均值為0、方差為的正態(tài)分布隨機采樣來初始化卷積過濾器的參數(shù),其中nc與特征映射中所有入連接與出連接之和相關(guān),可以通過nc=9(cin+w(d-1))+cout求得。其他可訓(xùn)練的參數(shù)都初始化為0。此外,在絕大多數(shù)實驗中,我們使用相同分布的擴大參數(shù)sij∈[1,10],對于第i層、通道j,sij可由式(7)求得,即:
在具有L個標(biāo)簽的圖像分割問題中,我們用L通道的圖像表示正確的輸出,在通道j中,對于分配給它的像素將被置為1,對于其他像素將被置為0。在最終輸出層,我們用soft-max激活函數(shù)和ADAM優(yōu)化方法[22]來訓(xùn)練,以最小化正確輸出與網(wǎng)絡(luò)輸出之間的交叉熵。為了驗證本文提出方法的性能,我們采用了全局準確率測度和經(jīng)典準確率測度[23]。
在第一個實驗中,網(wǎng)絡(luò)輸入包含512×512像素的單通道圖像集,圖像集中包含圓與方2種形狀、3種不同的尺寸、6種不同的紋理并添加了高斯噪聲,因此總共包含36種不同的形狀、尺寸與紋理的組合。我們通過訓(xùn)練發(fā)現(xiàn)其中6種特定的組合,比如帶有水平紋理的大方塊或者帶有垂直紋理的小圓圈等等。我們選擇這一類圖像分類問題是因為這個問題恰好需要深度伸進網(wǎng)絡(luò)去解決小尺度與大尺度的問題,比如像素級的紋理和特征級的形狀。
為了便于對照,我們部署了本文提出的模型和經(jīng)典的U-Net[24]模型,我們通過105個隨機生成的圖像來訓(xùn)練2個模型。2個模型的參數(shù)規(guī)模與準確率的關(guān)系如圖4所示。
圖4 準確率與參數(shù)規(guī)模的關(guān)系
在圖4中,用100張圖片作為準確率的測試集,本文提出模型的w取值為1,d∈{25,50,100,200};U-Net的規(guī)模分別選擇為2、3、4、5。在105輪訓(xùn)練內(nèi),當(dāng)全局準確率沒有顯著變化時,將停止訓(xùn)練。實驗結(jié)果表明,本文提出模型的初始準確率顯著高于U-Net模型,并且隨著準確率的提升,本文提出算法的參數(shù)規(guī)模顯著小于對照算法,在任何準確率級別上,參數(shù)規(guī)模都小于對照算法,并且本文提出算法最終能達到對照算法難以達到的準確率。
為了進一步驗證本文提出方法的性能,我們又采用知名的CamVid數(shù)據(jù)集[25]進行了對照實驗,該數(shù)據(jù)集中包含360×480像素的彩色道路景觀圖,我們利用其中367張圖片作為訓(xùn)練數(shù)據(jù),101張圖片作為驗證數(shù)據(jù),233張圖片作為測試數(shù)據(jù)。實驗的目標(biāo)是區(qū)分出11類目標(biāo),例如汽車、道路、隔離帶和人行道等等。我們通過局部對比歸一化圖像方法訓(xùn)練本文提出模型和U-Net方法,直到全局準確率在驗證集上沒有顯著變化時停止訓(xùn)練。為了增強實驗結(jié)論的說服力,我們又增加了3種知名算法作為對照方法。實驗結(jié)果如表1所示。
表1 各種算法在CamVid數(shù)據(jù)集上的性能對比
在表1中,GA代表全局準確率(global accuracy),CA代表類別準確率(class accuracy)。對比算法除了前述的U-Net,還有經(jīng)典SegNet[16]的2種版本,此外還有Boosting+Detector+CRF和Super Parsing 2類非神經(jīng)網(wǎng)絡(luò)方法。如表1所示,本文提出方法在各種對比方法中可以達到最高的全局準確率和類別精度,并且,與神經(jīng)網(wǎng)絡(luò)類的算法相比,本文提出算法具有最小的參數(shù)規(guī)模,從而具有遠小于其他神經(jīng)網(wǎng)絡(luò)方法的訓(xùn)練和計算開銷;與非神經(jīng)網(wǎng)絡(luò)類算法相比,本文提出方法的全局準確率明顯要高一些。
為了驗證本文提出方法具有更好的抗過擬合性,我們將各種對照算法循環(huán)訓(xùn)練300輪,測試其在ImageNet數(shù)據(jù)集中隨機挑選的1 000張圖片的分類情況,記錄其在不同輪數(shù)的分類準確率,實驗結(jié)果如圖5所示。
圖5 各對照算法再不同訓(xùn)練輪數(shù)下的準確率
如圖5所示,在300輪訓(xùn)練之內(nèi),本文提出方法的分類準確率隨著訓(xùn)練輪數(shù)的增長而提高,在對照方法中,SegNet-Basic的最高準確率在160輪左右時達到最高,之后陷入過擬合,U-Net(3層)和Super Parsing在訓(xùn)練超過200輪后,準確率產(chǎn)生振蕩。實驗結(jié)果表明,本文提出方法具有更好的抗過擬合性。
為了驗證本文提出方法可應(yīng)用于不同領(lǐng)域,我們在不調(diào)整模型參數(shù)的情況下,將方法應(yīng)用于生物細胞數(shù)據(jù)集的分類上,實驗結(jié)果如表2所示。
表2 各種算法在生物細胞數(shù)據(jù)集上的分類性能對比
表2中的數(shù)據(jù)集是由512×512像素的小鼠淋巴母細胞的斷層重建圖像組成,圖像內(nèi)的標(biāo)簽包括5類,分別是核膜、常染色質(zhì)、異染色質(zhì)、線粒體和脂質(zhì)滴。如表2所示,在生物細胞圖像分類領(lǐng)域,本文提出方法依然能達到最高的準確率和召回率,從而證明了本文提出的模型可自適應(yīng)地應(yīng)用于不同領(lǐng)域。
本文提出了一種基于規(guī)模擴大和密集連接的深度卷積神經(jīng)網(wǎng)絡(luò)模型,與傳統(tǒng)的深度卷積神經(jīng)網(wǎng)絡(luò)采用尺度擴大-縮小的編碼-解碼方式不同,該模型通過擴大卷積規(guī)模可以在同一層使用多個不同規(guī)模的特征映射信息,避免了編碼-解碼的海量參數(shù)和巨大的時間開銷,并通過密集連接不同層的特征,提高了處理的準確率。實驗結(jié)果表明,與各種經(jīng)典神經(jīng)網(wǎng)絡(luò)和非神經(jīng)網(wǎng)絡(luò)方法相比,本文提出模型具有更簡單的參數(shù)規(guī)模、更高的分類準確率,并且可以自適應(yīng)地部署于各種類型的圖像分類問題,能夠避免過擬合,從而達到較高的處理性能。
近年來,深度卷積神經(jīng)網(wǎng)絡(luò)在圖像處理之外的諸多領(lǐng)域取得成功,例如語音識別和文本處理[26-27],本文提出模型是否適用于這些領(lǐng)域,在這些領(lǐng)域模型需要做什么樣的提升,將是未來有意義的工作。