不用L約束又不會梯度消失的GAN,瞭解一下?
作者丨蘇劍林
單位丨廣州火焰資訊科技有限公司
研究方向丨NLP,神經網路
個人主頁丨kexue.fm
不知道從什麼時候開始,我發現我也掉到了 GAN 的大坑裡邊了,唉,爭取早日能跳出來。
本文介紹的是我最近提交到 arXiv 的一個關於 GAN 的新框架,裡邊主要介紹了一種對概率散度的新理解,並且基於這種理解推匯出了一個新的 GAN。 整篇文章比較偏理論,對這個 GAN 的相關性質都做了完整的論證,自認為是一個理論完備的結果。

論文連結:PaperWeekly
原始碼連結: ofollow,noindex"> https:// github.com/bojone/gan-q p
先擺結論:
1. 論文提供了一種分析和構造概率散度的直接思路 ,從而簡化了構建新 GAN 框架的過程;
2. 推匯出了一個稱為 GAN-QP 的 GAN 框架 ,這個 GAN 不需要像 WGAN 那樣的 L 約束,又不會有 SGAN 的梯度消失問題,實驗表明它至少有不遜色於、甚至優於 WGAN 的表現。

論文的實驗最大做到了 512 x 512 的人臉生成(CelebA HQ),充分表明了模型的有效性(效果不算完美,但是模型特別簡單)。有興趣的朋友,歡迎繼續閱讀下去。
直面對偶空間
我們現在要構建一個 GAN 框架,一般包含三個步驟:
- 尋求一種良好的概率散度;
- 找出它的對偶形式;
- 轉化為極小-極大遊戲(min-max game)。
問題是:真正對訓練過程有用的是第二、第三步,第一步並不是那麼必要。
事實上,從原空間要定義一個新的散度很難,定義了之後也不一定容易轉化為對偶形式。然而,我們可以直接在對偶空間分析,由此可以發現一批新的、形態良好的散度。換言之,我們其實可以直接在對偶空間中論述一個式子是否滿足散度的定義,從而直接給出可優化的目標,而不需要關心它具體是 JS 散度還是 W 距離了。
下面我們來舉例說明這個思路。
散度
首先我們來給出散度的定義:
如果 D[p,q] 是關於 p,q 的標量函式,並且滿足:
- D[p,q]≥0 恆成立;
- D[p,q]=0⇔p=q。
那麼稱 D[p,q] 為 p,q 的一個散度,散度與“距離”的主要差別是散度不用滿足三角不等式,也不用滿足對稱性。但是散度已經保留了度量差距的最基本的性質,所以我們可以用它來度量 p,q 之間的差異程度。
SGAN
基本定義
我們先來看 SGAN 中的判別器 loss,定義:

這其實就是 JS 散度的對偶形式。但是我們可以直接基於這個定義來證明它是一個散度,然後討論這個散度本身的性質,而根本不需要知道它是 JS 散度。
怎麼證明?只需要證明這個結果滿足剛才說的散度的兩點要求。注意,按照我們的邏輯,我們不知道它是 JS 散度,但我們可以從數學角度證明它是一個散度。
其實如果讀者真的明白了式 (1) 的含義,證明就不困難了。式 (1) 先定義了一個期望的式子,然後對 T 取最大(用更準確的說法是求“上確界”),取最大的結果才是散度。再強調一遍,“取最大之後的結果才是散度”, 這個式子並不是散度。
具體的證明過程略微冗長,就不完整擺出來了,請讀者自行去看原文的附錄。或者看下面的 WGAN 的部分,因為 WGAN 的部分相對簡單。
對抗網路
假如有了散度之後,我們就可以通過縮小兩個概率分佈的散度,來訓練生成模型了。也就是說接下來要做的事情應該是:

注意 D[p(x),q(x)] 是通過 maxT 操作實現的,所以組合起來就是一個 min-max 的過程,比如前面的例子,等價地就是:

這就是 SGAN。
所以我們發現, GAN 的過程其實就兩步: 1)通過 max 定義一個散度;2)通過 min 縮小兩個分佈的散度。這裡的新觀點,就是將 max 直接作為散度的定義的一部分。
效能分析
我們知道 SGAN 可能有梯度消失的風險,這是為什麼呢?我們考察一個極端情形:

其中 α≠β。這樣一來,兩個分佈分別只是單點分佈,完全沒有交集。這種情況下代入 (1),結果就是:

