王 敏, 王 康, 莊志豪, 周樹道, 劉展華
(1.南京信息工程大學(xué)電子與信息工程學(xué)院,南京210044;2.國防科技大學(xué)氣象海洋學(xué)院,南京211101;3.解放軍96941部隊(duì),北京100085)
云是與水循環(huán)有關(guān)的重要?dú)庀蟋F(xiàn)象之一,它通過與太陽和地面輻射的相互作用,在區(qū)域和全球范圍內(nèi)影響大氣能量平衡[1-2]。地基云觀測(cè)主要觀測(cè)地基云的云量、云狀和云底高度3種要素,根據(jù)上述3種要素將云分為3族、10屬、29類[3]。
一些云自動(dòng)觀測(cè)和分類設(shè)備,已經(jīng)實(shí)現(xiàn)了利用可見光、紅外波段獲取全天空云圖的工程化目的,在自動(dòng)識(shí)別過程中,采用如下流程:先進(jìn)行云圖預(yù)處理,對(duì)不同云進(jìn)行特征提取,利用分類器進(jìn)行云識(shí)別分類,這種方法提取特征的有效性會(huì)影響識(shí)別分類的效果[4-7],如何準(zhǔn)確提取出不同類別云的有效特征是很多學(xué)者重點(diǎn)研究的內(nèi)容。不同云的特征提取依賴于人工經(jīng)驗(yàn),分類器也是單獨(dú)設(shè)置的環(huán)節(jié),這種地基云圖的自動(dòng)識(shí)別實(shí)則是一種“淺層學(xué)習(xí)”,一般只有2層學(xué)習(xí)網(wǎng)絡(luò),導(dǎo)致適用的地基云類別范圍有限。
卷積神經(jīng)網(wǎng)絡(luò)(Convolution Neural Network,CNN)對(duì)于不同類別的特征不需要人工選取,僅需設(shè)置適當(dāng)?shù)木W(wǎng)絡(luò)參數(shù),就能達(dá)到自動(dòng)學(xué)習(xí)的目的,取得較高的識(shí)別率,在圖像識(shí)別分類領(lǐng)域的應(yīng)用非常廣泛,且能應(yīng)用于不同類型的目標(biāo)物[8]。CNN在圖像分類方面取得了顯著的效果,目前仍少見用于評(píng)價(jià)云分類的效率和準(zhǔn)確性報(bào)道。由于CNN是自動(dòng)學(xué)習(xí)圖像的內(nèi)在特征,無須人工參與選取,對(duì)自動(dòng)提取的特征屬性及效果研究也較少。這種自動(dòng)學(xué)習(xí)的性能使得模型對(duì)黑箱網(wǎng)絡(luò)的學(xué)習(xí)過程不夠理解,影響對(duì)網(wǎng)絡(luò)模型的有效訓(xùn)練?;贑NN,提出一種適用于地基云圖識(shí)別分類時(shí)的網(wǎng)絡(luò)提取特征可視化方法,形象地展現(xiàn)不同卷積層提取的有效特征的屬性和特點(diǎn),以利于對(duì)CNN識(shí)別地基云圖識(shí)別準(zhǔn)確率的提高。
地基云圖CNN識(shí)別流程如圖1所示。首先建立CNN系統(tǒng)CloudA[9],利用云圖樣本庫的部分訓(xùn)練集云圖樣本[10]對(duì)初始化后的CNN系統(tǒng)進(jìn)行訓(xùn)練學(xué)習(xí),得到訓(xùn)練完的CNN系統(tǒng),利用云圖樣本庫的另一部分測(cè)試集云圖樣本對(duì)訓(xùn)練完的CNN系統(tǒng)進(jìn)行測(cè)試,得到識(shí)別結(jié)果。
圖1 地基云圖卷積神經(jīng)網(wǎng)絡(luò)識(shí)別流程
CloudA包含4個(gè)卷積層(Conv1~Conv4)、4個(gè)池化層(Pool1~Pool4)以及3個(gè)全連接層(Fc5~Fc7),如圖2所示。地基可見光云圖像作為輸入進(jìn)入網(wǎng)絡(luò)后,第1層是一個(gè)內(nèi)核為5×5的卷積層,輸出通道為32。第2層卷積核為5×5,輸出通道為64,第3、4個(gè)卷積層中卷積核均為3×3,輸出通道均為128,所有的卷積層都配有ReLU[10]。根據(jù)卷積數(shù)學(xué)運(yùn)算需要,1、2層邊緣填充為2,3、4層的邊緣填充為1,同時(shí)在每一個(gè)卷積層后都有最大池化層。3層是完全連接的神經(jīng)層,每層神經(jīng)元個(gè)數(shù)依次為1024、512、5。根據(jù)經(jīng)驗(yàn),對(duì)于小規(guī)模數(shù)據(jù)集,選用支持向量機(jī)(Support Vector Machine,SVM)分類器更適合訓(xùn)練網(wǎng)絡(luò)。網(wǎng)絡(luò)參數(shù)設(shè)置為:優(yōu)化器選用Adam(Adaptive Moment Estimation)[11],學(xué)習(xí)率為0.000 8,批處理大小64,100個(gè)epoch停止訓(xùn)練,訓(xùn)練正則化選用權(quán)重衰減,其中L2正則化的系數(shù)為0.000 1,前兩個(gè)全連接層的正則化通過隨機(jī)失活進(jìn)行,其中隨機(jī)失活比例默認(rèn)為0.5。網(wǎng)絡(luò)詳細(xì)配置見表1。
表1 網(wǎng)絡(luò)CloudA詳細(xì)配置表
圖2 CloudA網(wǎng)絡(luò)結(jié)構(gòu)圖
CNN的第1個(gè)特點(diǎn)是它的多層計(jì)算網(wǎng)絡(luò)。這些網(wǎng)絡(luò)包括數(shù)十層和數(shù)百萬個(gè)參數(shù),編寫代碼十分復(fù)雜和困難。包括Tensorflow、Theano和Torch在內(nèi)的現(xiàn)代深度學(xué)習(xí)框架都提供了高級(jí)應(yīng)用程序接口(Application Programming Interface,API)來降低這些難度。使用這些API,開發(fā)者可以編寫一個(gè)抽象程序來生成一個(gè)支持各種學(xué)習(xí)算法、分布式計(jì)算和不同設(shè)備類型的底層數(shù)據(jù)流圖,這無疑簡(jiǎn)化了CNN的搭建。開發(fā)人員仍然必須閱讀代碼并手動(dòng)構(gòu)建模型的流程圖,以理解其復(fù)雜的結(jié)構(gòu);與傳統(tǒng)完全連接的神經(jīng)網(wǎng)絡(luò)相比,CNN不需要領(lǐng)域?qū)<以O(shè)計(jì)特征提取器,而是讓模型學(xué)習(xí)樣本特征,它們學(xué)習(xí)特殊功能的能力卻很難理解和診斷,可以說CNN類似于一個(gè)黑箱學(xué)習(xí)機(jī)器。對(duì)于神經(jīng)網(wǎng)絡(luò)來說,缺乏對(duì)模型如何工作的理解常常使模型優(yōu)化變得困難。對(duì)于各種模型,模型參數(shù)直接可視化可為訓(xùn)練提供一個(gè)很好的理解過程,用戶可對(duì)算法的行為有一個(gè)大致的了解。還可以幫助識(shí)別明顯的錯(cuò)誤,驗(yàn)證假設(shè)的正確性。雖有不同類型的數(shù)據(jù)和算法,但可視化都可以直接提供對(duì)模型的解釋,提高模型的透明度,并幫助打開這些所謂的“黑匣子”[12]。實(shí)踐者和研究人員還可以使用可視化來監(jiān)控學(xué)習(xí)的參數(shù)和輸出指標(biāo),以幫助他們培訓(xùn)和優(yōu)化模型。
本文利用TensorBoard對(duì)CNN結(jié)構(gòu)進(jìn)行可視化輸出,同時(shí)對(duì)CNN的訓(xùn)練過程實(shí)現(xiàn)實(shí)時(shí)可視化監(jiān)測(cè),TensorBoard顯示CNN結(jié)構(gòu)樣例如圖3所示。
圖3 TensorBoard顯示CNN結(jié)構(gòu)可視圖
CNN的層結(jié)構(gòu)較多,從幾層到十幾層甚至更多。一般將其分為淺層和深層,其中淺層獲得前級(jí)卷積層傳遞的特征圖信息,深層獲得的是后級(jí)卷積層卷積得到的特征圖信息。即淺層的卷積核關(guān)注圖像細(xì)節(jié)紋理等特征,而深層的卷積核則關(guān)注更加抽象的語義語境信息等特征。同時(shí),在CNN中感受野(Receptive Field)可以捕獲整個(gè)空間布局信息,它通常利用網(wǎng)絡(luò)的全連接層的輸出作為特征來實(shí)現(xiàn)。
基于地基可見光云圖分類面臨的問題主要有:較之一般圖像邊緣紋理更加復(fù)雜,難尋規(guī)律;大量的類間變化,結(jié)構(gòu)形態(tài)多樣性導(dǎo)致幾何結(jié)構(gòu)更加豐富;圖像視覺呈現(xiàn)易受光照等因素影響。而CNN在捕捉紋理、布局特征上優(yōu)勢(shì)明顯,深度卷積特征可能是用于云圖分類更好的選擇。為將CNN捕獲的云圖特征直觀地展現(xiàn)出來,本文使用了特征圖可視化方法。
通過可視化手段可將CNN的各卷積層上學(xué)習(xí)到的特征輸出形成圖片,如圖4所示。
圖4 從不同卷積層可視化多個(gè)特征圖
第1列為2張不同的云圖像,后面各緊跟4張不同卷積層中不同卷積核所對(duì)應(yīng)的特征圖,如conv1-9可解釋為第1個(gè)卷積層中的第9個(gè)卷積核所對(duì)應(yīng)的特征圖。通過比較各圖,可以得出以下特點(diǎn)。
(1)對(duì)同一圖像,深層、淺層卷積獲得的信息不同。從外觀上看,第1張圖產(chǎn)生的4張?zhí)卣鲌D各不相同,在conv1-9這樣的淺層中,云體中的紋理、明暗信息基本被保留,但是在conv4-3這樣的深層中,云體中的明暗信息已經(jīng)被略去,但云體和背景的劃分界限更加清晰(綠色和藍(lán)色對(duì)比更強(qiáng)),邊緣輪廓更加突出;
(2)對(duì)同一卷積層,獲取的信息因輸入圖像不同而不同。conv1-9和conv1-27因?yàn)檩斎雸D像不一樣而產(chǎn)生對(duì)應(yīng)的特征圖,同一卷積層對(duì)不同類別的云圖像的特征表現(xiàn)差異較大。
以上特點(diǎn)意味著不同層的特征映射往往對(duì)同一幅圖像有不同的表征,不同的卷積核確實(shí)被訓(xùn)練來描述不同的模式,說明卷積核的提取特征可以用來區(qū)分不同類別的云圖像。由此,可以印證CNN對(duì)圖像識(shí)別時(shí)淺層、深層分別關(guān)注不同信息的理論,CNN用來對(duì)地基可見光云圖像分類是適合的、可行的。
采用Singapore Whole sky IMaging CATegories Database(SWIMCAT)[13]地基云圖數(shù)據(jù)集進(jìn)行實(shí)驗(yàn)驗(yàn)證。將該數(shù)據(jù)集中所有類別按照9:1的比例設(shè)置為訓(xùn)練集和測(cè)試集,隨機(jī)選取訓(xùn)練集樣本進(jìn)行網(wǎng)絡(luò)訓(xùn)練,最后采用測(cè)試集樣本進(jìn)行識(shí)別測(cè)試。將本文利用CloudA CNN進(jìn)行地基云識(shí)別的方法與傳統(tǒng)的人工選取特征識(shí)別云的局部二值模式(Local Binary Patterns,LBP)、Heinle feature[14]、Texton-based method[15]方法進(jìn)行比較,識(shí)別的結(jié)果見表2,其中LBP方法中(P,R)=(16,2)。
表2 方法平均準(zhǔn)確率比較
如表2所示,所提CNN算法在樣本庫上的表現(xiàn)明顯優(yōu)于Heinle feature和LBP算法,CNN相對(duì)于二者表現(xiàn)出了很大的優(yōu)勢(shì),甚至比提出的Texton-based的方法表現(xiàn)出了近4%的優(yōu)勢(shì),這表明了在云特征表示方面,基于CNN的特性與傳統(tǒng)手工制作的特性相比有著明顯優(yōu)勢(shì)。同時(shí),通過可視化手段將CNN各卷積層上學(xué)習(xí)到的特征直觀的展示出來,有助于理解CNN的學(xué)習(xí)過程,提高CNN的識(shí)別準(zhǔn)確率和應(yīng)用范圍。
地基云圖由于種類多、變化快、相似、易與天空背景融合等特點(diǎn),使得傳統(tǒng)人工提取特征的模式識(shí)別方法對(duì)地基云圖進(jìn)行分類時(shí),準(zhǔn)確性和穩(wěn)定性還有很大的提升空間。本文提出一種CNN進(jìn)行地基可見光云分類時(shí)云圖特征可視化方法,從可視化云圖特征驗(yàn)證了CNN進(jìn)行地基云圖識(shí)別的可行性和適用性,實(shí)驗(yàn)結(jié)果進(jìn)一步驗(yàn)證了CNN進(jìn)行地基云圖識(shí)別的有效性。該網(wǎng)絡(luò)的成功應(yīng)用,有助于對(duì)其他類型的圖像識(shí)別如自然場(chǎng)景識(shí)別等較為復(fù)雜的識(shí)別分類技術(shù)有借鑒參考意義。