【GAN优化】如何选好正则项让你的GAN收敛
今天講述的內(nèi)容還是GAN的訓(xùn)練,也是最后一期,做幾個簡單的小實驗,告訴大家怎么給GAN加正則項,使得你的GAN盡可能收斂。其實今天的內(nèi)容本來還是與動力學(xué)結(jié)合很緊密,但是考慮到復(fù)雜的數(shù)學(xué)內(nèi)容可能有害無益,我就將數(shù)學(xué)部分都刪除了,只展示最直觀的結(jié)果。
作者&編輯 | 小米粥
上一期我們說了關(guān)于GAN收斂的這樣一件事情:如果矢量場v的雅可比矩陣的特征值的實部為負(fù)數(shù),且學(xué)習(xí)速率足夠小,則GAN會局部收斂到納什均衡點。假設(shè)學(xué)習(xí)速率確實足夠小,單純考慮特征值的問題。在納什均衡點,特征值的實數(shù)部分能否出現(xiàn)負(fù)數(shù)?這件事情是與目標(biāo)函數(shù)息息相關(guān)的,因為雅可比矩陣的一般形式如下:
不難料想,如果生成器和判別器的目標(biāo)函數(shù)f和g選取得當(dāng),上述矩陣的特征值的實數(shù)部分確實有可能為負(fù)數(shù)。今天用一個小實驗來盤點一下,到底哪些GAN,哪些目標(biāo)函數(shù)可能收斂。
1. Dirac-GAN
我們將使用一個極其簡單的Dirac-GAN模型作為測試對象,在一維空間中,訓(xùn)練數(shù)據(jù)只有一個點,其位置固定在x=0;生成器只包含一個參數(shù)θ,生成樣本的位置在x=θ,如下圖所示:
判別器為一個簡單的線性函數(shù)與激活函數(shù)復(fù)合的形式
包括一個參數(shù)φ ,其中f為激活函數(shù)。通過選擇不同的激活函數(shù)f(t)可對應(yīng)于不同的GAN形式,使用Sigmoid函數(shù)
可獲得原始形式,而選擇
可以得到WGAN的形式。Dirac-GAN的納什均衡點為(0,0),即生成的樣本與訓(xùn)練數(shù)據(jù)重合。
接下來,我們依次觀察不同的GAN能否收斂到均衡點。需要說明,實際情況遠遠復(fù)雜于Dirac-GAN,樣本不只是一維也不可能只存在一個樣本點,我們只是通過它來直觀說明一些問題,得到一些啟示。
2. 標(biāo)準(zhǔn)GAN與WGAN
2.1 標(biāo)準(zhǔn)GAN
標(biāo)準(zhǔn)GAN即Goodfellow首次提出的GAN的標(biāo)準(zhǔn)形式,其損失函數(shù)的表達式為:
在Dirac-GAN中,對應(yīng)的損失函數(shù)成為:
相應(yīng)的動力學(xué)系統(tǒng):
采用梯度下降法發(fā)現(xiàn)其并不收斂:
2.2 WGAN
WGAN改進了概率分布之間的距離的度量,其損失函數(shù)的表達式為:
在Dirac-GAN中,對應(yīng)的損失函數(shù)成為:
這里有一個簡化處理,假設(shè)當(dāng)訓(xùn)練到一定程度時,φ處于0附近,其值自然小于1,滿足Lipschitz限制。若只要關(guān)心其收斂情況,這樣的假設(shè)是合理的。相應(yīng)的動力學(xué)系統(tǒng):
采用梯度下降法則發(fā)現(xiàn)其并不收斂:
其實,與簡單的Dirac-GAN的實驗結(jié)果一致,無論是標(biāo)準(zhǔn)形式的GAN或者WGAN,從理論上證明,發(fā)現(xiàn)在納什均衡點(0,0),其特征值為f'(0)i和-f'(0)i,均不包含實部。根據(jù)之前的理論,參數(shù)軌跡確實不應(yīng)該表現(xiàn)為收斂,而且可以進一步證明,它在(0,0)附近的軌跡表現(xiàn)為“圓”,缺乏向納什均衡點靠攏的“向心力”。
可以說,現(xiàn)在的問題不是選擇什么樣的f(t),不是用fGAN或者WGAN的問題了,而是如何調(diào)整目標(biāo)函數(shù),也就是如何添加正則項,從而能解決特征值實部為負(fù)數(shù)的問題。
3. WGAN-GP
采用懲罰項的WGAN-GP是一種解決1-Lipschitz限制的軟方法,其損失函數(shù)的表達式為:
在Dirac-GAN中,對應(yīng)的損失函數(shù)成為:
相應(yīng)的動力學(xué)系統(tǒng):
采用梯度下降法則發(fā)現(xiàn)其也不收斂,說明這個正則項加的“不太好”。
4. 一致優(yōu)化
一致優(yōu)化是一種理論上比較“有保證”的GAN,具體內(nèi)容在上一期進行過詳細(xì)描述,以標(biāo)準(zhǔn)的GAN+一致優(yōu)化正則項為例,其損失函數(shù)的表達式為:
在Dirac-GAN中,對應(yīng)的損失函數(shù)成為:
相應(yīng)的動力學(xué)系統(tǒng):
結(jié)果有點復(fù)雜,但是確實在Dirac-GAN中精確收斂至(0,0):
正如上一期所說,實際情況中必須保證學(xué)習(xí)速率要足夠小,而且要比較好地控制超參數(shù),才可能收斂。
5. zero centered gradient
所謂zero centered gradient與WGAN-GP非常相近,就是添加正則項使判別器對輸入的梯度接近一個常數(shù),只不過在WGAN-GP中我們選擇常數(shù)為1,而這里選擇常數(shù)為0。(至于為何選擇0,這里不展開,以后有機會補充。)再細(xì)分下來,又包括兩種添加正則項的方法,一種是在真實數(shù)據(jù)上施加懲罰項,另一種是在生成數(shù)據(jù)上施加懲罰項。
如果選擇在真實數(shù)據(jù)上施加懲罰項,則其損失函數(shù)的表達式為:
如果選擇在生成數(shù)據(jù)上施加懲罰項,則其損失函數(shù)的表達式為:
無論如何,其在Dirac-GAN中,對應(yīng)的損失函數(shù)均表示為:
相應(yīng)的動力學(xué)系統(tǒng):
采用梯度下降法則發(fā)現(xiàn)其收斂:
這一個簡單將1改為0,使結(jié)果產(chǎn)生了巨大的變化,其實這一改變也正是Wasserstein散度的理論結(jié)果,注意這不是WGAN中的Wasserstein距離。
綜上,我們可以帶有啟發(fā)性得說,如果你的fGAN或者WGAN訓(xùn)練過程不收斂,試一下一致優(yōu)化正則項或者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.
總結(jié)
這篇文章用了一個非常簡單且直觀的Dirac-GAN進行實驗,首先說明了標(biāo)準(zhǔn)的GAN或者WGAN是無法收斂到納什均衡的,需要添加正則項。接下來,WGAN-GP也無法收斂,而一致優(yōu)化正則項和zero centered gradient可以實現(xiàn)收斂,這為我們提供了很好的啟示。
下期預(yù)告:GAN中的mode collapse問題
GAN群
有三AI建立了一個GAN群,便于有志者相互交流。感興趣的同學(xué)也可以微信搜索xiaozhouguo94,備注"加入有三-GAN群"。
有三AI夏季劃
有三AI夏季劃進行中,歡迎了解并加入,系統(tǒng)性成長為中級CV算法工程師。
轉(zhuǎn)載文章請后臺聯(lián)系
侵權(quán)必究
往期精選
總結(jié)
以上是生活随笔為你收集整理的【GAN优化】如何选好正则项让你的GAN收敛的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 中秋假期快乐!不发技术文章,有三AI知识
- 下一篇: 【NLP】 NLP领域最具影响力的国内外