劉田豐 馬 力
(西安郵電大學數字藝術學院 西安 710061)
訓練一個較好的深度學習圖像分類模型通常需要大量的訓練樣本圖片作為支撐。然而獲取這些圖片往往需要耗費許多的人力與資源。如果將一張訓練樣本重復使用,極容易造成過擬合現象,導致模型的泛化能力變差。因此,在將訓練集投入模型之前對其進行數據增強從而增加數據集的規模,是一個解決該問題的有效方法[10],傳統的數據增強技術有旋轉、剪切、改變色差[18]及增加噪聲[16]等。近年來隨著機器學習領域中對圖像生成方法研究的逐漸深入,在訓練集中加入生成圖像也成為了一種新興數據增強的方法,得到不錯的效果[15]。
本文提出一種基于對抗式生成網絡的圖像生成方法來進行手勢識別系統中的訓練數據增強,使用少量的樣本通過對抗訓練的方式生成新的手勢圖片,用來作為測試集進行手勢識別模型訓練。實驗結果表明,使用模型生成的手勢圖片代替真實圖片進行手勢識別訓練,可以達到和后者相似的效果。
現代圖像生成方法的主要工作是訓練穩定的生成式模型,即構建一個從隱含變量z 生成目標數據X 的模型[13]。假設z 服從某些常見的分布,訓練一個模型X=G(z),利用貝葉斯公式實現分布變換,將z的分布映射到訓練集的分布:

式中p(z)為隱含變量z 的分布,p(z|X)為生成樣本可能的分布。經過生成式模型的映射,得到生成后的樣本y?=p(z|X),通過計算生成樣本與目標數據的相似性,從而對模型進行改進優化。近年來,從高維數據分布生成新樣本的方法被廣泛使用,主要有基于變分自動編碼器和基于對抗式生成網絡兩大類別。
自動編碼器是一種數據壓縮算法,由編碼器進行數據壓縮(特征提取)。2014 年Kingma、Welling提出的變分自動編碼器[9](Variational Auto-Encoder,VAE),在傳統自編碼器的結構上,使用兩個編碼器,一個計算均值μ,一個計算方差σ2,并在損失函數中增加KL散度項來進行模型的優化。輸入目的樣本X,經過編碼器采樣計算得到采樣Z,經過解碼器得到生成樣本X?,通過對比X?和X 進行迭代優化,減小重構誤差,使得生成樣本與目標樣本盡可能相似。交叉熵度量的總損失函數如式(2)所示。

VAE 模型結構簡單,易于訓練,在對復雜分布的均值方差難以計算的問題上使用神經網絡來進行擬合,巧妙地解決了生成樣本和目標樣本之間難以度量的問題。然而由于編碼器是以對編碼加過加上高斯噪聲z 的方式工作,使得它所生成的圖像較為模糊,限制了該方法的適用性。
2014年Goodfellow提出對抗式生成網絡模型[1](Generative Adversarial Networks,GANs),通過使判別模型(Discriminative Model)和生成模型(Generative Model)進行“二元極大極小博弈”的方式來進行對抗學習,生成模型需要以生成能夠令判別模型判別為真的樣本為優化目標,判別模型則需要以盡可能準確地判別樣本真偽為優化目標,當極大極小博弈達到了“納什均衡”時,模型的生成效果達到最好[6]。GANs模型的結構原理圖如圖1所示。

圖1 對抗式生成網絡模型結構
GANs的數學模型如式(3)所示,其中G 表示生成網絡(Generative Network),D 表示判別網絡(Discriminative Network)。GANs 模型的判別網絡D 使用真實樣本X 作為訓練數據,通過提取真實樣本的特征訓練一個真偽二分類器[11];生成網絡G 則使用服從某些特定分布的噪聲Z,通過生成網絡進行分布變換,將輸入空間映射到樣本空間,得到生成樣本X?,將X?送入判別網絡進行分類,負責使生成樣本與真實樣本之間的差距盡可能小。

GANs模型的總優化目標函數如式(4)所示[13],是一個二元非凸最優化問題,前一項為判別網絡優化目標,后一項為生成網絡優化目標。

