【GAN优化】GAN训练的几个问题
從今天開始,我們將關注訓練GAN時產生的問題,作為第一篇文章,首先從幾個方面來分析一下實際訓練的GAN和理論模型上的GAN不同之處以及實踐中出現的問題。第一個部分將介紹最優判別器引發的梯度消失問題,第二部分使用一個例子介紹距離計算時的問題,接著第三部分將介紹優化問題的困惑以及給出模式崩潰一個簡單解釋,最后一部分簡單談一下參數空間的問題。
作者&編輯 | 小米粥
GAN模型在理論上非常優美,它訓練完成后的愿景是:生成器的隱式概率分布完全等于數據集的真實概率分布,判別器也無法對任意一個樣本點做出區分,而只能給出概率0.5。但是,實際上,這樣的結果是不太可能達到的。
1 梯度消失問題
在早期的GAN中,有一條經驗:不要把判別器訓練得太好,以避免后期梯度消失導致無法訓練生成器。在第三期中,我們曾談論過類似的問題,只不過是從f-divergence的角度來探討的,簡而言之,判別器的任務是輔助學習數據集的本質概率分布和生成器定義的隱式概率分布之間的某種距離,生成器的任務是使該距離達到最小甚至為0。但是當兩個概率分布沒有重合或者重合部分可忽略時,其f散度值為常數;當兩者完全重合時,f散度值突變成0。可以發現f散度距離無法為生成器提供可以減少損失函數的梯度信息,生成器無法獲得優化方向。
這次我們從GAN的訓練過程的角度再一次來談論這個問題。通過理論和大量的實踐,我們幾乎可以認為數據集的本質概率分布和生成器定義的隱式概率分布均是高維數據空間中的低維流形,幾乎不存在重疊部分(重疊部分的測度為0),可以證明此時必然存在一個最優判別器D*可以將兩個分布完全分開,它在數據集的分布上置1而在生成分布上置0,即:
而且在x的鄰域內,其導數為0,即
遺憾的是,此時我們無法使用反向傳播算法來使生成器進行學習,因為我們可以證明出:
即不斷訓練判別器D(x)使其逼近最優判別器的代價是:梯度消失!梯度一旦消失,生成器無法獲得任何信息來進行更新,兩個分布之間的距離并沒有被縮小,判別器無法更新,之后的迭代過程變成無用的循環過程。
2. 采樣計算距離問題
WGAN是解決上述梯度消失問題的一個好辦法, 現在我們來看在實際訓練GAN時候的第二個問題:
首先來看一個小例子,我們定義一個標準的正態分布:
然后,從該分布中采樣出m個(有限個)樣本組成一個均勻分布:
那么有一個結論:
也就是說,在有限個采樣個數的情況下(實際中樣本數m足夠大是不可能成立的),由樣本構成的“采樣分布”并不能簡單地等同于源分布,兩者還有一定的“距離”。更進一步地講,對于兩個正態分布,很可能“采樣分布”之間距離并不等于兩個分布之間的真實距離。
實際的結論確實如此:對于兩個標準正態分布 μ 和 υ 以及兩個分別從中采樣得到的樣本構成的均勻分布,有非常大的概率認為:
在GAN中,我們也是通過采樣來近似計算分布之間的距離的,最理想下狀態,兩個概率分布之間的距離等于兩個“采樣”分布的距離,或者相差很小:
但考慮到上述簡單的正態分布的例子中尚且存在這樣的問題,有理由認為在GAN中,依靠采樣來估計的分布之間的距離并不等于兩個分布的真實的距離。如果指導生成器進行學習的距離信息是有偏差的,則很可能無法將生成器定義的隱式概率分布逼近到數據集的本質概率分布。
3. minmax問題
GAN的訓練模式是這樣的:固定生成器G,迭代k次訓練判別器D;然后固定判別器D,訓練生成器G,兩者依次交替使用梯度下降法進行更新。但是這里會造成一種困惑,我們到底是在解決一個minmax問題還是maxmin問題?因為這兩個問題通常情況下并不一樣:
在maxmin的角度來看,GAN的訓練過程會產生模式崩潰(mode collapse)問題,就是指生成器生成的樣本有大量的重復,多樣性非常差(這是一個在實踐中經常出現的問題,在之后的文章中,我們將花許多精力來介紹mode collapse問題的解決方案)。
現在,我們通過一個粗略的例子,來簡單介紹一下模式崩潰問題的產生原因。真實數據集的本質概率密度函數通常是多峰函數,也就是具有很多模式(mode),假設真實數據集的本質概率密度函數有3個峰。首先,對于固定的判別器D,生成器面臨min問題,會努力將概率集值中放置到一個或幾個高概率的點(mode)上,例如x=5.0,希望以這種“偷懶”的方式來欺騙判別器D。
接著,固定生成器,判別器面對是一個max問題,對其進行更新,根據最優判別器的表達式:
更新后D(x)為:
可以看出,訓練后的D會對x=5.0及其周圍點的“極其不信任”。接下來再更新生成器時,為了取得最小值,生成器只得“偷懶”而將概率放置到其他的高概率的、判別器信任的模式上,例如x=0,即:
再次更新判別器D(x),其函數圖像為:
這時判別器識別降低了x=0的信任程度,但是同時又恢復了對x=5.0的信任程度,那么接下來再更新生成器時,生成器其又會將高概率點放置在x=-5.0或者x=5.0的點周圍,如此往復······
在實踐中,我們發現生成器往往不能涵蓋所有的模式,通常只包含部分模式。在訓練過程中,生成器的概率放置不斷地從一個模式轉換到另一個模式中,不斷往復,這樣訓練結束后,生成器產生的樣本必定有大量的重復。
3. 參數空間與函數空間問題
理論上,GAN確實可以收斂,但是該優化過程是在函數空間中完成的。實踐操作中,我們的優化操作是在神經網絡的權值構成的參數空間中進行的,理論上的保證在現實中并不成立。另外,有證明表示當參數的個數有限時,GAN的平衡狀態很可能是不存在的。
[1]?Arora, Sanjeev , et al. "Generalization and Equilibrium in Generative Adversarial Nets (GANs)." (2017).
[2]?Arjovsky, Martin , and Bottou, Léon. "Towards Principled Methods for Training Generative Adversarial Networks."?Stat(2017).
總結
這篇文章簡單介紹了實際訓練GAN的一些基本問題,下一期將利用微分方程從動力學的角度討論一下訓練收斂性的問題,將給出一個比較直觀的展示。
下期預告:從動力學視角看GAN的訓練
小通知:高溫假來襲,停更一期
GAN群
有三AI建立了一個GAN群,便于有志者相互交流。感興趣的同學也可以微信搜索xiaozhouguo94,備注"加入有三-GAN群"。
知識星球推薦
有三AI知識星球由言有三維護,內設AI知識匯總,AI書籍,網絡結構,看圖猜技術,數據集,項目開發,Github推薦,AI1000問八大學習板塊。
【知識星球】超3萬字的網絡結構解讀,學習必備
【知識星球】數據集板塊重磅發布,海量數據集介紹與下載
轉載文章請后臺聯系
侵權必究
往期精選
【GAN優化】GAN優化專欄上線,首談生成模型與GAN基礎
【GAN的優化】從KL和JS散度到fGAN
【GAN優化】詳解對偶與WGAN
【GAN優化】詳解SNGAN(頻譜歸一化GAN)
【GAN優化】一覽IPM框架下的各種GAN
【GAN優化】GAN優化專欄欄主小米粥自述,腳踏實地,莫問前程
【技術綜述】有三說GANs(上)
【模型解讀】歷數GAN的5大基本結構
總結
以上是生活随笔為你收集整理的【GAN优化】GAN训练的几个问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AI修行三十篇文章到不惑,已经掌握了什么
- 下一篇: 【图像分割应用】设备自动化(一)——自动