陳文兵,管正雄,陳允杰
(南京信息工程大學 數學與統計學院,南京210044)(*通信作者電子郵箱zhengxguan@163.com)
卷積神經網絡(Convolution Neural Network, CNN)是一種有監(jiān)督學習模型,在視覺處理和圖像分類中性能優(yōu)越[1-7]。 LeCun等[1]提出的LeNet-5網絡是CNN的最初模型,該模型采用基于梯度的反向傳播(Back Propagation, BP)算法對網絡進行有監(jiān)督的訓練;經過訓練的網絡通過交替連接的卷積層和下采樣層將原始圖像轉換成一系列的特征圖,再通過全連接層實現對圖像特征圖分類或識別,卷積層中的卷積核發(fā)揮人類視覺的感受野功能,卷積核將圖像的低級局部區(qū)域信息轉換成人類視覺的更高級形式。Krizhevsky等[2]提出一種AlexNet網絡架構,該架構在大小為1 400萬張樣本、涵蓋2萬個類別的圖像數據集ImageNet上參加圖像分類競賽,它以準確度超越第二名 11%的巨大優(yōu)勢奪得了2012年冠軍,這一驚人的成績引起了研究人員的普遍關注, 并使得CNN成為近年的研究熱點。Simonyan等[3]基于AlexNet針對CNN深度進行了專門研究,并提出了VGGNet網絡架構,該網絡架構的各卷積層均采用3×3的卷積核,通過對比基于不同深度網絡架構的圖像分類性能,證明了增加網絡架構的深度有助于提升圖像分類的準確度。近年來,對CNN模型架構的研究及應用仍然在迅速發(fā)展之中,在模型架構研究方面, GoogLeNet[4]、ResNet[5]等受到廣泛關注; 另一方面,由前述模型的訓練、測試及分類應用可以看出,良好性能的取得依賴于大規(guī)模圖像數據集的支撐,如LeNet-5采用的訓練集是樣本數為60 000、分類標簽個數為10的MNIST(Modified National Institute of Standards and Technology)數據集, AlexNet、VGGNet等均采用訓練集大小為1 400萬張、涵蓋2萬個類別的ImageNet數據集進行訓練、測試。由此可見,訓練集的規(guī)模對CNN性能發(fā)揮著至關重要的影響。
然而,在現實世界中由于受自然因素的影響和數據記錄條件的限制,得到大尺度有標簽的數據集通常是不現實的,往往僅有少量的、帶標簽的數據樣本。如某地區(qū)為了建立基于濃霧天氣形勢場的智能預報模型,由于天氣形勢場實際上就是一些等高線組成的紋理圖,霧型與紋理之間具有高度的關聯性,因此,利用CNN建模是解決這一問題的最佳選擇。然而,該地區(qū)僅記錄了2010年以來的天氣形勢圖及其對應的出霧記錄,樣本集收集了386個樣本,對應的霧型12類(即分類標簽數12個)。若直接采用該樣本集訓練CNN模型,則訓練出的模型必然缺少泛化性[8],因此缺乏可信性及可靠性。 因此,在建立可信性及可靠性CNN模型之前,需要尋找一種可靠的擴展數據樣本及多樣性的方法,即所謂的數據增強(Data Augmentation)方法。
在數據增強研究方面,Bjerrum等[9]通過使用仿射變換生成新樣本,將樣本和新樣本混合作為訓練集輸入到神經網絡中,訓練完成后模型的分類結果誤差控制在0.35%以下。 Goodfellow等[10]提出的生成式對抗網絡(Generative Adversarial Net, GAN)是一種生成式模型, 其主要思想如下: 在結構上受博弈論中的二人零和博弈 (即二人的利益之和為零, 一方的所得正是另一方的所失) 的啟發(fā), 由一個生成器G和一個判別器D構成。G捕捉真實數據樣本的數學分布模型, 并由學習到的分布模型生成新的數據樣本;D是一個二值分類器,用處是判別輸入是真實數據還是生成的樣本。 二者不斷學習,提高各自的生成能力和判別能力。Mirza等[11]提出條件生成式對抗網絡(Conditional Generative Adversarial Network, CGAN)模型,該模型是有條件控制的GAN,通過對生成器和判別器添加相同的條件Y(例如數據的標簽),從而實現對GAN模型控制條件。目前有很多研究自動編碼器(AutoEncoder, AE)、變分自動編碼器(Variational AutoEncoder, VAE)結合GAN的工作[12-14],目的在于提升GAN生成圖像的真實性和多樣性。
將現有的數據增強算法如仿射變換、GAN等應用于天氣形勢圖,實驗顯示生成的新數據集出現重復率高、多樣性低等問題,利用生成的數據集訓練CNN模型,所訓練模型分類的正確率仍不理想。 綜上,為了更好地解決天氣形勢圖問題,提出一種集成高斯混合模型(Gaussian Mixture Model, GMM)及CGAN模型的數據增強方法,該方法不僅生成類似樣本的新圖像,在提升生成樣本的多樣性方面與傳統方法相比有顯著改進。
仿射變換是一種二維坐標(x,y)到二維坐標(u,v)的線性變換,其數學表達式如式(1):

