陳文兵,管正雄,陳允杰
(南京信息工程大學(xué) 數(shù)學(xué)與統(tǒng)計學(xué)院,南京210044)(*通信作者電子郵箱zhengxguan@163.com)
卷積神經(jīng)網(wǎng)絡(luò)(Convolution Neural Network, CNN)是一種有監(jiān)督學(xué)習(xí)模型,在視覺處理和圖像分類中性能優(yōu)越[1-7]。 LeCun等[1]提出的LeNet-5網(wǎng)絡(luò)是CNN的最初模型,該模型采用基于梯度的反向傳播(Back Propagation, BP)算法對網(wǎng)絡(luò)進(jìn)行有監(jiān)督的訓(xùn)練;經(jīng)過訓(xùn)練的網(wǎng)絡(luò)通過交替連接的卷積層和下采樣層將原始圖像轉(zhuǎn)換成一系列的特征圖,再通過全連接層實現(xiàn)對圖像特征圖分類或識別,卷積層中的卷積核發(fā)揮人類視覺的感受野功能,卷積核將圖像的低級局部區(qū)域信息轉(zhuǎn)換成人類視覺的更高級形式。Krizhevsky等[2]提出一種AlexNet網(wǎng)絡(luò)架構(gòu),該架構(gòu)在大小為1 400萬張樣本、涵蓋2萬個類別的圖像數(shù)據(jù)集ImageNet上參加圖像分類競賽,它以準(zhǔn)確度超越第二名 11%的巨大優(yōu)勢奪得了2012年冠軍,這一驚人的成績引起了研究人員的普遍關(guān)注, 并使得CNN成為近年的研究熱點。Simonyan等[3]基于AlexNet針對CNN深度進(jìn)行了專門研究,并提出了VGGNet網(wǎng)絡(luò)架構(gòu),該網(wǎng)絡(luò)架構(gòu)的各卷積層均采用3×3的卷積核,通過對比基于不同深度網(wǎng)絡(luò)架構(gòu)的圖像分類性能,證明了增加網(wǎng)絡(luò)架構(gòu)的深度有助于提升圖像分類的準(zhǔn)確度。近年來,對CNN模型架構(gòu)的研究及應(yīng)用仍然在迅速發(fā)展之中,在模型架構(gòu)研究方面, GoogLeNet[4]、ResNet[5]等受到廣泛關(guān)注; 另一方面,由前述模型的訓(xùn)練、測試及分類應(yīng)用可以看出,良好性能的取得依賴于大規(guī)模圖像數(shù)據(jù)集的支撐,如LeNet-5采用的訓(xùn)練集是樣本數(shù)為60 000、分類標(biāo)簽個數(shù)為10的MNIST(Modified National Institute of Standards and Technology)數(shù)據(jù)集, AlexNet、VGGNet等均采用訓(xùn)練集大小為1 400萬張、涵蓋2萬個類別的ImageNet數(shù)據(jù)集進(jìn)行訓(xùn)練、測試。由此可見,訓(xùn)練集的規(guī)模對CNN性能發(fā)揮著至關(guān)重要的影響。
然而,在現(xiàn)實世界中由于受自然因素的影響和數(shù)據(jù)記錄條件的限制,得到大尺度有標(biāo)簽的數(shù)據(jù)集通常是不現(xiàn)實的,往往僅有少量的、帶標(biāo)簽的數(shù)據(jù)樣本。如某地區(qū)為了建立基于濃霧天氣形勢場的智能預(yù)報模型,由于天氣形勢場實際上就是一些等高線組成的紋理圖,霧型與紋理之間具有高度的關(guān)聯(lián)性,因此,利用CNN建模是解決這一問題的最佳選擇。然而,該地區(qū)僅記錄了2010年以來的天氣形勢圖及其對應(yīng)的出霧記錄,樣本集收集了386個樣本,對應(yīng)的霧型12類(即分類標(biāo)簽數(shù)12個)。若直接采用該樣本集訓(xùn)練CNN模型,則訓(xùn)練出的模型必然缺少泛化性[8],因此缺乏可信性及可靠性。 因此,在建立可信性及可靠性CNN模型之前,需要尋找一種可靠的擴(kuò)展數(shù)據(jù)樣本及多樣性的方法,即所謂的數(shù)據(jù)增強(qiáng)(Data Augmentation)方法。
在數(shù)據(jù)增強(qiáng)研究方面,Bjerrum等[9]通過使用仿射變換生成新樣本,將樣本和新樣本混合作為訓(xùn)練集輸入到神經(jīng)網(wǎng)絡(luò)中,訓(xùn)練完成后模型的分類結(jié)果誤差控制在0.35%以下。 Goodfellow等[10]提出的生成式對抗網(wǎng)絡(luò)(Generative Adversarial Net, GAN)是一種生成式模型, 其主要思想如下: 在結(jié)構(gòu)上受博弈論中的二人零和博弈 (即二人的利益之和為零, 一方的所得正是另一方的所失) 的啟發(fā), 由一個生成器G和一個判別器D構(gòu)成。G捕捉真實數(shù)據(jù)樣本的數(shù)學(xué)分布模型, 并由學(xué)習(xí)到的分布模型生成新的數(shù)據(jù)樣本;D是一個二值分類器,用處是判別輸入是真實數(shù)據(jù)還是生成的樣本。 二者不斷學(xué)習(xí),提高各自的生成能力和判別能力。Mirza等[11]提出條件生成式對抗網(wǎng)絡(luò)(Conditional Generative Adversarial Network, CGAN)模型,該模型是有條件控制的GAN,通過對生成器和判別器添加相同的條件Y(例如數(shù)據(jù)的標(biāo)簽),從而實現(xiàn)對GAN模型控制條件。目前有很多研究自動編碼器(AutoEncoder, AE)、變分自動編碼器(Variational AutoEncoder, VAE)結(jié)合GAN的工作[12-14],目的在于提升GAN生成圖像的真實性和多樣性。
將現(xiàn)有的數(shù)據(jù)增強(qiáng)算法如仿射變換、GAN等應(yīng)用于天氣形勢圖,實驗顯示生成的新數(shù)據(jù)集出現(xiàn)重復(fù)率高、多樣性低等問題,利用生成的數(shù)據(jù)集訓(xùn)練CNN模型,所訓(xùn)練模型分類的正確率仍不理想。 綜上,為了更好地解決天氣形勢圖問題,提出一種集成高斯混合模型(Gaussian Mixture Model, GMM)及CGAN模型的數(shù)據(jù)增強(qiáng)方法,該方法不僅生成類似樣本的新圖像,在提升生成樣本的多樣性方面與傳統(tǒng)方法相比有顯著改進(jìn)。
仿射變換是一種二維坐標(biāo)(x,y)到二維坐標(biāo)(u,v)的線性變換,其數(shù)學(xué)表達(dá)式如式(1):
(1)
式(1)中的系數(shù)矩陣被稱為仿射變換矩陣。其中:θ為圖像旋轉(zhuǎn)的角度,a為圖像平移的橫坐標(biāo)移動距離,b為圖像平移的縱坐標(biāo)移動距離。
Bjerrum等[9]提出了基于仿射變換(Affine Transformation)的數(shù)據(jù)增強(qiáng)方法,通過對樣本圖像進(jìn)行放大、縮小、平移、旋轉(zhuǎn)以實現(xiàn)生成類似樣本。實驗中,隨機(jī)生成x軸的位移為a,y軸的位移為b和旋轉(zhuǎn)角度為θ的仿射變換矩陣A,作用在輸入圖像x上,變換后的新圖像為Ax。 由于仿射變換是一種全局圖像變換,因而在聚焦于局部區(qū)域的多樣性方面該變換無法實現(xiàn)。
事實上,這個學(xué)習(xí)優(yōu)化過程是一個極小極大博弈(Minimax game)問題,即尋找二者之間的一個平衡點,如果達(dá)到該平衡點,D無法判斷數(shù)據(jù)來自G還是真實樣本,此時G達(dá)到最優(yōu)狀態(tài)。大量的實踐已經(jīng)證明可利用GAN解決訓(xùn)練集中樣本數(shù)量過少的問題,如Gurumurthy等[15]利用改進(jìn)的GAN增強(qiáng)小數(shù)據(jù)集以提升訓(xùn)練器的分類精度;王坤峰等[16]提出多個GAN衍生模型以增強(qiáng)數(shù)據(jù)集。
GAN的結(jié)構(gòu)如圖1所示,D和G分別表示判別器和生成器,它們的結(jié)構(gòu)都為CNN。D的輸入為真實數(shù)據(jù)x,輸出為1或0;G的輸入是一維隨機(jī)噪聲向量z,輸出是G(z)。訓(xùn)練的目標(biāo)是使得G(z)的分布盡可能接近真實數(shù)據(jù)的分布pdata。D的目標(biāo)是實現(xiàn)對輸入數(shù)據(jù)的二值分類,若輸入來源于真實樣本,則D的輸出為1;若輸入為G(z),則D的輸出為0。G的目標(biāo)是使自己生成的數(shù)據(jù)G(z)在D上的表現(xiàn)D(G(z)) 和真實數(shù)據(jù)x在D上的表現(xiàn)D(x)盡可能一致,G的損失函數(shù)按式(2)計算:
(2)
式(2)描述的是,G在不斷對抗學(xué)習(xí)的過程中,生成的數(shù)據(jù)G(z)越來越接近真實樣本,D對G(z)的判別也越來越模糊。D的損失函數(shù)按式(3)計算:
Ez~pz(ln (1-D(z))))
(3)
綜上,G和D的總體損失函數(shù)可以描述如式(4)所示:
Ez~pz(ln (1-D(z))))
(4)
傳統(tǒng)的GAN模型一次只能學(xué)習(xí)一類數(shù)據(jù),對于包含多個類的數(shù)據(jù)樣本集,需逐類學(xué)習(xí)及生成相應(yīng)類的被增強(qiáng)樣本集,因此,效率低是模型的主要缺陷。為了解決以上問題,Mirza等[11]提出了CGAN模型,CGAN的結(jié)構(gòu)如圖2所示。該模型通過對生成器和判別器添加相同的條件Y(例如:數(shù)據(jù)的標(biāo)簽),從而使GAN模型具有多類數(shù)據(jù)的生成能力。
圖1 GAN結(jié)構(gòu)示意圖
與傳統(tǒng)GAN對比,CGAN模型僅對前者的總體損失函數(shù)進(jìn)行了修改,新的總體損失函數(shù)如式(5):
Ez~pz(ln (1-D(z|Y))))
(5)
然而, GAN及CGAN在訓(xùn)練樣本過少的情況下,均存在G和D過早達(dá)到平衡點現(xiàn)象,致使G生成的數(shù)據(jù)重復(fù)度高,數(shù)據(jù)多樣性不足。
圖2 CGAN結(jié)構(gòu)示意圖
如前所述,生成器G通過單一分布描述訓(xùn)練數(shù)據(jù)樣本的分布,不難理解單一分布對樣本數(shù)據(jù)特征多樣性難以反映,其直接后果是訓(xùn)練的生成器G生成的數(shù)據(jù)樣本特征單一,難以達(dá)成樣本數(shù)據(jù)集增強(qiáng)的目的。而高斯混合模型(GMM)的實質(zhì)是利用m(m≥3)個正態(tài)分布來刻畫樣本整體的多樣性特征,通過訓(xùn)練學(xué)習(xí)后,建立由m個組件(即m個正態(tài)分布)構(gòu)成的混合分布模型。一方面多組件構(gòu)成的混合模型能夠更好地刻畫樣本的多樣性特征,另一方面這種數(shù)據(jù)特征的多樣性又受到每個組件的約束,使得混合模型生成的新樣本既具有多樣性又保持與原樣本之間特征的相似性?;诖耍瑸榱私鉀Q上述存在的問題,將GMM集成到CGAN模型進(jìn)而提出一種全新的GMM-CGAN數(shù)據(jù)增強(qiáng)框架,這個框架在理論上是可行的。
GAN中的生成器G的目標(biāo)是使得pdata(G(z))盡可能接近樣本分布,其中pdata(G(z))是描述G(z)的分布。 根據(jù)概率的乘法公式,pdata(G(z),z)可寫成一個已知的先驗分布密度函數(shù)pz(z),乘以pdata(G(z)|z),如式(6)所描述。 結(jié)合前面的分析,通過提升先驗分布的多樣性,從而提升G(z)的多樣性,達(dá)到生成樣本多樣性的目的。 首先,假設(shè)先驗分布的密度函數(shù)pz(z)是有m個組件GMM,如式(7),同時假設(shè)每個高斯組件的協(xié)方差矩陣為對角陣。
(6)
(7)
其中N(x;μi,σi)表示高斯混合模型的概率密度函數(shù),具體形式如式(8),在GAN訓(xùn)練的過程中,由于參數(shù)πi不能被優(yōu)化,設(shè)πi=1/m以簡化計算:
(8)
接著,利用Kingma等[12]提出的重復(fù)調(diào)參技術(shù)(Reparameterization trick)生成服從先驗分布的一維隨機(jī)噪聲向量z,z如式(9)計算:
z=μi+σiδ;δ~N(0,1)
(9)
其中:μi、σi為第i個高斯組件的均值和標(biāo)準(zhǔn)差。 重復(fù)調(diào)參技術(shù)優(yōu)點在于:可將高斯組件的參數(shù)看作為網(wǎng)絡(luò)參數(shù)的一部分進(jìn)而與網(wǎng)絡(luò)參數(shù)一起訓(xùn)練及優(yōu)化。
綜合式(6)、(7)、(9),可導(dǎo)出式(10):
(10)
式(10)中,u=[u1,u2,…,uN]T,σ=[σ1,σ2,…,σN]T,m為高斯組件個數(shù),N為z的維度。高斯組件個數(shù)與生成樣本多樣性密切相關(guān),實驗分析表明,當(dāng)m在[20,30]內(nèi)變化時,生成的樣本效果較好。為了防止在實驗中σ的值變?yōu)?,在生成器G的損失函數(shù)中添加關(guān)于σ的L2正則化項,修改后的生成器損失函數(shù)如式(11):
(11)
GMM-CGAN模型結(jié)構(gòu)如圖3所示。 GMM-CGAN的參數(shù)需初始化,由于對應(yīng)于不同Y條件(樣本的標(biāo)簽)的數(shù)據(jù)分布不相同的,因此,對于每一Y條件需要對μ,σ向量初始化,令μi~U(-1,1),σi∈(0,1),其中U(-1,1)表示區(qū)間(-1,1)上的均勻分布,標(biāo)準(zhǔn)差(0,1)區(qū)間上隨機(jī)選取。
圖3 GMM-CGAN結(jié)構(gòu)示意圖
參數(shù)μ、σ按上述方法初始化后,令z=μk+σkδ,δ~N(0,1),k按照順序從1到m取值,將z輸入G進(jìn)入CGAN的訓(xùn)練程序,從而達(dá)到逐個訓(xùn)練、優(yōu)化高斯組件參數(shù)μk、σk,k∈(1,m)的目的。
在CGAN被訓(xùn)練后,利用G生成新的樣本,步驟如下:
1)選定需生成樣本的標(biāo)簽;
2)在該標(biāo)簽下從μ、σ向量中任選一對分量μh、σh,h∈(1,m),并計算z=μh+σhδ,δ~N(0,1);
3)將z輸入生成器G后,即為生成的新樣本G(z);
重復(fù)1)~3),即可生成需要更具多樣性的被增強(qiáng)的數(shù)據(jù)樣本集。
3.1.1 濃霧天氣形勢圖
江蘇省氣象科學(xué)研究所整理收集了自2010年以來所有霧型天氣形勢圖,霧型個例77個,每個霧型個例由記錄一個完整成霧過程的若干幅天氣形勢圖組成,一般由4~5張紋理類似、尺寸為1 600×1 500圖像組成。氣象工作人員根據(jù)霧型將這77個例分為12類別。然而,深入分析這12個霧型類別對應(yīng)的天氣形勢圖發(fā)現(xiàn),即使兩個個例同屬于一個類別,不同個例的形勢圖紋理間的差異性卻很大,故樣本的標(biāo)簽不能以類別進(jìn)行標(biāo)記,而以個例標(biāo)記更為適當(dāng),采用77個分類的one-hot編碼編制樣本標(biāo)簽。在這樣的編碼機(jī)制下,每個類中有至少4張形勢圖,由于在首個歷時及最后的歷時天氣形勢圖未入型,故剔除首尾歷時未入型圖后構(gòu)成對應(yīng)個例的樣本集。通過這樣的預(yù)處理后,樣本數(shù)據(jù)集中樣本數(shù)為386,標(biāo)簽類別數(shù)為77。對樣本集按標(biāo)準(zhǔn)的70%對30%隨機(jī)劃分,分割后訓(xùn)練集樣本個數(shù)為231,測試集樣本個數(shù)為155。
3.1.2 MNIST
MNIST[1]是機(jī)器學(xué)習(xí)的常用數(shù)據(jù)集,它由數(shù)字0~ 9共計10類別6 000張手寫數(shù)字圖像組成。從每個類別中隨機(jī)抽取50張,可以得到樣本數(shù)為500的子集。對這樣的數(shù)據(jù)集按標(biāo)準(zhǔn)的70%對30%隨機(jī)分割,將樣本個數(shù)為350的數(shù)據(jù)集作為訓(xùn)練集,樣本個數(shù)為150的數(shù)據(jù)集作為測試集。
3.1.3 CIFAR 10
CIFAR 10是另外一個機(jī)器學(xué)習(xí)的常用數(shù)據(jù)集, 它由10個類別,每個類別6 000張圖,共計60 000張彩色圖像組成。實驗中將所有圖像進(jìn)行灰度化預(yù)處理,從每個類別中隨機(jī)抽取50張圖像,可以得到樣本數(shù)為500張灰度圖像的子集。對樣本數(shù)為500張圖像的子集,按70%對30%隨機(jī)分割,將樣本個數(shù)為350的數(shù)據(jù)集作為訓(xùn)練集,樣本個數(shù)為150的數(shù)據(jù)集作為測試集。
將樣本中影響CNN分類的關(guān)鍵區(qū)域稱為核心區(qū)域。在樣本個數(shù)較少時,通過滑動圍繞核心區(qū)域的窗口反復(fù)重采樣以實現(xiàn)數(shù)據(jù)的初步增強(qiáng)。