徐松林
摘要:近年來,隨著人工智能的發展,越來越多的研究者加入到了人工智能的研究當中。其中計算機視覺計算領域的研究也受到越來越多的人的關注,而生成式對抗網絡是處理計算機圖像與視覺的一種有效的算法。本文介紹了生成式對抗網絡的基本原理與主要算法,并對算法的主要應用進行了介紹,最后并做了總結。
關鍵詞:人工智能;生成式對抗網絡;GAN
中圖分類號:TP393? ? ? ? 文獻標識碼:A? ? ? ? 文章編號:1009-3044(2019)03-0061-02
1 引言
生成式對抗網絡(Generative Countermeasure Network,GAN)是由GoodFellow等人[1]在2014年研發出來的一種網絡。GAN目前已經成為計算機視覺研究當中炙手可熱的一種深度學習模型。隨著人工智能的不斷發展,人們越來越多地把重點放到了圖像領域的研究當中,其中包括圖像處理[2]、圖像生成[3]以及視頻檢索[4]等方面。在這些領域當中,GAN無疑已經成為最具研究價值的一種算法。由于大部分的深度學習模型均是監督式學習,對數據的要求比較高,而GAN不需要提前知道假設分布便可以自動推斷出真實的數據集,所以GAN在圖像處理領域中表現的十分的優異[5]。
本文章節安排如下,在第2小節介紹GAN的基本理論與主要算法, 第3小節介紹了GAN的主要應用,最后在第4小節進行了總結與展望。
2 生成式對抗網絡
2.1 基本原理
在GAN中,主要包括兩個部分,一個是生成模型G,另外一個是判別模型D,其具體結構如圖2-1所示。
在圖2-1中,Generator代表GAN的生成模型G,而Discriminator代表判別模型D。在GAN中,G與D基本上都是由深度神經網絡實現的一種函數。其中G根據真實的部分數據獲取其分布,并將這些數據映射到新的空間當中,將新生成的數據記做[G(z)],分布記作[pg(z)],其中[z]是一個隨機變量。此時,D中的輸入除了正常的數據外,還包括新生成的數據[G(z)],而D的輸出一般是一個標量或者一個概率值,表示之前由G生成的數據被認定是真實數據的概率,并將此概率輸出到G,使得G根據次概率不斷地進行調整,最后使得[G(z)]與真實的數據保持一致。在極致情況下,即D已經將新生成的數據[G(z)]當成了真實的數據,此時的模型達到了最優,并且認為G已經得到了真實數據完整的分布。一般來講,G是某種深度神經網絡,對于數據輸入達到的層數,既可以是第一層,也可以是最后一層,并且對于其中的隱藏層,可以加入噪聲更好的模擬真實的數據情況。除此之外,GAN對[z]的要求很少,通常[z]的維度為100維左右,并且是隨機的。由于要經過D的判斷將梯度回傳并以此更新參數,所有G必須是可微的,否則會破壞整個GAN中信息的傳遞。
除了上述GAN中的生成器外,GAN中另外一個重要的部件便是判別器D了。D的主要目的是為了給生成器G提供反饋,判斷輸入的數據是否為真實的數據。其具體過程需要兩個協議,第一個協議是從真實的數據中進行采樣,輸入到D之后D會給出一個概率值,值越大,表明其實真實樣本的概率越大,并且假設在D輸入的過程中,真實樣本的個數與G生成樣本的個數是相等的,在此協議下,D輸出的概率值要盡可能地接近1。在第二種協議下,G會從真實的數據中按照某種分布進行采樣,并將采樣之后生成的數據作為D的輸入,而此時D的目標輸出就是使得此類型數據最后輸出概率為0,而G的目標是為了使得D的輸出為1,經過一系列的模型參數訓練,最后會達到一種平衡,通過G生成的樣本數據與真實的數據沒有差異,而D所反饋的概率為0.5,即此時D已經分辨不出輸入的數據到底是真實的數據還是經過G生成的樣本數據。
2.2 主要算法
在原始的GAN中,對先驗的要求非常的低,數據可以是任意的一種分布,最終GAN將會模擬出任意一種分布來。GAN使用機器的自身來進行訓練,通過自身參數的不斷調整,獲得足夠多的數據,并且找到現實中的某種規律,已經脫離了人類的“限制”。但是GAN由于其具有無限建模的能力,所以往往會出現函數無法逼近或者無法收斂等問題,而且GAN模擬生成的數據比較單一,不具有多樣性特征,而且對于某些特定的分布,比如離散分布,其學習的效果是非常差的。面對這些問題,人們對原始的GAN進行了一系列的改進,使其克服剛才提到的缺陷。下面列舉一些常見的改進型算法。
1)CGAN算法[6],通過在數據生成的過程中增加約束性的條件,即利用標簽將輸入輸出進行標記,這樣能使得模型快速達到收斂條件,但是此種算法所要求的數據必須是帶帶有標簽的數據。
2)DCGAN算法[7],將CNN的優點應用在GAN中,使得整個訓練過程趨于穩定,并且生成器生成的數據具有多樣性,更加符合GAN的需求,但是此種算法由于引進了CNN,整個模型易崩潰,會出現梯度爆炸等問題。
3)WGAN算法[8],通過對訓練深度神經網絡中的權重進行剪枝處理,使得整個訓練過程更加穩定,并且易于收斂,理論上解決了梯度消失的問題,但是如果對某些必要的權重進行剪枝,還是會使得梯度消失或者爆炸。
4)WGAN-GP算法,利用梯度懲罰措施實現生成器與判別器之間的平衡,但是其最大的缺點就是收斂速度慢,生成的樣本多樣性較差。
3 GAN的主要應用
GAN的主要應用是在視覺計算上面,從最初的圖像生成,再到圖像計算等,越來越多的人利用GAN以及改進后的GAN模型處理計算機視覺方面的問題,其中最主要的原因在于GAN可以通過自身的對抗性不斷進行模型的改進,最終取得良好的效果。下面介紹幾個典型的應用。
1)生成圖片。應對于各種各樣的數據,GAN都可以學習到其真實的數據分布,如何使得圖片能夠更加的接近真實事物,這一直是圖片研究中的重點內容。DCGAN在此方面取得了良好的結果,由于有CNN的加入,DCGAN目前已經成為GAN模型的標準。除此之外,DCGAN還可以對圖片的矢量進行運算,從而擺脫對圖片數據庫中圖片本身的記憶。
2)圖像的風格遷移與翻譯。圖片的風格遷移是指將圖片的一種風格轉換為另一種風格,例如pix2pix模型[8],就可以實現圖片風格的轉換,但是pix2pix模型訓練的數據需要成對的數據,而循環GAN[9]突破了這一限制,主要是將原圖片先映射到某一個空間中,之后再從此空間得到變換后的圖片,在這個過程中,通過生成器將圖片做映射,之后通過生成器與判別器的匹配可以提高重新生成圖像的質量。此時,將原始圖像與重新生成的圖像數據進行比對,如果分布相一致,那就有理由認為目標圖像與原始圖像是一致的。除此之外,循環GAN還可以應用到很多的方面,包括對圖像內季節的遷移,或者將2維的圖片轉換到三維的場景中,甚至是一些名人的圖片到真人的轉換。
3)圖像還原。目前隨著人工智能技術的發展,人臉識別的精確度也越來越高。利用人臉識別技術,可以在人群密集的地方進行人臉自動搜索,用于發現可疑人物等。但是目前制約這項技術發展的主要原因是在視頻中進行人臉識別時,經常受到其他人的干擾,真正的嫌疑人有可能被其他人遮擋,只有一個側面相,但是往往就需要從這一個側面相當中取出全部的面貌特征進行比對。之后,TP-GAN[10]被人們提了出來,這種算法可以整合局部與整體信息,對于還原后的圖像保留了原有信息的特征,所以在面對具有不同光照、不同背景甚至不同側面的圖片時,可以利用TP-GAN算法合成目標人的正臉圖片,并且合成之后的圖片與實際的人臉是非常相似的。其中最主要的原因是由于TP-GAN生成網絡時,在關注全局結構的基礎上,還關心局部推理,最后將這兩個特征進行合并,最終合成最后的圖像。
4 總結與展望
在圖像視頻領域,GAN作為一種新型的學習算法得到了廣大研究者的關注。GAN對于樣本不足、圖像質量差、特征提取困難等問題,提供了良好的解決方案。本文對GAN在視覺方面的應用進行了介紹,分析了GAN主要改進后算法的優缺點,并列舉了GAN中的主要應用。除此之外,GAN還可以與其他的深度學習模型相結合,解決了許多機器學習中無法解決的問題。
除了本文中提到的應用外,GAN還可以在其他領域中取得較大的成就。例如在專家系統中,可以利用GAN解決具體的問題,如對特定的場景進行系統生成,或者將圖片與游戲相結合,生成特定的游戲場景,并提高場景的視覺質量。
參考文獻:
[1] Goodfellow I J, Pouget-Abadie J, Mirza M, et al. Generative Adversarial Networks[J]. Advances in Neural Information Processing Systems, 2014, 3: 2672-2680.
[2] Sonka M, Hlavac V, Ceng R B D M. Image Processing, Analysis and Machine Vision[M].? Chapman & Hall Computing, 1993: 685–686.
[3] Cappelli R, Maio D, Maltoni D, et al. Synthetic Fingerprint-Image Generation[C], 2000.
[4] Krizhevsky A, Sutskever I, Hinton G E. ImageNet Classification with Deep Convolutional Neural Networks[C], 2012: 1097-1105.
[5] 王坤峰, 茍超, 段艷杰, et al. 生成式對抗網絡GAN的研究進展與展望[J]. 自動化學報, 2017, 43(3): 321-332.
[6] Mirza M, Osindero S. Conditional Generative Adversarial Nets[J]. Computer Science, 2014: 2672-2680.
[7] Radford A, Metz L, Chintala S. Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks[J]. Computer Science, 2015.
[8] Arjovsky M, Chintala S, Bottou L. Wasserstein GAN[J], 2017.
[9] Zhu J Y, Park T, Isola P, et al. Unpaired Image-to-Image Translation Using Cycle-Consistent Adversarial Networks[J], 2017: 2242-2251.
[10] Huang R, Zhang S, Li T, et al. Beyond Face Rotation: Global and Local Perception GAN for Photorealistic and Identity Preserving Frontal View Synthesis[J], 2017: 2458-2467.
【通聯編輯:李雅琪】