(1)
式(1)中的系數矩陣被稱為仿射變換矩陣。其中:θ為圖像旋轉的角度,a為圖像平移的橫坐標移動距離,b為圖像平移的縱坐標移動距離。
Bjerrum等[9]提出了基于仿射變換(Affine Transformation)的數據增強方法,通過對樣本圖像進行放大、縮小、平移、旋轉以實現生成類似樣本。實驗中,隨機生成x軸的位移為a,y軸的位移為b和旋轉角度為θ的仿射變換矩陣A,作用在輸入圖像x上,變換后的新圖像為Ax。 由于仿射變換是一種全局圖像變換,因而在聚焦于局部區(qū)域的多樣性方面該變換無法實現。
事實上,這個學習優(yōu)化過程是一個極小極大博弈(Minimax game)問題,即尋找二者之間的一個平衡點,如果達到該平衡點,D無法判斷數據來自G還是真實樣本,此時G達到最優(yōu)狀態(tài)。大量的實踐已經證明可利用GAN解決訓練集中樣本數量過少的問題,如Gurumurthy等[15]利用改進的GAN增強小數據集以提升訓練器的分類精度;王坤峰等[16]提出多個GAN衍生模型以增強數據集。
GAN的結構如圖1所示,D和G分別表示判別器和生成器,它們的結構都為CNN。D的輸入為真實數據x,輸出為1或0;G的輸入是一維隨機噪聲向量z,輸出是G(z)。訓練的目標是使得G(z)的分布盡可能接近真實數據的分布pdata。D的目標是實現對輸入數據的二值分類,若輸入來源于真實樣本,則D的輸出為1;若輸入為G(z),則D的輸出為0。G的目標是使自己生成的數據G(z)在D上的表現D(G(z)) 和真實數據x在D上的表現D(x)盡可能一致,G的損失函數按式(2)計算:
(2)
式(2)描述的是,G在不斷對抗學習的過程中,生成的數據G(z)越來越接近真實樣本,D對G(z)的判別也越來越模糊。D的損失函數按式(3)計算:
Ez~pz(ln (1-D(z))))
(3)
綜上,G和D的總體損失函數可以描述如式(4)所示:

Ez~pz(ln (1-D(z))))
(4)
傳統的GAN模型一次只能學習一類數據,對于包含多個類的數據樣本集,需逐類學習及生成相應類的被增強樣本集,因此,效率低是模型的主要缺陷。為了解決以上問題,Mirza等[11]提出了CGAN模型,CGAN的結構如圖2所示。該模型通過對生成器和判別器添加相同的條件Y(例如:數據的標簽),從而使GAN模型具有多類數據的生成能力。

圖1 GAN結構示意圖
與傳統GAN對比,CGAN模型僅對前者的總體損失函數進行了修改,新的總體損失函數如式(5):

Ez~pz(ln (1-D(z|Y))))
(5)
然而, GAN及CGAN在訓練樣本過少的情況下,均存在G和D過早達到平衡點現象,致使G生成的數據重復度高,數據多樣性不足。