注意我們對 T 沒有任何約束,所以為了取最大,我們可以讓 T(α)→+∞,T(β)→−∞,從而得到上確界是一個常數 log2。即這種情況下 D[p(x),q(x)]=log2。
這就是說,對於兩個幾乎沒有交集的分佈,式 (1) 定義的散度給出的度量結果是常數 log2,常數就意味著梯度是 0,無法優化。而 WGAN 的那兩篇文章則表明,“沒有交集”理論上在 GAN 中是很常見的,所以這是 SGAN 的固有毛病。
一般的f散度
上面的幾個小節已經完整了呈現了這種 理解的流程:
1. 我們通過 max 定義一個數學式子,然後可以從數學角度直接證明這是一個散度,而不用關心它叫什麼名字;
2. 通過 min 最小化這個散度,組合起來就是一個 min-max 的過程,就得到了一種 GAN;
3. 為了檢查這種散度在極端情況下的表現,我們可以用 p(x)=δ(x−α),q(x)=δ(x−β) 去測試它。
上述關於 SGAN 的論述過程,可以平行地推廣到所有的 f-GAN 中(參考 《f-GAN簡介:GAN模型的生產車間》 ),各種 f 散度其實沒有本質上的差異,它們有同樣的固有毛病(要不就梯度消失,要不就梯度爆炸)。
WGAN
基本定義
現在我們轉向一類新的散度:Wasserstein 距離。注意 Wasserstein 距離是一個嚴格的、滿足公理化定義的距離,不過我們這裡只關心它的散度性質。定義:

這裡:

而 d(x,y) 是任意一種現成的距離。
可以直接證明它是一個散度。這個證明還算經典,所以將它寫在這裡:
1. 不管是什麼 p(x),q(x),只要讓 T(x)≡0,我們就得到 ,因為散度的定義是要遍歷所有的 T 取最大的,所以它至少不會小於 0,這就證明了第一點非負性;
2. 證明 p(x)=q(x) 時,W[p(x),q(x)]=0,也就是 W[p(x),p(x)]=0,這幾乎是顯然成立的了;
3. 證明 p(x)≠q(x) 時(嚴格來講是它們不等的測度大於 0),W[p(x),q(x)]>0。這個相對難一點,但其實也很簡單,只需要令 T0(x)=sign(p(x)−q(x)),那麼顯然有:

這樣我們就直接地證明了 W[p(x),q(x)] 是滿足散度的定義的。
對抗網路
同樣地,有了新散度,就可以定義新 GAN 了:

這就是 WGAN,相應的參考資料有 互懟的藝術:從零直達WGAN-GP 、 WGAN-div:一個默默無聞的WGAN填坑者 。
效能分析
同樣地,用 p(x)=δ(x−α),q(x)=δ(x−β) 去測試 W[p(x),q(x)] 散度的效能,我們得到:

注意我們有 L 約束 ‖T‖L≤1,這意味著 |T(α)−T(β)|≤d(α,β),等號可以取到,所以:

結果不是常數,所以即使在這種極端情況下我們可以也拉近兩個分佈的距離。所以從這一點看,WGAN 要比 SGAN 要好。
L約束
WGAN 的遺留問題就是如何往判別器加入 L 約束,目前有三種方案:引數裁剪、梯度懲罰、譜歸一化 ,請參考 深度學習中的Lipschitz約束:泛化與生成模型 和 WGAN-div:一個默默無聞的WGAN填坑者 。
引數裁剪基本已經被棄用了。梯度懲罰原則上只是一個經驗方法,有它的不合理之處,而且要算梯度通常很慢。譜歸一化看起來最優雅,目前效果也挺好,不過也有限制的太死的可能性。進一步討論請看 WGAN-div:一個默默無聞的WGAN填坑者 。
新散度,新GAN
現在的結論是:SGAN 可能有梯度消失的風險,WGAN 雖然很好,但需要額外的 L 約束。那麼很自然就會問: 有沒有不需要 L 約束,又不會梯度消失的 GAN?魚與熊掌能否兼得?
還真的可以,下面帶你找一個。不對,其實不止一個,帶你找一批都行。
平方勢散度
基本定義
下面要給出的散度,形式是這樣的:

其中 λ>0 是一個超引數,d 可以是任意距離。
這個形式好像就在 WGAN 的基礎上加了一個平方形式的勢能,所以稱為平方勢散度(QP-div,quadratic potential divergence)。
論文的附錄已經證明了式 (12) 確實是一個散度。
效能分析
用 p(x)=δ(x−α),q(x)=δ(x−β) 去測試這個散度,結果是:

設 z=T(α,β)−T(β,α) 就得到 Line"/> ,很熟悉有沒有?這只是個二次函式的最大值問題呀,最大值是
呀,所以我們就有:

