生成对抗网络(GAN)的数学原理全解
?PaperWeekly 原創(chuàng) ·?作者|孫裕道
學(xué)校|北京郵電大學(xué)博士生
研究方向|GAN圖像生成、情緒對抗樣本生成
論文標(biāo)題:
A Mathematical Introduction to Generative Adversarial Nets
論文鏈接:
https://arxiv.org/abs/2009.00169
引言
Goodfellow 大神的開創(chuàng)性工作 GAN 自 2014 年誕生以來,GAN 就受到了極大的關(guān)注,并且這種關(guān)注導(dǎo)致了 GANs 的新思想、新技術(shù)和新應(yīng)用的爆炸式增長。
GAN 的原論文中的證明會有一些不嚴(yán)謹(jǐn)?shù)牡胤?#xff0c;并且在算法中為了訓(xùn)練效率更高,也有很多簡化,其實(shí)這也是這個領(lǐng)域的一個常見現(xiàn)象,在北大的深度學(xué)習(xí)的數(shù)學(xué)原理的暑期課上,老師就提到過深度學(xué)習(xí)中數(shù)學(xué)嚴(yán)謹(jǐn)證明占 6 成。
言外之意就是該領(lǐng)域的證明過程并沒有純數(shù)學(xué)的那么嚴(yán)謹(jǐn),當(dāng)從計(jì)算機(jī)科學(xué)工程師角度去推導(dǎo)證明的時候,往往會有跟實(shí)際相悖的前提假設(shè),但是從該假設(shè)推導(dǎo)出來的結(jié)論卻是與實(shí)驗(yàn)結(jié)果相符或者該結(jié)論會對解決實(shí)際問題中有一定的指導(dǎo)意義。
該作者是一個數(shù)學(xué)底蘊(yùn)很強(qiáng)的 AI 研究者,該論文的目的是試圖從數(shù)學(xué)的角度對 GANs 進(jìn)行概述,是一篇不可多得好有關(guān) GAN 數(shù)學(xué)原理的理論性文章,論文中涉及到大量的數(shù)學(xué)原理和很多讓人眼花繚亂的數(shù)學(xué)符號,可以把它當(dāng)成一個 GAN 的理論手冊,對哪一塊感興趣就可以認(rèn)真研讀一番。
GAN背景介紹
榮獲圖靈獎品有深度學(xué)習(xí)三劍客之稱的 Yann LeCun 稱曾表示“GAN 的提出是最近 10 年在深度學(xué)習(xí)中最有趣的想法”。
下圖表示這 2014 到 2018 年以來有關(guān) GAN?的論文的每個月發(fā)表數(shù)量,可以看出在 2014 年提出后到 2016 年相關(guān)的論文是比較少的,但是從 2016 年,或者是 2017 年到今年這兩年的時間,相關(guān)的論文是真的呈現(xiàn)井噴式增長。
GAN 的應(yīng)用十分廣泛,它的應(yīng)用包括圖像合成、圖像編輯、風(fēng)格遷移、圖像超分辨率以及圖像轉(zhuǎn)換,數(shù)據(jù)增強(qiáng)等。
在這篇論文中,作者將嘗試從一個更數(shù)學(xué)的角度為初學(xué)者介紹 GAN,要完全理解 GANs,還必須研究其算法和應(yīng)用,但理解數(shù)學(xué)原理是理解 GANs 的關(guān)鍵的第一步,有了它,GANs 的其他變種將更容易掌握。
GAN 的目標(biāo)是解決以下問題:假設(shè)有一組對象數(shù)據(jù)集,例如,一組貓的圖像,或者手寫的漢字,或者梵高的繪畫等等,GAN 可以通過噪聲生成相似的對象,原理是神經(jīng)網(wǎng)絡(luò)通過使用訓(xùn)練數(shù)據(jù)集對網(wǎng)絡(luò)參數(shù)進(jìn)行適當(dāng)調(diào)整,并且深度神經(jīng)網(wǎng)絡(luò)可以用來近似任何函數(shù)。
對于 GAN 判別器函數(shù) D 和生成函數(shù) G 建模為神經(jīng)網(wǎng)絡(luò),其中具體 GAN 的模型如下圖所示,GAN 網(wǎng)絡(luò)實(shí)際上包含了 2 個網(wǎng)絡(luò),一個是生成網(wǎng)絡(luò) G 用于生成假樣本,另一個是判別網(wǎng)絡(luò) D 用于判別樣本的真假,并且為了引入對抗損失,通過對抗訓(xùn)練的方式讓生成器能夠生成高質(zhì)量的圖片。
具體的,對抗學(xué)習(xí)可以通過判別函數(shù) 和生成函數(shù) 之間的目標(biāo)函數(shù)的極大極小值來實(shí)現(xiàn)。生成器 G 將來自于 分布隨機(jī)樣本 轉(zhuǎn)化為生成樣本 。判別器 試圖將它們與來自分布 ?的訓(xùn)練真實(shí)樣本區(qū)分開來,而 G 試圖使生成的樣本在分布上與訓(xùn)練樣本相似。
GAN的數(shù)學(xué)公式
GAN的對抗博弈可以通過判別函數(shù) 和生成函數(shù) 之間的目標(biāo)函數(shù)的極大極小值來進(jìn)行數(shù)學(xué)化的表示。生成器 將隨機(jī)樣本 分布 轉(zhuǎn)化為生成樣本 。判別器 試圖將它們與來自分布 的訓(xùn)練樣本區(qū)分開來,而 試圖使生成的樣本在分布上與訓(xùn)練樣本相似。對抗的目標(biāo)損失函數(shù)如下所示為:
其中公式中, 表示關(guān)于下標(biāo)中指定分布的期望值。GAN 解決的極小極大值的描述如下所示:
直觀上,對于給定的生成器 , 優(yōu)化判別器 以區(qū)分生成的樣本 ,其原理是嘗試將高值分配給來自分布 的真實(shí)樣本,并將低值分配給生成的樣本 。
相反,對于給定的鑒別器 , 優(yōu)化 ,使得生成的樣本 將試圖“愚弄”判別器 以分配高值。設(shè) ,其分布為 ,可以用 和 重寫 為:
將上面的極大極小問題變?yōu)槿缦鹿?#xff1a;
假設(shè) 具有密度 , 具有密度函數(shù) (需要注意的是只有當(dāng) 時才會發(fā)生)。綜上所述最終可以寫成:
可以觀察到,在某些 的 的約束下,上述值與 等效。
論文中有大量公式和證明,會看的讓人很頭大,而且不同的命題和不同的定理交錯出現(xiàn),為了讀者能夠減少閱讀障礙,我從中挑選了一些自認(rèn)為比較重要的定理和命題,并且給它們重新進(jìn)行了排序整理。
命題1:給定在 上的概率分布 和 ,其中它們的概率密度函數(shù)為 和 ,則有如下:
其中,,的取值范圍為(sup表示上確界)。
定理1:設(shè) 是 上的概率密度函數(shù)。對于密度函數(shù)為 和 的概率分布 ,其極大極小值問題可以描述為:
對所有 ,可以解得 and 。
定理 1 說極大極小問題的解就是 Ian Goodfellow 在 2014 年那篇論文中推導(dǎo)出的 GAN 的優(yōu)化解。
定理2:設(shè) 為 上給定的概率分布。對于概率分布 和函數(shù) ,則有:
其中, and 對于 來說幾乎處處存在。
命題2:如果在每個訓(xùn)練周期中,允許鑒別器 達(dá)到其最佳給定 ,然后更新 ,根據(jù)最小化準(zhǔn)則有:
其中,分布 是收斂于分布 。
從純數(shù)學(xué)的角度來看,這個命題 2 并不嚴(yán)謹(jǐn)。然而,它為解決 GAN 極小極大問題提供了一個實(shí)用的框架。
綜上命題和定理可以將其歸納為如下的 GAN 算法框架,為了表達(dá)清晰,重新整理了一下該算法框架。
f-散度和f-GAN
4.1 f-散度
GAN 的核心本質(zhì)是通過對抗訓(xùn)練將隨機(jī)噪聲的分布拉近到真實(shí)的數(shù)據(jù)分布,那么就需要一個度量概率分布的指標(biāo)—散度。我們熟知的散度有 KL 散度公式如下(KL 散度有一個缺點(diǎn)就是距離不對稱性,所以說它不是傳統(tǒng)真正意義上的距離度量方法)。
和 JS 散度公式如下(JS 散度是改進(jìn)了 KL 散度的距離不對稱性):
但是其實(shí)能將所有我們熟知散度歸結(jié)到一個大類那就是 f- 散度,具體的定義如下所示:
定義1:設(shè) 和 是 上的兩個概率密度函數(shù)。則 和 的 f- 散度定義為:
其中,如果 時,會有 。
需要搞清楚一點(diǎn)事的 f- 散度依據(jù)所選函數(shù)不一樣,距離的不對稱也不一樣。
命題3:設(shè) 是域 上的嚴(yán)格凸函數(shù),使得 。假設(shè)(相當(dāng)于 )或 ,其中 。則有 , 當(dāng)且僅當(dāng) 。
4.2 凸函數(shù)和凸共軛
凸函數(shù)?的凸共軛也被稱為 的 Fenchel 變換或 Fenchel-Legendre 變換,它是著名的 Legendre 變換的推廣。設(shè) 是定義在區(qū)間 上的凸函數(shù),則其凸共軛 定義為:
引理1:假設(shè) 是嚴(yán)格凸的,且在其域 上連續(xù)可微,其中 與。則有:
命題4:設(shè) 是 上的凸函數(shù),其值域在 內(nèi)。那么 是凸的并且是下半連續(xù)的。此外,如果 是下半連續(xù)的,則滿足 Fenchel 對偶 。
下表列出了一些常見凸函數(shù)的凸對偶,如下表所示:
4.3 用凸對偶估計(jì)f-散度
為了估計(jì)樣本的 f- 散度可以使用 f 的凸對偶,具體的推導(dǎo)公式如下所示:
其中 是任何 Borel 函數(shù),這樣就得到了所有的 Borel 函數(shù)如下所示:
命題5:設(shè) 是嚴(yán)格凸的且在 上連續(xù)可微的,設(shè) , 是 上的 Borel 概率測度,使得 ,則有:
其中 是一個優(yōu)化器。
定理3:設(shè) 是凸的,使得 的域?qū)δ承? 包含 ,設(shè) 是 上的 Borel 概率測度,則有:
其中對于所有的 Borel 函數(shù)有 。
定理4:設(shè) 是下半連續(xù)凸函數(shù),使得 的域 具有 。設(shè) 為 上的 Borel 概率測度,使得 ,其中 和?。那么:
其中對于所有的 Borel 函數(shù)有 。
4.4 f-GAN和VDM
用 f- 散度來表示 GAN 的推廣。對于給定的概率分布 ,f-GAN 的目標(biāo)是最小化相對于概率分布 的 f- 散度 。在樣本空間中,f-GAN 解決了下面的極大極小問題:
可以將如上的優(yōu)化問題稱為變分散度最小化(VDM)。注意 VDM 看起來類似于 GAN 中的極大極小值問題,其中 Borel 函數(shù) 被稱為評判函數(shù)。
定理5:設(shè) 是一個下半連續(xù)嚴(yán)格凸函數(shù),使得 的域 。進(jìn)一步假定 在其域上是連續(xù)可微的,且 并且 。設(shè) ? 上的 Borel 概率測度,則 有如下公式:
其中對于所有的 Borel 函數(shù)有 。
綜上所述,下面為 f-GAN 的算法流程框架。
4.4.1 Example1:?
當(dāng)函數(shù) ,這里的f-散度就是為我們熟知的 KL 散度。則它的共軛函數(shù)為 ,其中 ,其相應(yīng)的目標(biāo)函數(shù)為:
其中 ,忽略掉常數(shù) +1 的常數(shù)項(xiàng),并且 ,然后會有我們最原始的那種 GAN 的形式:
4.4.2 Example2:?
這就是詹森-香農(nóng)散度,該函數(shù)的共軛函數(shù)為 ,域 。相應(yīng)的 f-GAN 的目標(biāo)函數(shù)為:
其中 ,,,所以進(jìn)一步可以化簡為:
其中在這個公式中忽略掉常數(shù)項(xiàng) 。
4.4.3 Example3: ,
該函數(shù)的共軛函數(shù)為 ,域 。當(dāng) 不是嚴(yán)格凸的連續(xù)可微時,相應(yīng)的 f-GAN 目標(biāo)函數(shù)如下所示:
上面這個目標(biāo)函數(shù)的形式就是 Wasserstein GAN 的目標(biāo)函數(shù)。
4.4.4 Example4:?
已知 ,所以該函數(shù)為嚴(yán)格凸函數(shù)。相應(yīng)的 f-GAN 的目標(biāo)函數(shù)為:
對上公式進(jìn)一步求解可得:
其中里面有原始 GAN 論文中使用的“l(fā)ogD”技巧,用于 GAN 解決梯度飽和問題。
GAN的具體實(shí)例
對于 GAN 的應(yīng)用實(shí)例,我沒有按照論文中給出的實(shí)例進(jìn)行介紹,我介紹了在自己的感官上覺得不錯的 GAN。
5.1 WGAN
訓(xùn)練一個 GAN 可能很困難,它經(jīng)常會遇到各種問題,其中最主要的問題有以下三點(diǎn):
消失梯度:這種情況經(jīng)常發(fā)生,特別是當(dāng)判別器太好時,這會阻礙生辰器的改進(jìn)。使用最佳的判別器時,由于梯度的消失,訓(xùn)練可能失敗,因此無法提供足夠的信息給生成器改進(jìn)。
模式塌縮:這是指生成器開始反復(fù)產(chǎn)生相同的輸出(或一小組輸出)的現(xiàn)象。如果判別器陷入局部最小值,那么下一個生成器迭代就很容易找到判別器最合理的輸出。判別器永遠(yuǎn)無法學(xué)會走出陷阱。
收斂失敗:由于許多因素(已知和未知),GANs 經(jīng)常無法收斂。
WGAN 做了一個簡單的修改,用 Wasserstein 距離(也稱為推土機(jī)(EM)距離)代替 GAN 中的 Jensen-Shannon 散度損失函數(shù)。不要忽視這一修改的意義:這是自 GAN 誕生以來本課題最重要的進(jìn)展之一,因?yàn)?EM 距離的使用有效地解決了基于散度的 GAN 的一些突出缺點(diǎn),從而可以減輕 GANs 訓(xùn)練中常見的故障模式。
5.2 DCGAN
DCGAN 是將卷積引入到 GAN 的訓(xùn)練過程中,使得參數(shù)量和訓(xùn)練效果更好,它實(shí)際訓(xùn)練 GANs 中提供了很多的指導(dǎo)方向,具體有如下五點(diǎn):
用跨步卷積替換生成器和判別器中的任何池化層。
在生成器和鑒別器中使用批處理規(guī)范化。
移除完全連接的隱藏層以獲得更深層的架構(gòu)。
除了使用 Tanh 的輸出之外,在生成器中對所有層使用 ReLU 激活,。
在所有層的判別器中使用 LeakyReLU 激活。
需要注意的是判別器是從高維向量到低維向量是卷積過程,如下圖所示:
生成器是低維向量到高維向量是一個反卷積過程,反卷積又名轉(zhuǎn)置卷積和微步卷積,卷積和反卷積兩者的區(qū)別在于 padding 的方式不同,看看下面這張圖片就可以明白了:
DCGAN 還有一個重要的創(chuàng)新之處在于將矢量加法引入到圖像生成中,如下圖所示:
5.3 StyleGAN
StyleGAN 提出了一個新的生成器框架,號稱能夠控制所生成圖像的高層級屬性,如發(fā)型、雀斑等;并且生成的圖像在一些評價標(biāo)準(zhǔn)上得分更好,作為無監(jiān)督學(xué)習(xí)的一種 GAN,它能夠從噪聲生成高分辨率的高清圖像。具體的算法框架原理圖如下所示:
StyleGAN 中生成的圖像之清晰,細(xì)節(jié)之豐富由下圖可見一斑,當(dāng)然訓(xùn)練的成本也是很高的。
5.4 zi2zi
zi2zi 是我最喜歡的 GAN 的一種應(yīng)用,它是利用 GAN 來對字體風(fēng)格進(jìn)行轉(zhuǎn)換,以前的工作是處理類似的中文字體轉(zhuǎn)化問題,結(jié)果不是很理想,糾其原因有生成的圖片通常很模糊,對更多的有風(fēng)格的字體處理時效果不好,每次只能有限地學(xué)習(xí)和輸出一種目標(biāo)字體風(fēng)格,GAN 能很好的解決以上問題,其模型框架如下圖所示:
中文字符,不論簡體還是繁體,或者日本文,都用相同的原理構(gòu)建并有著一系列相同的根基,其中具體的實(shí)現(xiàn)結(jié)果如下圖所示:
更多閱讀
#投 稿?通 道#
?讓你的論文被更多人看到?
如何才能讓更多的優(yōu)質(zhì)內(nèi)容以更短路徑到達(dá)讀者群體,縮短讀者尋找優(yōu)質(zhì)內(nèi)容的成本呢?答案就是:你不認(rèn)識的人。
總有一些你不認(rèn)識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學(xué)者和學(xué)術(shù)靈感相互碰撞,迸發(fā)出更多的可能性。?
PaperWeekly 鼓勵高校實(shí)驗(yàn)室或個人,在我們的平臺上分享各類優(yōu)質(zhì)內(nèi)容,可以是最新論文解讀,也可以是學(xué)習(xí)心得或技術(shù)干貨。我們的目的只有一個,讓知識真正流動起來。
?????來稿標(biāo)準(zhǔn):
? 稿件確系個人原創(chuàng)作品,來稿需注明作者個人信息(姓名+學(xué)校/工作單位+學(xué)歷/職位+研究方向)?
? 如果文章并非首發(fā),請?jiān)谕陡鍟r提醒并附上所有已發(fā)布鏈接?
? PaperWeekly 默認(rèn)每篇文章都是首發(fā),均會添加“原創(chuàng)”標(biāo)志
?????投稿郵箱:
? 投稿郵箱:hr@paperweekly.site?
? 所有文章配圖,請單獨(dú)在附件中發(fā)送?
? 請留下即時聯(lián)系方式(微信或手機(jī)),以便我們在編輯發(fā)布時和作者溝通
????
現(xiàn)在,在「知乎」也能找到我們了
進(jìn)入知乎首頁搜索「PaperWeekly」
點(diǎn)擊「關(guān)注」訂閱我們的專欄吧
關(guān)于PaperWeekly
PaperWeekly 是一個推薦、解讀、討論、報道人工智能前沿論文成果的學(xué)術(shù)平臺。如果你研究或從事 AI 領(lǐng)域,歡迎在公眾號后臺點(diǎn)擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。
與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的生成对抗网络(GAN)的数学原理全解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 消息称英伟达 RTX 4090/4090
- 下一篇: 上市公司分红散户能分到吗