張晨曦,姚 瓊,秦飛巍,葛瑞泉
(1.杭州電子科技大學計算機學院,浙江 杭州 310018;2.臺州中學)
上世紀90年代機器學習研究興起,各種新技術不斷涌現,如卷積神經網絡、循環神經網絡。當計算機神經網絡拓展到三層及三層以上時便出現了深度學習技術。深度學習作為計算機機器學習領域新的研究方法,已經廣泛運用于計算機視覺、圖像識別、語音識別、自然語言識別等不同領域。其中基于對抗學習的生成對抗網絡也逐漸成為近幾年的熱點之一。
自2014年Goodfellow博士提出生成對抗網絡概念以來,截至2022 年,生成對抗網絡(GAN,Generative Adversarial Network)衍生出多種不同類型的對抗網絡結構,它們在圖像處理的不同領域發揮著各自的作用,成為深度學習領域不可或缺的一部分[1]。目前,國內外涌現的許多基于原始GAN 的改良生成對抗網絡,大多從以下五個方向對GAN進行了優化拓展[2]。
⑴可解釋性與可控性:在使用GAN進行圖像生成訓練時,以往我們不能具體量化每個參數對生成結果的影響,如今其可解釋性得到提升。在可控性方面,傳統GAN 的輸入取決于隨機函數不受控制,因此也產生了如條件GAN等可自定義輸入的改良模型。
⑵穩定性:在訓練模型時可能出現梯度消失或梯度爆炸現象,導致模型坍塌得不到正確的訓練結果,即穩定性低。現在的GAN模型在穩定性方面得到了極大改善。
⑶評價標準:區別于以往純肉眼觀察,如今大多使 用Amazon Mechanical Turk(AMT)、Frechet Inception Distance(FID)、Inception Score(IS)三種標準來進行定量評價模型。
⑷學科交叉:通過引入其他學科,如人工智能、概率論、信息論等,使模型性能得到提升。
⑸實用價值:對生成對抗網絡的應用進行開發拓展,結合日常生活,挖掘其實用價值。
盡管生成對抗網絡領域的研究成果眾多,但仍存在許多問題,其生成圖像結果也還有進步的空間,為了解決這些問題,模型優化基本可分為兩類:一類是對GAN的原理算法進行改進,從數學的角度修改函數達到更精確的擬合,另一類是對GAN的外部結構進行改進,通過判別器與生成器的組合來實現優化。
GAN 模型是對聯合分布概率P(x,y)建模的一種生成式模型,其中的對抗是指在模型訓練過程中處于一種對抗博弈的狀態。隨機生成的測試圖片會與真實目標圖片進行對比,互相促進以優化模型。一個GAN 模型主要包含兩部分:生成器G(Generator)和判別器D(Discriminator)[3]。
⑴生成器
生成器先隨機輸入一個噪聲變量,最好滿足常見分布如高斯分布與均值分布,接著將其映射到一個可以輸出圖片的數據空間G(z,θg),例如全連接神經網絡或者反卷積網絡等。其中θg是該數據空間模型的參數。然后得到一組由生成器生成的數據G(z),它構成一張測試假圖片。
⑵判別器
判別器將通過價值函數對輸入的真實圖片與生成器生成的假圖片進行判別,最后輸出一個概率P 代表圖片的真實性,1-P 即為假圖片的概率。而最理想的情況是當判別器對于真實圖片與假圖片的判別結果都為0.5(此時判別器無法區分真假圖片的不同,又稱達到納什均衡),此時GAN模型達到平衡。
⑶訓練過程
訓練時GAN 通過價值函數(損失函數)來進行真假區分判斷,其函數為:
該函數中z 是隨機噪點變量,G(z)是z 通過生成器G映射的數據分布。因此函數也可以寫為:
其中,V(D,G)代表訓練圖片與真實圖片的差別。當訓練判別器時(計算maxD),生成器G 保持不變,函數中前半部分表示真實圖片的價值,其中D(x)表示x 的判別結果為真的概率,我們希望這個值無限接近于1。而函數后半部分表示假圖片的價值,1-D(x)表示判別結果為假的概率,同樣我們希望它能100%判別它為假(即D(x)=0),此時整個函數的值趨近于0(系統的熵為0,趨于穩定)。當訓練生成器時(計算minG),判別器D保持不變,即函數的前半部分為常數,此時我們希望每一張假圖片在經過判別器時都會被判別為真,則D(x)=1,1-D(x)=0[4]。
最終,當判別結果達到0.5 時系統最優。同時執行時按照先訓練更新k次判別器后更新一次生成器的流程,這樣可以使判別器盡量不出錯,使結果更加可靠。
⑴深度卷積對抗網絡(DCGAN)
DCGAN 模型是將GAN 模型使用的多層感知機用卷積神經網絡(CNN)代替,也就是從內部原理進行優化,進一步提升模型的生成質量,使圖像更接近于真實。
相比傳統GAN,DCGAN的改進在于:使用卷積和去卷積代替池化層;在生成器和判別器中都添加批量歸一化操作;去掉全連接層,代替使用全局池化層;生成器輸出層使用Tanh 激活函數,其他層使用ReLU;判別器所有層都使用LeakyReLU 激活函數[5]。
在訓練方法上,DCGAN 和GAN 并無區別,都是先訓練k 次判別器后訓練一次生成器,同時使其判別器結果穩定在0.5 達到納什均衡。在加入CNN 后,深度卷積對抗網絡具備了更強的性能,更好的擬合度,同時生成圖也具備了多樣性特點,因此該模型獲得了廣泛的應用。但與傳統GAN 相比它仍沒能解決生成圖像素低,圖像質量差的問題。
⑵Wasserstein生成對抗網絡(WGAN)
GAN 模型在數據層面的問題會導致當判別器性能極佳時,生成器會有梯度消失的情況發生,即無論生成器生成怎樣的圖片都會被判為假,此時生成器就無法得到優化。為了解決這一問題,WGAN從內部原理進行改進,與條件GAN不同的是它從損失函數入手。
WGAN 對比GAN 做出了以下幾點改變:①去掉判別器的sigmoid 函數,即神經元非線性激活函數(輸出范圍0~1,可表示概率);②損失函數的計算使用乘法;③每次訓練時將判別器權重參數截斷在某一范圍,這樣可以滿足lipschitz 條件(利普希茨連續條件),使判別器改變速度受限,優化更為平滑,提高其穩定性[6]。
WGAN 提高了訓練的穩定性,較好地應對了梯度消失崩潰的問題,同時生成結果擬合度也得到一定程度提高。但是WGAN 訓練時間長,而且當判別器權重裁剪到一定范圍時,會導致權重堆積在裁剪邊界上,造成梯度爆炸。
⑶Pix2PixHD
與上面兩種方式不同,Pix2Pix是通過改變外部結構進行優化的。首先生成器的輸入由以前的隨機生成噪點變為用戶自定義圖片,解決了GAN模型的無用戶控制能力問題。但隨之而來的是,判別器在判斷用戶自定義輸入圖片經過生成器映射出的G(x)時,無法對其相關性做出準確判別。所以在原來GAN 的基礎上,Pix2Pix 在判斷時加入用戶自定義圖片輸入作為條件共同判斷。
通過Pix2Pix模型可以得到自己想要的生成方向,但同樣的讓網絡產生高維數據輸出高精度圖像十分困難,圖像分辨率與圖像質量仍然是一個沒解決的問題。所以Pix2PixHD 模型采用了一種循環的金字塔式方法(一層層向上遞進細化),其將第一次生成的低分辨率圖片作為下一次訓練的自定義輸入圖片,在不停的循環后得到一個高質量輸出結果。在這種訓練模式下,要求訓練集必須是一一對應的成對數據,這也算是該模型的一個缺點[7]。
⑷CycleGAN
在現實生活中,有時要得到成對數據十分困難,例如我們想把貓變成狗,其對應的真實圖片是不存在的,這時就要用到CycleGAN 模型。該模型訓練集可以是兩個毫無關聯的不成對數據,因此它同樣是從外部結構入手,通過構建兩個相同的GAN模型來實現一個環形網絡,避免所有的x都被映射到同一個y。
在CycleGAN 模型中,這兩個對稱的GAN 模型共享兩個生成器G 和F,同時各自擁有一個判別器Dx 與Dy。模型中兩個GAN 的損失函數與之前一樣,但CycleGAN 模型中又加入了循環一致性損失或重構誤差,以此達到不成對訓練的目的[8]。
⑴圖像生成
圖像生成是GAN模型最基本的應用方式,本文中提到的方法都能實現該功能。通過給定的條件或對應的真實圖,利用模型訓練生成目標圖。在應用方面可以實現從文字生成圖像或圖像生成圖像,運用圖像生成可以減少繪圖的工作量,快速獲得大量符合要求的真實圖片。例如被稱為最強GAN 圖像生成器的BigGAN,根據輸入參數與條件的不同可以輸出幾近真實的照片風格圖片。正如其名“Big”,BigGAN 使用了大規模GAN 模型,同時增大了每層網絡的通道數,最終在提升了訓練速度的情況下獲得了極好的生成結果。
例如在《激光與光電子進展》期刊中,有研究者基于HistoGAN 算法,提出了一種新的火焰生成算法fire-GAN。通過對目標圖像進行預處理,減少背景影響,使用圓形度目標函數生成了與目標火焰顏色相近,清晰度好的火焰圖像,其FID達到59.23[9]。
⑵圖像高清修復
高清修復可以說是極具應用價值,它與網絡上備受關注的去馬賽克技術類似,都可以通過生成對抗網絡來實現,例如上文中提到的Pix2PixHD。通過不斷訓練網絡,一張16×16的低分辨率圖片可以得到一張128×128 或更高精度的圖片。這在照片去霧、表情包高清化等命題中得到實踐,通過不斷迭代,將上一次的生成結果作為下一次的輸入,使圖像中的特征信息不斷強化,同時去除噪點信息,最終可以得到清晰的處理結果[10]。
北京交通大學的研究者在GAN網絡的基礎上,結合基于深度學習的FaceSR 技術,提出了一種高性能的人臉圖像超分辨率重建模型:CSP-GAN。該模型實現了有效利用先驗人臉信息來重建高質量的高清人臉圖像[10]。
⑶視頻預測
視頻預測是對靜態圖應用的擴展,將時序信息加入到GAN模型中,達到對視頻中出現的幾幀圖像進行處理,然后將其輸入到生成器G 中得到接下來預測的幾幀圖像。而判別器則對比生成的視頻幀與真實視頻幀的區別,從而對生成器產生優化作用。GAN 模型可以估算數據,例如汽車自動駕駛技術中用于預測行人或汽車的行動軌跡,或者在游戲中通過上幾幀畫面預測并生成下幾幀畫面,達到性能優化的作用。
⑷草稿上色復原
通過GAN模型,我們可以批量對草稿圖片進行上色還原,在訓練數據較多時往往能得到較好的結果,同時也能實現真實圖片與簡筆畫的反向轉換,得到其輪廓草圖。可以使用Pix2Pix模型,通過對比草稿圖與上色圖,迭代訓練得出上色特征來達到效果。同樣使用DCGAN 與StyleGAN 也可以實現動漫人臉的上色生成,甚至可以自由調節發色、瞳色等特征。
⑸圖像風格遷移
圖像的藝術風格是一種很難用程序語言來描述的模糊概念,因此傳統的風格遷移要先分析某種風格的特點,并對其建模,但這樣建立的模型只適用于一種風格或場景的切換,同時也較為耗時費力。而運用GAN 模型,我們可以生成任意一種風格的對應圖像,并且與手動建模不同的是我們可以通過訓練生成器來自動生成,其可用性與實用價值得到大大提升。
例如筆者使用CycleGAN 模型實現了人臉照片轉換為素描風格(圖1),但CycleGAN 將多個向量維度表示一種人臉特征信息,造成特征糾纏問題,一些噪點細節也會被識別成人臉器官。因此,筆者通過修改輸入層為mappingnetwork 網絡來分解糾纏,最終得到較好結果,并在此基礎上實現了照片轉油畫的風格遷移。同時在一些圖像增強領域,如礦井暗光環境下的圖像增強,渾濁水體下的顏色矯正等,GAN 模型都具有較好的實踐體驗。