近年來隨著對抗式生成網絡的提出和不斷發展[17],許多基于該網絡的諸如生成花鳥[5]、人臉[3]、桌椅[4]等圖像生成任務、圖像風格化任務[14]和超分辨率還原任務[7]已經實現并獲得較好的效果。
本文提出一種基于GAN 的圖像生成方法實現手勢數據增強。采用文獻[2]中提出的深度卷積對抗式生成網絡為基礎,采用隨機梯度下降法(Stochastic Gradient Descent,SGD)進行優化,使用學習率衰減的方式提升模型的前期收斂速度及后期表征能力。算法流程如下。


判別網絡采用六層的卷積神經網絡,其模型結構如表1所示。判別網絡的輸入為126×126像素的RGB 圖片[11]。經過5 次2D 卷積進行特征提取后將所得特征圖拉長為8192 維向量,使用在(-1,1)區間內取值變化明顯的sigmoid 函數進行真偽二分類[8]。在判別網絡全局取消池化層、用以減少特征損失,并在第二層以后增加批歸一化操作(Batch Normalization)用以解決多層神經網絡在反向傳播中易出現的梯度消失問題,減少過擬合情況發生。除輸出層外,全局采用leaky=0.2 的ReLU 激活函數。

表1 判別網絡模型

表2 生成網絡模型
與判別網絡相對應,生成網絡采用六層轉置卷積神經網絡進行特征展開。其模型結構如表2 所示。生成網絡將輸入100 維噪聲投影到8192 維特征向量并進行變形后,作為轉置卷積的輸入進行逐層展開,每層與判別網絡中的尺寸相對應,最終輸出為一張126×126 像素的RGB 圖片。生成網絡同樣在全局使用ReLU 集火函數并增加批歸一化操作,在輸出層采用能夠保持非線性單調上升或下降的的tanh激活函數,使得生成的圖像在色調分布上更加平緩。
訓練手勢樣本集為American Sign Language(ASL)靜態手勢數據庫,該數據集采用Kinect 深度攝像頭對不同5 個人分別采集共24 種手勢靜態圖片和深度圖片總計約60000 張。本文實驗采用其中a~i的8種手勢作為訓練樣本。

圖2 ASL手勢數據庫中,a~i手勢部分圖片
經過200 個epoch 的迭代后生成模型趨于穩定,生成效果如圖3所示。

圖3 手勢生成樣本
在手勢e 訓練過程中,判別網絡與生成網絡的損失函數變化曲線如圖4 所示(數據和圖像來自于Tensorboard[12])。由圖像可知,D_loss 在不斷下降并趨于穩定,說明D 網絡的擬合能力在上升。G_loss 雖然震蕩幅度較大,但最終在不斷上升,1-G_loss 趨于穩定,說明G 網絡的擬合能力也在上升。結合兩者可以看出,判別網絡與生成網絡在進行互相博弈,互相促進性能提升,最終逐漸趨于納什平衡。

圖4 200個epoch后D_loss(上)和G_loss(下)曲線
針對八種手勢,設計一組對照實驗用以驗證生成圖像的有效性:
1)使用ASL 中真實樣本每種1000 份作為訓練集。
2)使用ASL 中真實樣本每種500 份,生成樣本每種500份作訓練集。
3)使用生成樣本每種各1000份作為訓練集。
使用ASL 數據集中剩余真實樣本每種各100份作為測試樣本。
上述三個實驗均使用LeNet網絡迭代20000 次后的模型進行測試。測試結果如表3 所示,可以看出使用混合樣本作為訓練集時候得到的模型表現能力和使用真實樣本的訓練集相似甚至更好。

表3 混合樣本手勢識別結果
使用混合樣本進行手勢識別時的識別結果混淆矩陣如圖5 所示。可以看出對于區分度較大的手勢,樣本生成效果較好,實驗識別率也較高。對于一些細節上比較相似導致難以區分的,則預測錯誤的幾率也相對較大。因此如何生成細節上更容易區分的手勢是需要進一步解決的問題。

圖5 混合樣本手勢識別混淆矩陣
本文首先對如今兩種主流圖像生成算法進行研究與測試,選擇基于GAN 的方法設計了手勢圖像生成器,并使用ASL數據集作為樣本進行生成訓練。最后使用LeNet 設計了一組對照實驗對生成效果進行檢驗,實驗證明生成的手勢圖片可以替代真實樣本作為訓練集,達到了數據增強的目的。