「GAN優化」如何選好正則項讓你的GAN收斂

dicksonjyl560101發表於2019-09-26

今天講述的內容還是GAN的訓練,也是最後一期,做幾個簡單的小實驗,告訴大家怎麼給GAN加正則項,使得你的GAN儘可能收斂。其實今天的內容本來還是與動力學結合很緊密,但是考慮到複雜的數學內容可能有害無益,我就將數學部分都刪除了,只展示最直觀的結果。

作者 | 小米粥

編輯 | 言有三

上一期我們說了關於GAN收斂的這樣一件事情:如果向量場v的雅可比矩陣的特徵值的實部為負數,且學習速率足夠小,則GAN會區域性收斂到納什均衡點。假設學習速率確實足夠小,單純考慮特徵值的問題。在納什均衡點,特徵值的實數部分能否出現負數?這件事情是與目標函式息息相關的,因為雅可比矩陣的一般形式如下:

「GAN優化」如何選好正則項讓你的GAN收斂

不難料想,如果生成器和判別器的目標函式f和g選取得當,上述矩陣的特徵值的實數部分確實有可能為負數。今天用一個小實驗來盤點一下,到底哪些GAN,哪些目標函式可能收斂。

1. Dirac-GAN

我們將使用一個極其簡單的Dirac-GAN模型作為測試物件,在一維空間中,訓練資料只有一個點,其位置固定在x=0;生成器只包含一個引數θ,生成樣本的位置在x=θ,如下圖所示:

「GAN優化」如何選好正則項讓你的GAN收斂

判別器為一個簡單的線性函式與啟用函式複合的形式

「GAN優化」如何選好正則項讓你的GAN收斂

包括一個引數φ ,其中f為啟用函式。通過選擇不同的啟用函式f(t)可對應於不同的GAN形式,使用Sigmoid函式

「GAN優化」如何選好正則項讓你的GAN收斂

可獲得原始形式,而選擇

「GAN優化」如何選好正則項讓你的GAN收斂

可以得到WGAN的形式。Dirac-GAN的納什均衡點為(0,0),即生成的樣本與訓練資料重合。

「GAN優化」如何選好正則項讓你的GAN收斂

接下來,我們依次觀察不同的GAN能否收斂到均衡點。需要說明,實際情況遠遠複雜於Dirac-GAN,樣本不只是一維也不可能只存在一個樣本點,我們只是通過它來直觀說明一些問題,得到一些啟示。

2. 標準GAN與WGAN

2.1 標準GAN

標準GAN即Goodfellow首次提出的GAN的標準形式,其損失函式的表示式為:

「GAN優化」如何選好正則項讓你的GAN收斂

在Dirac-GAN中,對應的損失函式成為:

「GAN優化」如何選好正則項讓你的GAN收斂

相應的動力學系統:

「GAN優化」如何選好正則項讓你的GAN收斂

採用梯度下降法發現其並不收斂:

「GAN優化」如何選好正則項讓你的GAN收斂

2.2 WGAN

WGAN改進了概率分佈之間的距離的度量,其損失函式的表示式為:

「GAN優化」如何選好正則項讓你的GAN收斂

在Dirac-GAN中,對應的損失函式成為:

「GAN優化」如何選好正則項讓你的GAN收斂

這裡有一個簡化處理,假設當訓練到一定程度時,φ處於0附近,其值自然小於1,滿足Lipschitz限制。若只要關心其收斂情況,這樣的假設是合理的。相應的動力學系統:

「GAN優化」如何選好正則項讓你的GAN收斂

採用梯度下降法則發現其並不收斂:

「GAN優化」如何選好正則項讓你的GAN收斂

其實,與簡單的Dirac-GAN的實驗結果一致,無論是標準形式的GAN或者WGAN,從理論上證明,發現在納什均衡點(0,0),其特徵值為f'(0)i和-f'(0)i,均不包含實部。根據之前的理論,引數軌跡確實不應該表現為收斂,而且可以進一步證明,它在(0,0)附近的軌跡表現為“圓”,缺乏向納什均衡點靠攏的“向心力”。

可以說,現在的問題不是選擇什麼樣的f(t),不是用fGAN或者WGAN的問題了,而是如何調整目標函式,也就是如何新增正則項,從而能解決特徵值實部為負數的問題。

3. WGAN-GP

採用懲罰項的WGAN-GP是一種解決1-Lipschitz限制的軟方法,其損失函式的表示式為:

「GAN優化」如何選好正則項讓你的GAN收斂

在Dirac-GAN中,對應的損失函式成為:

「GAN優化」如何選好正則項讓你的GAN收斂

相應的動力學系統:

「GAN優化」如何選好正則項讓你的GAN收斂

採用梯度下降法則發現其也不收斂,說明這個正則項加的“不太好”。

「GAN優化」如何選好正則項讓你的GAN收斂

4. 一致優化

一致優化是一種理論上比較“有保證”的GAN,具體內容在上一期進行過詳細描述,以標準的GAN+一致優化正則項為例,其損失函式的表示式為:

「GAN優化」如何選好正則項讓你的GAN收斂

在Dirac-GAN中,對應的損失函式成為:

「GAN優化」如何選好正則項讓你的GAN收斂

相應的動力學系統:

「GAN優化」如何選好正則項讓你的GAN收斂

結果有點複雜,但是確實在Dirac-GAN中精確收斂至(0,0):

「GAN優化」如何選好正則項讓你的GAN收斂

正如上一期所說,實際情況中必須保證學習速率要足夠小,而且要比較好地控制超引數,才可能收斂。

5. zero centered gradient

所謂zero centered gradient與WGAN-GP非常相近,就是新增正則項使判別器對輸入的梯度接近一個常數,只不過在WGAN-GP中我們選擇常數為1,而這裡選擇常數為0。(至於為何選擇0,這裡不展開,以後有機會補充。)再細分下來,又包括兩種新增正則項的方法,一種是在真實資料上施加懲罰項,另一種是在生成資料上施加懲罰項。

如果選擇在真實資料上施加懲罰項,則其損失函式的表示式為:

「GAN優化」如何選好正則項讓你的GAN收斂

如果選擇在生成資料上施加懲罰項,則其損失函式的表示式為:

「GAN優化」如何選好正則項讓你的GAN收斂

無論如何,其在Dirac-GAN中,對應的損失函式均表示為:

「GAN優化」如何選好正則項讓你的GAN收斂

相應的動力學系統:

「GAN優化」如何選好正則項讓你的GAN收斂

採用梯度下降法則發現其收斂:

「GAN優化」如何選好正則項讓你的GAN收斂

這一個簡單將1改為0,使結果產生了巨大的變化,其實這一改變也正是Wasserstein散度的理論結果,注意這不是WGAN中的Wasserstein距離。

綜上,我們可以帶有啟發性得說,如果你的fGAN或者WGAN訓練過程不收斂,試一下一致優化正則項或者zero centered gradient正則項吧。

[1] Mescheder L , Nowozin S , Geiger A . The Numerics of GANs[J]. 2017.

[2] Mescheder L , Geiger A , Nowozin S . Which Training Methods for GANs do actually Converge?[J]. 2018.

總結

這篇文章用了一個非常簡單且直觀的Dirac-GAN進行實驗,首先說明了標準的GAN或者WGAN是無法收斂到納什均衡的,需要新增正則項。接下來,WGAN-GP也無法收斂,而一致優化正則項和zero centered gradient可以實現收斂,這為我們提供了很好的啟示。

https://www.toutiao.com/i6736934829104841220/

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29829936/viewspace-2658422/,如需轉載,請註明出處,否則將追究法律責任。

相關文章