摘要:特征匹配改變了生成器的損失函數,以最小化真實圖像的特征與生成的圖像之間的統計差異。我們建議讀者檢查上使用的損失函數和相應的性能,并通過實驗驗證來設置。相反,我們可能會將注意力轉向尋找在生成器性能不佳時不具有接近零梯度的損失函數。
前 ?言
GAN模型相比較于其他網絡一直受困于三個問題的掣肘:
?1. 不收斂;模型訓練不穩定,收斂的慢,甚至不收斂;
?2. mode collapse; 生成器產生的結果模式較為單一;
?3. 訓練緩慢;出現這個原因大多是發生了梯度消失的問題;
本文主要以下幾個方面入手,聚焦于解決以上三個問題的一些技巧:
改變損失函數,更換更好的優化目標
在損失函數中增加額外的懲罰機制或者正則手段
避免過擬合
更好的優化模型
使用監督學習
01、特征匹配
生成器試圖生成較好的圖像來欺騙鑒別器。 當兩個網絡不斷對抗時,“較佳”圖像會不斷變化。 然而,優化可能變得過于貪婪,并使其成為永無止境的貓捉老鼠游戲。 這是模型未收斂且模式崩潰的情景之一。
特征匹配改變了生成器的損失函數,以最小化真實圖像的特征與生成的圖像之間的統計差異。 通常,我們測量其特征向量均值之間的L2距離。因此,特征匹配將目標從零和博弈擴展到真實圖像中的匹配特征。 下面是特征匹配新的目標函數:
其中$f(x)$是一個從判別器D中提取出來的特征向量,如下圖所示:
訓練過程中,每個batch計算實際圖像特征的平均值,每個batch都會有波動,可以減輕mode collapse,特征匹配它引入了隨機性,使得鑒別器更難以過擬合。
當GAN的訓練不穩定時,使用特征匹配是很有效的。
02、減小判別器的batch
出現mode collapse時,生成的圖像看起來都差不多,為了緩解這個問題,我們將不同batch的實際圖像和生成的圖像分別送入判別器,并計算圖像x與同一批次圖像的相似度。 我們在鑒別器的一個密集層中附加相似度,以分類該圖像是真實的還是生成的。?
如果出現了mode collapse,則生成的圖像的相似性增加。 如果模式崩潰,則鑒別器可以使用這個值來檢測出生成的圖像不夠好進而給生成器更多的懲罰。
圖像與同一批次中的其他圖像之間的相似度由變換矩陣T計算。
以下是公式總覽:
引自paper:Improved Techniques for Training GANs
Minibatch的判別方法能夠非常快速地生成視覺上較好的樣本,并且在這方面它比特征匹配更好用。
03、標簽平滑
深度網絡可能會發生過擬合。 例如,它使用很少的特征來對對象進行分類。 為了緩解這個問題,深度學習使用正則話和dropout來避免過擬合。
在GAN中,如果鑒別器依賴于一小組特征來檢測真實圖像,則生成器可以僅生成這些特征以僅利用鑒別器。 優化可能變得過于貪婪并且不會產生長期效益。 在GAN中,過擬合受到嚴重傷害。 為了避免這個問題,當任何真實圖像的預測超過0.9(D(實際圖像)> 0.9)時,我們會對鑒別器進行懲罰。 這是通過將目標標簽值設置為0.9而不是1.0來完成的。 這是偽代碼:
?
p = tf.placeholder(tf.float32, shape=[None, 10])
# Use 0.9 instead of 1.0.
feed_dict = { ?p: [[0, 0, 0, 0.9, 0, 0, 0, 0, 0, 0]] # Image with label "3"}
# logits_real_image is the logits calculated by?
# the discriminator for real images.
d_real_loss = tf.nn.sigmoid_cross_entropy_with_logits(
? ? ? ? ? ? ? ? ? ? labels=p, logits=logits_real_image)
04、Historical averaging
此方法中,旨在對過去訓練留下的t個參數求平均,以對當前模型的參數做正則。
對于使用非凸目標函數的GAN來說,歷史平均可以使模型繞平衡點停止并充當阻尼力以收斂模型。(有點類似二階優化方法)
05、使用標簽
許多數據集都帶有樣本對象類型的標簽。 訓練GAN已經很難了,因此,指導GAN訓練的任何額外幫助都可以大大提高性能。 將標簽添加為潛在空間z的一部分有助于GAN訓練。 以下是CGAN中用于利用樣本中標簽的數據流。
06、損失函數
研究員們提出了很多的損失函數,見下圖:
我們決定不在本文中詳細介紹這些損失函數,詳細的解釋可以去參考相應論文。
以下是某些數據集中的一些FID分數(衡量圖像質量,值越小越好)。 這是一個參考點,但需要注意的是,對于哪些損失函數表現較佳還為時尚早。 實際上,目前還沒有單一的損失函數在所有不同數據集中表現較佳,所以,做實驗的時候不妨多試幾個損失函數,不要看網上傳什么損失函數好就用哪個。
(MM GAN是原始論文中的GAN成本函數。NS GAN是解決同一篇論文中消失的漸變的替代損失函數。)
但是想訓練好GAN,仍需要小心的去擬合和調參,在隨意的更換損失函數之前,不妨先耐心地調調參。
07、一些小技巧
將圖像像素值縮放在-1和1之間。使用tanh作為生成器的輸出層
?用高斯分布實驗取樣z
?BN通??梢苑€定訓練
?使用PixelShuffle和轉置卷積進行上采樣
?避免較大化池用于下采樣,使用帶步長的卷積
?Adam優化器通常比其他方法更好(在GAN中)
?在將圖像輸入鑒別器之前,將噪聲添加到實際圖像和生成的圖像中
GAN模型的動態尚未得到很好的理解。 所以一些提示只是建議,里程可能會有所不同。 例如,LSGAN報告稱RMSProp在他們的實驗中有更穩定的訓練,所以,調參很重要。
08、Virtual batch normalization (VBN)
BN成為許多深度網絡設計中的必備項。 BN的均值和方差來自當前的小批量。但是,它會在樣本之間創建依賴關系,生成的圖像不是彼此獨立的。
下圖的圖像是訓練失敗的圖像,也反映了在生成的圖像顯示同batch中的顏色色調相似。
最初,我們從隨機分布中抽樣z,為我們提供獨立樣本。 但是,BN產生的偏差超過了z的隨機性。
虛擬批量標準化(VBN)在訓練之前對參考批次進行采樣。 在前向傳遞中,我們可以預先選擇參考batch來計算BN的歸一化參數(μ和σ)。 但是,由于我們在整個訓練中使用相同的batch,因此有可能使用此參考batch發生過擬合。 為了緩解這種情況,我們可以將引用批處理與當前批處理相結合,以計算規范化參數。
09、隨機種子(Random Seed)
用于初始化模型參數的隨機種子影響GAN的性能。如下所示,測量GAN性能的FID分數在50次多帶帶運行(訓練)中有所不同。 但是范圍相對較小,可能僅在稍后的微調中完成。
10、Batch Normalization
DGCAN強烈建議將BN添加到網絡設計中。 BN的使用也成為許多深度網絡模型的一般實踐。 但是,會有例外。 下圖演示了BN對不同數據集的影響。 y軸是FID得分越低越好。 正如WGAN-GP論文所建議的那樣,BN較好不使用。 我們建議讀者檢查BN上使用的損失函數和相應的FID性能,并通過實驗驗證來設置。
11、多重GAN
模式崩潰可能并不全是壞事。 當模式崩潰時,圖像的某些區域質量通常會提高。 實際上,我們可能會為每種模式收集較佳模型,并使用它們來重建不同的圖像模式(玄學調參)。
12、平衡生成器和判別器
判別器和生成器總是處博弈中以相互削弱。模式崩潰和梯度減小通常被解釋為判別器和生成器之間的不平衡。我們可以通過關注平衡生成器和判別器之間的損耗來改進GAN。不幸的是,解決方案似乎難以捉摸。我們可以保持判別器和生成器上的梯度下降迭代次數之間的靜態比率。即使這看起來很吸引人,但很多人懷疑它的好處。通常,我們保持一對一的比例。但是一些研究人員還測試了每個生成器更新的5個判別器迭代的比率。還提出了使用動態力學平衡兩個網絡。但直到最近幾年,我們才對它有所了解。
另一方面,一些研究人員挑戰平衡這些網絡的可行性和可取性。一個訓練有素的判別器無論如何都會給生成器提供高質量的反饋。而且,訓練生成器總是趕上判別器并不容易。相反,我們可能會將注意力轉向尋找在生成器性能不佳時不具有接近零梯度的損失函數。
13、生成器、判別器的容量
判別器的模型通常比生成器更復雜(更多的權重和更多的層),良好的判別器提供高質量的信息。 在許多GAN應用中,我們可能遇到瓶頸,增加生成器容量(增加生成器的層數)顯示沒有質量改進。 在我們確定瓶頸并解決它們之前,增加生成器容量似乎并不是調參的優先考慮項。
14、進一步閱讀
本文中,我們沒有對某一具體方向做深入的探討,只是給出了一個大概的方向,GAN的訓練仍是一個遺留問題,需要諸位親自探究。
聲明:文章收集于網絡,如有侵權,請聯系小編及時處理,謝謝!
歡迎加入本站公開興趣群商業智能與數據分析群
興趣范圍包括各種讓數據產生價值的辦法,實際應用案例分享與討論,分析工具,ETL工具,數據倉庫,數據挖掘工具,報表系統等全方位知識
QQ群:81035754
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/4858.html
摘要:判別器勝利的條件則是很好地將真實圖像自編碼,以及很差地辨識生成的圖像。 先看一張圖:下圖左右兩端的兩欄是真實的圖像,其余的是計算機生成的。過渡自然,效果驚人。這是谷歌本周在 arXiv 發表的論文《BEGAN:邊界均衡生成對抗網絡》得到的結果。這項工作針對 GAN 訓練難、控制生成樣本多樣性難、平衡鑒別器和生成器收斂難等問題,提出了改善。尤其值得注意的,是作者使用了很簡單的結構,經過常規訓練...
摘要:直接把應用到領域主要是生成序列,有兩方面的問題最開始是設計用于生成連續數據,但是自然語言處理中我們要用來生成離散的序列。如圖,針對第一個問題,首先是將的輸出作為,然后用來訓練。 我來答一答自然語言處理方面GAN的應用。直接把GAN應用到NLP領域(主要是生成序列),有兩方面的問題:1. GAN最開始是設計用于生成連續數據,但是自然語言處理中我們要用來生成離散tokens的序列。因為生成器(G...
摘要:于是,中將做了拆解,認為中生成模型應該包含的先驗分成兩種不能再做壓縮的和可解釋地有隱含意義的一組隱變量,簡寫為。利用這種更加細致的隱變量建模控制,可以說將的發展又推動了一步。 摘要在過去一兩年中,生成式模型 Generative Adversarial Networks(GAN)的新興為生成式任務帶來了不小的進展。盡管 GAN 在被提出時存在訓練不穩定等諸多問題,但后來的研究者們分別從模型、...
摘要:引用格式王坤峰,茍超,段艷杰,林懿倫,鄭心湖,王飛躍生成對抗網絡的研究與展望自動化學報,論文作者王坤峰,茍超,段艷杰,林懿倫,鄭心湖,王飛躍摘要生成式對抗網絡目前已經成為人工智能學界一個熱門的研究方向。本文概括了的研究進展并進行展望。 3月27日的新智元 2017 年技術峰會上,王飛躍教授作為特邀嘉賓將參加本次峰會的 Panel 環節,就如何看待中國 AI學術界論文數量多,但大師級人物少的現...
摘要:但年在機器學習的較高級大會上,蘋果團隊的負責人宣布,公司已經允許自己的研發人員對外公布論文成果。蘋果第一篇論文一經投放,便在年月日,斬獲較佳論文。這項技術由的和開發,使用了生成對抗網絡的機器學習方法。 GANs「對抗生成網絡之父」Ian Goodfellow 在 ICCV 2017 上的 tutorial 演講是聊他的代表作生成對抗網絡(GAN/Generative Adversarial ...
閱讀 1711·2021-11-22 12:09
閱讀 1451·2019-08-30 13:22
閱讀 2083·2019-08-29 17:00
閱讀 2635·2019-08-29 16:28
閱讀 2945·2019-08-26 13:51
閱讀 1174·2019-08-26 13:25
閱讀 3238·2019-08-26 12:14
閱讀 3006·2019-08-26 12:14