張哲新,原俊青,郭歡磊,何熊熊,吳安鵬,丁佳駿
1(浙江工業(yè)大學 理學院,杭州 310014) 2(浙江工業(yè)大學 信息學院,杭州 310014) 3(杭州電子科技大學 計算機學院,杭州 310018)
在過去的幾年內,深度學習方面的研究取得了長足的進展.深度學習算法的核心是構建一個具有深層結構的神經網絡,從輸入數(shù)據中提取并分析特征,以適應各種各樣的下游任務.隨著任務需求的變化,深度置信網絡(Deep belief network,DBN)、卷積神經網絡[1](Convolutional Neural Networks,CNNs)等各式各樣的網絡模型不斷涌現(xiàn)[2].其研究結果被應用到生活中的許多方面,例如語音識別,文本翻譯,人臉識別,智能監(jiān)控,自動駕駛,智慧城市等,極大地提升了各行各業(yè)的工作效率.
計算機視覺領域是深度學習應用的主要方向之一,其原因在于相對結構化的高維圖像數(shù)據更容易實現(xiàn)數(shù)據的特征提取,進而能更好地配合下游任務.深度學習在計算機視覺方面一個典型的應用場景是在廣域圖像大數(shù)據集ImageNet[3]上進行的圖像分類(Image classify)問題,在深度卷積網絡[4]的基礎上,許多學者設計了多種不同的網絡結構來處理這一問題,Kaiming等[5]設計了整流神經網絡(Rectifier neural networks),通過可變的激活函數(shù)來限制圖像分類中的過度擬合現(xiàn)象;Rastegari等[6]設計了同或卷積網絡(XNOR neural networks),通過二值化權重層在提高訓練中的空間利用率的同時取得更好的訓練效率.
在后續(xù)的研究中,部分學者開始不再滿足于基于圖像的模式識別,轉而開始研究如何將低維信號還原成圖像;然而高效地生成高仿真度的圖像需要對原始圖像的特征值具有更加精準的把握.2014年,Ian Goodfellow[7]創(chuàng)造性地提出了生成對抗網絡(Generative Adversarial Networks,GANs).生成對抗網絡是一種由生成器與判別器組成的神經網絡架構,以判別器的判別結果作為生成器的損失函數(shù),交替訓練優(yōu)化.迄今為止,GAN在圖像生成方面取得了相當優(yōu)秀的成果.Yang G等[8]利用GAN對具有特殊噪聲的磁共振(MRI)圖像執(zhí)行重建,在觀測過程中以更高的容錯率期望減少觀測成本,取得了優(yōu)秀的成效.
近年來,在GAN架構的基礎上,涌現(xiàn)出了一系列神經網絡變體.其中,譜歸一生成對抗網絡結構(Spectral Normalization GAN,SNGAN)是一種較新穎的網絡架構,最早由Takeru Miyato[9]提出,相關實驗表明,SNGAN在圖像還原方面效果顯著.SNGAN通過在卷積神經網絡中加入譜歸一化層,限制訓練過程中的梯度回傳,在理論層面避免了通常意義上的“梯度爆炸”問題,從而獲得優(yōu)秀的訓練結果.
本文基于SNGAN網絡結構,建立了利用獨立分布式訓練的多判別器協(xié)同架構Multi-SNGAN.并通過實驗與其他常用網絡結構進行了對比.
生成對抗網絡由生成器網絡G與判別器網絡D構成,生成器可以通過表征向量生成仿真樣本,一同與真實樣本輸入判別器,判別器分析仿真樣本和真實樣本真假的概率,反饋生成器,從而達到兩者相互對抗、共同學習、共同優(yōu)化的目的.生成對抗網絡在數(shù)據生成的領域中效果顯著.一個非常好的例子是康云云等[10]將GAN架構(如圖1所示)應用于LSTM模型上,構建了法律文書生成系統(tǒng).此外,GAN也被廣泛用于醫(yī)學圖像重建[11]、人臉還原[12]等方面.
以圖像生成這一應用情景為例:生成器接受滿足一定分布特征的隨機信號,生成圖片樣本;而判別器同時接受真實圖片與仿真圖片,判別輸入圖片的真實性.隨后該判斷被反饋至生成器,用于訓練生成器以生成更加逼真的圖片,期望判別器難以分辨真實圖片與仿真圖片.
圖1 經典GAN網絡結構圖Fig.1 Classical GAN structure
記樣本集{x1,x2,x3,…,xn}~P,與給定真實樣噪聲集{z1,z3,z3,…,zn}~Pz,其中Pz為預先確定的分布,P為樣本集滿足的未知分布.記生成器的輸入為z,輸出的 “假” 數(shù)據可表示為G(z).判別器的輸入對真假數(shù)據分別輸出一個一維標量,代表輸入為真的概率,分別記為D(x)與D(G(z)).生成器和判別器進行極大極小博弈,網絡優(yōu)化過程目標函數(shù)為:
(1)
理想情況:
(2)
其全局最優(yōu)解為:
z~PzG(z)=P
(3)
在實際訓練過程中,生成器與判別器的訓練過程是交替進行的,更新一方的參數(shù)時,另一方的參數(shù)固定住不更新.在兩者彼此交替的過程中,生成器與判別器同時逐步向全局最優(yōu)解靠近.
在圖像識別的網絡訓練過程中,隨著神經網絡的層數(shù)疊加,梯度爆炸和梯度衰減等梯度現(xiàn)象是影響網絡識別率下降的主要原因之一[13].譜歸一生成對抗網絡架構(Spectral Normalization GAN,SNGAN)是一個新近提出的,基于譜歸一化操作構建,以解決上述問題為目標的架構.SNGAN網絡結構如表1所示.
表1 SNGAN網絡結構Table 1 Network structure of SNGAN
經典CNN的結構中,一個層一般由一個卷積層與一個歸一化層(Normalize Layer)復合構成.目前的大多數(shù)神經網絡采用的歸一化層是Sergey Ioffe 等[14]于2015年提出的Batch Normalize,即對于每一組傳入歸一化層的梯度,輸出:
(4)
Batch Normalize雖然在一定程度上鈍化了在訓練過程中偶爾會出現(xiàn)的極端梯度值,減少了隨機性對訓練過程的影響,但是Batch Normalize的效果受限于每組數(shù)據的分布.在神經網絡訓練多代之后,整組數(shù)據的方差非常小,而極端值仍有可能出現(xiàn),此時Batch Normalize也無能為力.針對這一問題,Arjovsky 等[15]提出了Wasserstein GAN(WGAN),通過直接設定梯度上限并剪裁梯度的方式使得梯度反向傳播過程滿足Lipschitz連續(xù)條件,略微優(yōu)化了神經網絡的效果.然而,簡單地剪裁梯度雖然有效避免了梯度爆炸,卻同時損壞了梯度回傳過程中產生的信息完整性.
我們知道,一個典型的前饋神經網絡可以被抽象為一個函數(shù):
f(x,θ)=WL+1aL(WLaL-1(WL-1aL-2(…a1(W1x)…)))
(5)
其中θ為網絡超參數(shù)集,W是各層可優(yōu)化的網絡參數(shù),an是對應第n層的激活函數(shù).
SNGAN的特點是以其獨創(chuàng)的譜歸一化層替換傳統(tǒng)網絡中的歸一化層,在反向傳播過程中對矩陣進行譜歸一化(處理,使得層與層之間的梯度傳遞過程始終滿足Lipschitz連續(xù)條件.為了避免隨著神經網絡的逐層前饋誤差逐漸增加而引起梯度爆炸,我們需要令:
‖f‖Lip≤1
(6)
顯然傳統(tǒng)的Batch Normalize不能滿足這個條件,故我們采用Spectral Normalize替換之,即:
(7)
其中σ(W)為矩陣W的譜歸一化值,即:
(8)
由(7)式,對于任何層的抽象函數(shù)gn(x):=xWnan(x),有‖g‖Lip≤1,進而由Lipschitz連續(xù)的傳遞性,我們可以保證‖f‖Lip≤1.
譜歸一化處理將每組數(shù)據對權值產生的影響限制在一個小范圍內,使用多次少量更新權值的方法訓練神經網絡,使得訓練過程自始至終保持平滑,偶發(fā)性的極端數(shù)據的影響降到了最小.
Zhao J等[16]提出的能基生成對抗網絡(Energy-Based GAN,EBGAN)是在原始的GAN的基礎上,通過改變訓練過程中的損失函數(shù)方式而產生的新的GAN架構.架構中的判別器抽象為兩層:編譯(Encode)與解碼(Decode).即:
D(x)=‖Dec(Enc(x))-x‖
(9)
對應的生成器與判別器的損失函數(shù)LG,LD分別為:
LG=Ex~Pr‖Dec(Enc(G(z)))-G(z)‖
(10)
LD=Ex~Pr[Dec(Enc(x)))-x]+Ex~Pg[max(0,m-‖Dec(Enc(x))-x‖)]
(11)
EBGAN的損失函數(shù)設計基于與譜歸一化相同的思想,即通過限制損失函數(shù)的值域限制單次訓練中權值的變化.
張龍等[17]構建了應用多個生成器共享部分權值的GAN架構,稱為協(xié)作式生成對抗網絡.Liu等[18]構建了一個應用兩組生成器-判別器組之間共享權值的GAN架構,稱為耦合式生成對抗網絡(CoGAN).這些協(xié)作式生成對抗網絡均采取了在運行過程中共享部分神經網絡的權值的方式.這一方式確實可以非常好地完成“共享訓練成果”這一目的.然而在實際運行中,共享權值是一個內存或顯存讀寫量非常大的操作,導致在多個物理設備上并行運行多個神經網絡時,共享權值的行為開銷非常高昂,效果優(yōu)秀但時間成本相對高昂.
神經網絡的訓練是隨機梯度下降過程,不可避免地,在單次訓練過程中會存在部分未能進行有效學習的特征模式.在GAN的訓練過程中,生成器與判別器彼此對抗,判別器的判別結果反饋作為生成器的損失函數(shù),若一個判別器沒有充分學習到真實數(shù)據的特征,對應的生成器就無法得到正確的反饋.也就意味著生成器不可能習得判別器沒有學習到的特征模式,生成器的模式崩潰問題將會比判別器體現(xiàn)得更加嚴重.
基于這一現(xiàn)實中存在的問題,我們認為,如果設置多個各自不同的判別器,令其分別并行訓練,并與同一個生成器對抗,多個生成器學習到的模式可以在更大程度上覆蓋樣本空間,減少判別器組整體的模式崩潰,讓生成器學習到的模式更加全面.
圖2 多SNGAN架構圖Fig.2 Multi-SNGAN structure
本文實驗中采用多個彼此獨立的判別器對單個生成器的結果進行判斷,并將結果求均值之后作為反饋提交給生成器,以此來引導生成器的訓練過程.由于判別器的初始狀態(tài)不同,從圖像中提取的特征也不同,通過平均的方式可以使生成器的圖像獲取更完整的特征.
與此同時,多個獨立判別器的架構也允許各個判別器在不同的物理設備上進行獨立并行運算.雖然運算量提高了,但在實際應用中,其訓練時間與單個判別器訓練時幾乎相等.
訓練過程中,判別器Di的目標函數(shù)為:
maxEx~PlnDi(x)+Ez~Pzln(1-Di(G(z)))
(12)
生成器G的目標函數(shù)為:
(13)
SNGAN的成功是源自限制梯度回傳時的數(shù)值,從而避免了梯度爆炸問題.基于這一思想,我們猜想,如果能夠進一步限制梯度的取值范圍,或可取得更好的效果.由于判別器與判別器之間相互獨立,當n個判別器被訓練多代之后,可以認為它們的結果是獨立同分布的.記Pr為各判別器對偽造圖片的判別結果的分布:
Pr:={D1(G(z),D2(G(z),…,Dn(G(z)}
(14)
取訓練過程中的一個階段,記各個判別器的判斷與準確判斷的差異為d=Dn(r)-L(r),由于訓練過程是具有隨機性的逐步逼近過程,故{d1,d2,…,dn}∈N(μn,σn2).其中μn,σn2分別代表該階段生成器分布與實際分布逼近程度的期望值和各個判別器之間的方差.易得反饋到生成器的損失函數(shù):
(15)
進而有:
(16)
即生成器得到的反饋比單個判別器更加集中于理論期望值.
由此可見,通過對多個判別器的結果取平均值,在整體上而言平衡單個判別器在訓練過程中產生的損失函數(shù)值的震蕩,使得生成器得到的反饋趨于接近判別結果的期望值E(Pr),有利于生成器對圖像整體的把握.與此同時,在圖像細節(jié)方面,單個判別器訓練過程中不可避免的會存在一些沒有學習到的特征,而多個判別器則可以在分立并行的學習過程中各自學習到數(shù)據集中不同的細節(jié)特征,進而幫助生成器學習到較為完整全面的特征.
理論上,多判別器架構允許任意數(shù)量的判別器共同工作.然而在實際訓練過程中,判別器數(shù)量過多會導致判別器之間同質化嚴重,判別器數(shù)量過少則會導致單個判別器的權重對整體結果的影響過大而導致訓練過程中生成器容易與單個判別器耦合.由于生成器間共享輸入與判別器網絡,可能會造成生成器生成分布趨于重合的現(xiàn)象.這樣不僅無法達到預期的目標,還可能產生額外的網絡負荷.為避免該現(xiàn)象,本文在初始化生成器時采取隨機權值方式.實驗表明,重合問題在實際訓練過程中并未出現(xiàn),不同生成器產生的結果始終保持著一定的差異.我們認為3個判別器能給出一個穩(wěn)定而始終具有一定方差的結果分布Pr.
學習率是網絡訓練中最重要的超參數(shù)之一,以單張圖片為例,較大的學習率意味著網絡的更新更加快速,對圖像整體結構的把握更優(yōu)秀;而較小的學習率意味著網絡的更新較穩(wěn)定,對圖像細節(jié)的把握更精準.由于初始狀態(tài)的差異性在訓練過程中會被快速地平滑化,為了保證訓練過程中各判別器保有持續(xù)的差異性,可以調整各個判別器的學習率.來保證即使在訓練的后期,不同的判別器也能保證一定程度上的差異.
本文實驗中采用了多個實驗組,以3個判別器學習率相同的情況作為對照,在保證判別器學習率差別不至于過大的前提下,將3個判別器的學習率進行調整,進行多組實驗.實驗結果表明,不同學習率的判別器組表現(xiàn)均優(yōu)于單個判別器的表現(xiàn).
在實驗中選用cifar-10數(shù)據集作為訓練與測試數(shù)據集.運行環(huán)境為pytorch0.4.0,顯卡為NVIDIA GeFORCE GTX 1080Ti.
本文實驗使用弗雷歇距離(Fréchet Inception Distance,F(xiàn)ID)作為評價圖像相似程度的標準,兩組圖片之間的平均FID越低,則表明圖像的特征越相似.
本文主要基于Miyato等[9]提出的模型框架,采用生成對抗網絡進行實驗驗證.生成網絡架構(如圖3所示)主要由歸一化層、3個反卷積層以及1個卷積層構成,判別網絡架構(如圖4所示)則主要由7層卷積層和1層歸一化層構成,命名為SNGAN算法.同時,為了驗證本文提出架構的合理性與有效性,我們加深上述生成器與判別器的層數(shù),構建了一個更深層次的網絡,稱為深化SNGAN(Deepened-SNGAN)架構(如表2所示).
圖3 生成器網絡結構圖Fig.3 Generator network structure
圖4 判別器網絡結構圖Fig.4 Discriminator network structure
在訓練過程中,生成器接收隨機信號向量,并將其輸出為仿真圖像樣本.判別器接收仿真樣本圖像或來自cifar10數(shù)據集的真實樣本圖像,輸出各樣本來自cifar10數(shù)據集的概率.其中對于偽造圖片的判斷將會被返回給生成器.以訓練生成器生成更加貼近真實的圖像,期望令判別器難以分辨仿真圖像.
在經過一定的訓練次數(shù)之后將生成的偽造圖片與真實圖片通過FID算法進行比較.FID值越小說明偽造圖片與真實圖片越相似,即生成器的質量越高.在生成器網絡經過一定次數(shù)的迭代訓練之后,可以認為訓練基本已完成.此時將生成的偽造圖片與真實圖片進行對比,計算其FID值.
表2 深化SNGAN網絡結構Table 2 Network structure of deepened-SNGAN
訓練過程中使用的隨機向量均滿足:
zn∈R128~(0,1)
(17)
相應的,真實圖像與偽造圖像均為邊長為32像素的正方形3通道RGB圖像,滿足:
xn∈R32*32*3
(18)
迭代次數(shù)均為100000次,以生成器更新次數(shù)為準,每次訓練時傳遞給生成器的真實圖片與偽造圖片各32張.生成器與判別器的優(yōu)化器均使用Adam動量算法優(yōu)化器(β1=0.5,β2=0.999).
4.2.1 Cifar-10數(shù)據集
cifar-10數(shù)據集由加拿大高級研究院(The Canadian Institute for Advanced Research)提供,是目前世界上使用最廣泛的計算機視覺庫之一.由于其圖像的標準化程度較高,易于判斷而被深度學習研究大量使用[19-21].該數(shù)據集由10種不同類型的圖片組成,每種類型分為兩個數(shù)據集:5000張圖片構成的訓練數(shù)據集和1000張圖片構成的測試數(shù)據集構成.表3給出了十個類別的一些示例圖片.
在訓練過程中,我們忽略類別標簽,將訓練數(shù)據集中不同種類的圖片集打亂順序隨機混合作為判別器的輸入,使用測試數(shù)據集中的圖片與生成器生成的圖片計算FID來評估訓練的結果.
4.2.2 STL-10
STL-10數(shù)據集由斯坦福大學(Stanford University)提供,也是在使用廣泛的計算機視覺庫之一.該數(shù)據集由3個數(shù)據集:訓練數(shù)據集、測試數(shù)據集以及無標簽數(shù)據集構成.表3給出了一些示例圖片.
在訓練過程中,我們使用無標簽數(shù)據集作為判別器的輸入,同樣使用無標簽數(shù)據集中的圖片與生成器生成的圖片計算FID來評估訓練的結果.
表3 CIFAR-10 數(shù)據集示例圖片Table 3 Sample images from CIFAR-10 dataset
4.3.1 使用Inception score來執(zhí)行初步優(yōu)化
由于我們的訓練過程旨在擬合整個數(shù)據集,在訓練時未將圖片的分類信息輸入神經網絡.而inception score是一個用于展示圖片分類的明晰程度的指標,因此我們的實驗并不以inception score作為最優(yōu)化目標.雖然如此,inception score在評判同類模型相對優(yōu)劣程度時仍不失為一個優(yōu)秀的參考指標.4.3.2節(jié)展示了對于實驗中一些模型的inception score預評估結果,根據表中數(shù)據可以得出,在本文的神經網絡框架下,針對本文的訓練任務最優(yōu)的學習率大約是2×10-4左右,在實驗中我們將它定為標準學習率.
4.3.2 基于Cifar-10與STL-10的實驗結果
圖5展示了FID距離在訓練過程中的變化過程.圖6展示了訓練完成的生成器生成的部分圖片示例.在圖6中,可以發(fā)現(xiàn)生成的圖片質量較高,圖中可以明顯地分辨出不同類別的動物與交通工具,圖像主要部分具有的細節(jié)也大多在識別過程當中被有效保存下來.
可以看到的是,在使用相同的核心網絡結構的基礎上,相較于單個判別器,3個判別器合作的SNGAN架構生成器的生成圖像質量有顯著提升.
圖5 訓練過程FID變化圖Fig.5 FID value over train epochs
在實際的訓練過程中,卷積神經網絡反向傳播過程中權值的修改更新涉及大量的內存或顯存讀寫,因而需要很長的時間.而相比而言,在判別器之間共享一組偽造圖片所產生的額外開銷幾乎可以忽略.因此在實際應用中,各個判別器可以在不同的物理設備上同時并行運行,其實際訓練時間與單一判別器幾乎相同.
圖6 最終生成圖片示例Fig.6 Generated image sample
在多判別器訓練的過程中,最危險的狀況是多個判別器的狀態(tài)在某個局部最優(yōu)點的附近趨于一致,這樣不僅使得生成器陷入局部最優(yōu)點,還增加了額外的網絡負擔.圖7展示了在訓練過程中3個判別器的相對方差.可知判別器組在訓練的全程中均保有一定的相對方差,趨于一致的情況并沒有發(fā)生.
圖7 訓練過程中不同判別器的方差實驗數(shù)據圖Fig.7 Variance of different discriminators during train phase
與此同時,相較于學習率相同的架構,由多個學習率不同的SNGAN構成的合作架構訓練出的生成器對圖像的特征把握更精準.表4展示了目前主流的GAN網絡架構在使用同樣數(shù)據集和優(yōu)化器,迭代次數(shù)均為100000次時的實驗結果,以生成器更新次數(shù)為準.可以看出相較于其它主流GAN,本文提出的多SNGAN的架構在測試條件下均有更好的表現(xiàn).
同時,我們將加深網絡應用在我們的架構上.實驗結果顯示,針對更深的神經網絡,本文提出的架構也具有提升訓練表現(xiàn)的效果.
本文提出了一種SNGAN結構下的生成對抗網絡的多判別器協(xié)作系統(tǒng),嘗試設計了該方法使用的復合式網絡系統(tǒng)結構及相應的優(yōu)化方案,實驗結果表明多個判別器的復合架構可以有效地幫助生成器挖掘原始圖像中的更多特征,在細節(jié)和整體兩方面獲取更加完整的圖像信息.
表4 主流GAN實驗結果Table 4 Results on mainstream GANs
在后續(xù)研究中,可以嘗試更換基礎網絡結構,例如使用殘差網絡架構進行合作,或調整各個不同網絡的結果權重,以增加判別器之間的差異.進一步提高網絡架構整體的訓練效率.