圖2 CGAN結構示意圖
如前所述,生成器G通過單一分布描述訓練數據樣本的分布,不難理解單一分布對樣本數據特征多樣性難以反映,其直接后果是訓練的生成器G生成的數據樣本特征單一,難以達成樣本數據集增強的目的。而高斯混合模型(GMM)的實質是利用m(m≥3)個正態(tài)分布來刻畫樣本整體的多樣性特征,通過訓練學習后,建立由m個組件(即m個正態(tài)分布)構成的混合分布模型。一方面多組件構成的混合模型能夠更好地刻畫樣本的多樣性特征,另一方面這種數據特征的多樣性又受到每個組件的約束,使得混合模型生成的新樣本既具有多樣性又保持與原樣本之間特征的相似性。基于此,為了解決上述存在的問題,將GMM集成到CGAN模型進而提出一種全新的GMM-CGAN數據增強框架,這個框架在理論上是可行的。
GAN中的生成器G的目標是使得pdata(G(z))盡可能接近樣本分布,其中pdata(G(z))是描述G(z)的分布。 根據概率的乘法公式,pdata(G(z),z)可寫成一個已知的先驗分布密度函數pz(z),乘以pdata(G(z)|z),如式(6)所描述。 結合前面的分析,通過提升先驗分布的多樣性,從而提升G(z)的多樣性,達到生成樣本多樣性的目的。 首先,假設先驗分布的密度函數pz(z)是有m個組件GMM,如式(7),同時假設每個高斯組件的協方差矩陣為對角陣。
(6)
(7)
其中N(x;μi,σi)表示高斯混合模型的概率密度函數,具體形式如式(8),在GAN訓練的過程中,由于參數πi不能被優(yōu)化,設πi=1/m以簡化計算:
(8)
接著,利用Kingma等[12]提出的重復調參技術(Reparameterization trick)生成服從先驗分布的一維隨機噪聲向量z,z如式(9)計算:
z=μi+σiδ;δ~N(0,1)
(9)
其中:μi、σi為第i個高斯組件的均值和標準差。 重復調參技術優(yōu)點在于:可將高斯組件的參數看作為網絡參數的一部分進而與網絡參數一起訓練及優(yōu)化。
綜合式(6)、(7)、(9),可導出式(10):
(10)
式(10)中,u=[u1,u2,…,uN]T,σ=[σ1,σ2,…,σN]T,m為高斯組件個數,N為z的維度。高斯組件個數與生成樣本多樣性密切相關,實驗分析表明,當m在[20,30]內變化時,生成的樣本效果較好。為了防止在實驗中σ的值變?yōu)?,在生成器G的損失函數中添加關于σ的L2正則化項,修改后的生成器損失函數如式(11):

(11)
GMM-CGAN模型結構如圖3所示。 GMM-CGAN的參數需初始化,由于對應于不同Y條件(樣本的標簽)的數據分布不相同的,因此,對于每一Y條件需要對μ,σ向量初始化,令μi~U(-1,1),σi∈(0,1),其中U(-1,1)表示區(qū)間(-1,1)上的均勻分布,標準差(0,1)區(qū)間上隨機選取。

圖3 GMM-CGAN結構示意圖
參數μ、σ按上述方法初始化后,令z=μk+σkδ,δ~N(0,1),k按照順序從1到m取值,將z輸入G進入CGAN的訓練程序,從而達到逐個訓練、優(yōu)化高斯組件參數μk、σk,k∈(1,m)的目的。
在CGAN被訓練后,利用G生成新的樣本,步驟如下:
1)選定需生成樣本的標簽;
2)在該標簽下從μ、σ向量中任選一對分量μh、σh,h∈(1,m),并計算z=μh+σhδ,δ~N(0,1);
3)將z輸入生成器G后,即為生成的新樣本G(z);
重復1)~3),即可生成需要更具多樣性的被增強的數據樣本集。
3.1.1 濃霧天氣形勢圖
江蘇省氣象科學研究所整理收集了自2010年以來所有霧型天氣形勢圖,霧型個例77個,每個霧型個例由記錄一個完整成霧過程的若干幅天氣形勢圖組成,一般由4~5張紋理類似、尺寸為1 600×1 500圖像組成。氣象工作人員根據霧型將這77個例分為12類別。然而,深入分析這12個霧型類別對應的天氣形勢圖發(fā)現,即使兩個個例同屬于一個類別,不同個例的形勢圖紋理間的差異性卻很大,故樣本的標簽不能以類別進行標記,而以個例標記更為適當,采用77個分類的one-hot編碼編制樣本標簽。在這樣的編碼機制下,每個類中有至少4張形勢圖,由于在首個歷時及最后的歷時天氣形勢圖未入型,故剔除首尾歷時未入型圖后構成對應個例的樣本集。通過這樣的預處理后,樣本數據集中樣本數為386,標簽類別數為77。對樣本集按標準的70%對30%隨機劃分,分割后訓練集樣本個數為231,測試集樣本個數為155。
3.1.2 MNIST
MNIST[1]是機器學習的常用數據集,它由數字0~ 9共計10類別6 000張手寫數字圖像組成。從每個類別中隨機抽取50張,可以得到樣本數為500的子集。對這樣的數據集按標準的70%對30%隨機分割,將樣本個數為350的數據集作為訓練集,樣本個數為150的數據集作為測試集。
3.1.3 CIFAR 10
CIFAR 10是另外一個機器學習的常用數據集, 它由10個類別,每個類別6 000張圖,共計60 000張彩色圖像組成。實驗中將所有圖像進行灰度化預處理,從每個類別中隨機抽取50張圖像,可以得到樣本數為500張灰度圖像的子集。對樣本數為500張圖像的子集,按70%對30%隨機分割,將樣本個數為350的數據集作為訓練集,樣本個數為150的數據集作為測試集。
將樣本中影響CNN分類的關鍵區(qū)域稱為核心區(qū)域。在樣本個數較少時,通過滑動圍繞核心區(qū)域的窗口反復重采樣以實現數據的初步增強。