圖1 CycleGAN實現人臉素描風格遷移
⑴優勢:GAN 模型使用了判別器來代替損失函數,這樣能夠實現更大致的擬合,使圖像在對比時不會因為某幾個像素點的不同而影響全局。在這種情況下,單純的幾個像素點的區別并不能決定判別器對真假的判斷,因此我們能得到總體上以假亂真的圖像。
⑵劣勢:簡單GAN 模型的優勢同時也引出了它的一些問題:沒有用戶控制能力且圖像質量差。GAN輸入輸出取決于隨機噪點P(z),它的輸入輸出與用戶需求無關,即網絡沒有用戶控制能力。例如用戶無法指定輸入鉛筆簡筆畫圖片來生成該簡筆畫的油畫版本。有時生成的圖像總體上算是符合要求,但圖像質量差,圖像放大后的細節慘不忍睹。
除此之外,GAN 模型為了達到最佳的納什均衡,在判別器判別效率的迭代優化過程中,當判別器效率太高時,生成器中會出現自相矛盾的情況,此時真假圖片都判定為假,造成梯度消失。而判別器中神經網絡層數過多或權值設置過大則會出現梯度爆炸等問題。
如今大數據技術的飛速發展,無監督學習無疑是一種降低研究成本提高效率的重要手段。而GAN 技術作為典型的無監督學習方法,用生成器與判別器的自動博弈對抗來替代復雜的特征分析建模工作,無疑是今后十分熱門的研究方向。
GAN 模型本質上是求解損失函數的最優解,找出最合適的權值,因此,反向傳播訓練是其中的關鍵。而解決反向傳播中出現的各種梯度消失爆炸,過擬合問題、尋找更加優秀的激活函數將會是研究的重點。除此之外還有另一種思路,直接拋棄傳統神經網絡的反向傳播方式,使用Capsule 膠囊網絡來進行優化,這也是可能的發展方向。
在應用層面,GAN 模型將會結合不同領域,例如醫學圖像識別,人工智能繪畫等領域,實現更多價值實踐應用。
自2014年生成對抗網絡提出以來,它便吸引了許多目光,在最近幾年更是涌現出了許多不僅好玩有趣,而且具備較強實用價值的優秀網絡結構。這是一個十分具有應用前景的研究領域,相信隨著大數據技術以及設備性能算力的不斷發展,生成對抗網絡也能不斷前進,在計算機科學的不同領域乃至其他學科發揮更大的應用價值。