這不就跟 WGAN 差不多了嘛,哪怕對於極端分佈,也不會有梯度消失的風險。魚與熊掌真的可以兼得。
GAN-QP
對抗網路
有了散度就可以構建對抗網路,我們最終給出的形式為:

我在論文中稱之為 GAN-QP。
注意不要把二次項 這一項加入到生成器的 loss 中(理論上不成問題,但是用梯度下降優化時會有問題。),因為這一項的分母是 d(xr,xf),一旦最小化二次項,等價於最小化 d(xr,xf),也就是用 d(xr,xf) 來度量圖片的差距,這是不科學的。
解的分析
通過變分法可以證明(還是在附錄),判別器的最優解是:

由這個最優解,我們可以得到兩點結論。首先,不難證明最優解滿足:

也就是說最優解自動滿足 L 約束。 所以我們可以認為 GAN-QP 是一種自適應 L 約束的方案。
其次,將最優解代入生成器的 loss,那麼得到判別器的目標是:

這也是一個概率散度,並且我們也從理論上證明了它不會梯度消失/爆炸(跟柯西不等式有關)。此外,還可以看到 λ 只是一個縮放因子,事實上並不重要,從而這個 GAN-QP 對 λ 是魯棒的,λ 不會明顯影響模型的效果。
實驗結果
論文在 CelebA HQ 資料集上,比較了多種 GAN 與 GAN-QP 的效果,表明 GAN-QP 能媲美甚至超越當前最優的模型。
注意,模型 (15) 中,T 是 (xr,xf) 的二元函式,但實驗表明,取最簡單的一元特例 T(xr,xf)≡T(xr) 即可,即 T(xr,xf)−T(xf,xr) 用 T(xr)−T(xf) 就夠了,改成二元函式並沒有明顯提升(但也可能是我沒調好)。這樣的話,形式上就跟 WGAN-GP 非常相似了,但理論更完備。
128 x 128
在 128 x 128 解析度上,我們進行了較為全面的比較,定量指標是 FID。結果如下圖:

以及下表:

256 與 512
在 128 解析度上,最好的表現是 GAN-QP 和 SGAN-SN,不過在 256 x 256 解析度上,它們的表現就拉開了差距:

我最大把 GAN-QP 的實驗做到了 512 x 512 的人臉生成,效果還是不錯的,最終的 FID 是 26.44:

論文綜述
這篇文章源於我對概率散度的思考,企圖得到一種更直接的理解概率散度的方案,其中還受啟發於WGAN-div。
幸好,最後把這條路走通了,還得到了一些新結果,遂提交到 Github 中,供各位參考,希望得到各位前輩高手的指點。事實上,基於類似的思路,我們可以構造很多類似的散度,比如將平方換成 4 次、6 次方等,只不過理論分析起來就會困難一些了。
限於算力,加之我不是專門研究 GAN 的,所以實驗方面可能做得不夠完善,基本能論證結論即可,請大家體諒,當然也歡迎各位的指導。
#投 稿 通 道#
如何才能讓更多的優質內容以更短路徑到達讀者群體,縮短讀者尋找優質內容的成本呢? 答案就是:你不認識的人。
總有一些你不認識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋樑,促使不同背景、不同方向的學者和學術靈感相互碰撞,迸發出更多的可能性。
PaperWeekly 鼓勵高校實驗室或個人,在我們的平臺上分享各類優質內容,可以是 最新論文解讀 ,也可以是 學習心得 或 技術乾貨 。我們的目的只有一個,讓知識真正流動起來。
:memo: 來稿標準:
• 稿件確係個人 原創作品 ,來稿需註明作者個人資訊(姓名+學校/工作單位+學歷/職位+研究方向)
• 如果文章並非首發,請在投稿時提醒並附上所有已釋出連結
• PaperWeekly 預設每篇文章都是首發,均會新增“原創”標誌
:mailbox_with_mail: 投稿方式:
• 方法一:在PaperWeekly知乎專欄頁面點選“投稿”,即可遞交文章
• 方法二:傳送郵件至: [email protected] ,所有文章配圖,請單獨在附件中傳送
• 請留下即時聯絡方式(微信或手機),以便我們在編輯釋出時和作者溝通
關於PaperWeekly
PaperWeekly 是一個推薦、解讀、討論、報道人工智慧前沿論文成果的學術平臺。如果你研究或從事 AI 領域,歡迎在公眾號後臺點選 「交流群」 ,小助手將把你帶入 PaperWeekly 的交流群裡。
加入社群: http:// paperweek.ly
微信公眾號:PaperWeekly