天天看點

GAN ZOO - 第1節: 分析GAN的缺陷與改進方向,介紹典型的改進模型:CGAN、InfoGAN GAN ZOO - 第1節:分析GAN的缺陷與改進方向,介紹典型的改進模型:CGAN、InfoGAN

0. “GAN ZOO”系列文章開更說明

GAN ZOO - 第1節: 分析GAN的缺陷與改進方向,介紹典型的改進模型:CGAN、InfoGAN GAN ZOO - 第1節:分析GAN的缺陷與改進方向,介紹典型的改進模型:CGAN、InfoGAN

    GAN到底有多“熱”?

    據統計,GAN的相關論文正在以指數趨勢增長,如上圖所示。

    But,

    GAN論文這麼多,而且都是英文的,怎麼可能讀得完!

    為此,“AI微刊”團隊将推出“GAN ZOO”系列文章,精選典型GAN模型(沒有水論文),對其進行精簡的解析,讓你“三分鐘”讀完一篇論文。

    适合初學小白,也适合大牛持續追蹤熱度。

    再不GAN,我們就老了!

——AI 微刊《GAN ZOO》

GAN ZOO - 第1節:

分析GAN的缺陷與改進方向,介紹典型的改進模型:CGAN、InfoGAN

本文是“GAN ZOO”系列第一篇,将為您:

  • 剖析原始GAN的原生缺陷以及改進方向!
  • 介紹經典模型:條件GAN(CGAN)與InfoGAN。

1. 原始GAN (Primary GAN ):GAN源于神奇的零和博弈,但也存在許多原生缺陷

GAN ZOO - 第1節: 分析GAN的缺陷與改進方向,介紹典型的改進模型:CGAN、InfoGAN GAN ZOO - 第1節:分析GAN的缺陷與改進方向,介紹典型的改進模型:CGAN、InfoGAN

本論文首次發表于2014.6.10

1.1 原始GAN的原理

1.1.1 原始GAN的思想:

    GAN基于博弈論中零和博弈的思想,通過生成網絡G(Generator)和判别網絡D(Discriminator)互相博弈,進而使G學習到樣本的資料分布:

  • G是一個生成網絡,接收随機噪聲z,并将其拟合為樣本;
  • D是一個判别網絡,判斷樣本是真實樣本x,還是G生成的假樣本G(z);

    訓練過程中,G生成盡可能“接近真實”的樣本來欺騙D,而D盡量辨識給出的樣本是真樣本x還是假樣本G(z),雙方動态“博弈”,最終達到納什均衡點。

1.1.2 原始GAN的模型

    GAN損失函數:

GAN ZOO - 第1節: 分析GAN的缺陷與改進方向,介紹典型的改進模型:CGAN、InfoGAN GAN ZOO - 第1節:分析GAN的缺陷與改進方向,介紹典型的改進模型:CGAN、InfoGAN

    GAN算法流程:

GAN ZOO - 第1節: 分析GAN的缺陷與改進方向,介紹典型的改進模型:CGAN、InfoGAN GAN ZOO - 第1節:分析GAN的缺陷與改進方向,介紹典型的改進模型:CGAN、InfoGAN

PS:原始GAN詳細解析參考AI微刊另一篇文章“GAN入門”

1.2 原始GAN的實驗

    MNIST資料集與TFD資料集生成實驗,其中前5列是生成樣本,最後一列是倒數第二列在真實樣本集中最相近的樣本,可見生成的樣本與真實樣本之間是有不同的。

GAN ZOO - 第1節: 分析GAN的缺陷與改進方向,介紹典型的改進模型:CGAN、InfoGAN GAN ZOO - 第1節:分析GAN的缺陷與改進方向,介紹典型的改進模型:CGAN、InfoGAN

1.3 原始GAN的缺陷

    原始GAN存在以下四個方面的缺陷是學者們改進的方向:

1.3.1 梯度下降法訓練不穩定:

    GAN基于梯度下降法進行訓練,訓練不穩定,G與D難以達到納什均衡。

    納什均衡:所謂納什均衡,指的是參與博弈的雙方處于這樣一種政策組合,在該政策組合上,任何參與人單獨改變政策都不會得到好處;對于GAN,就是G和D達到鞍點,而非最小值點。

    梯度下降法的強項是搜尋全局最小點,是以在訓練GAN的時候難以收斂到鞍點,導緻要麼G到達鞍點,D就遠離鞍點;或者D到達鞍點,G遠離鞍點,難以實作納什均衡。

GAN ZOO - 第1節: 分析GAN的缺陷與改進方向,介紹典型的改進模型:CGAN、InfoGAN GAN ZOO - 第1節:分析GAN的缺陷與改進方向,介紹典型的改進模型:CGAN、InfoGAN

1.3.2 梯度消失問題

    梯度消失問題主要是因為Loss函數存在缺陷,導緻D趨近最優時,G的梯度消失。

    G将低維噪聲z映射到真實樣本x所在的高維空間,是以生成樣本G(z)實際上是高維空間的低維樣本(相當于三維空間中的一個面),與高維的x的重疊部分較少。而當D趨近于最優時,區分G(z)與x能力變強,使得兩者重疊部分進一步減少。最終導緻GAN的Loss函數中的JS散度趨近于一個常數,導數梯度趨近于0,不能有效訓練G。

    梯度消失問題已經被Wassertein GAN模型解決,該模型将在下一篇文章中詳述。

1.3.3 模式崩潰問題

    模式崩潰(Model Collapse)就是對于不同的噪聲輸入,G生成相似的樣本。比如MNIST庫中數字“7”有多種寫法,如果G出現完全模式崩潰(所有生成樣本基本相同),可能所有生成的“7”都是一種寫法;如果G出現部分模式崩潰(所有生成樣本局部相同),可能所有生成的“7”都有一個共同特征,比如都有一個小尾巴。

    模式崩潰問題部分源于Loss函數的懲罰偏好:Loss函數中的KL散度非對稱,對GAN的冒險行為(即增大G(z)分布多樣性)懲罰較大,對GAN的保守行為(即減小G(z)分布多樣性)懲罰較小,使得GAN偏向于生成“安全”的重複樣本。

    同樣,模式崩潰問題已經被Wassertein GAN模型初步解決,将在下一篇文章中詳述。

1.3.4 不适合處理離散資料

    文本資料是離散的,通常需要将單個詞映射為高維向量,最終預測輸出為一個高維one-hot向量。假設softmax的輸出是(0.25,0.3,0.2)那麼變換為one-hot向量是(0,1,0),但如果softmax輸出是(0.05,0.25,0.05),其one-hot向量仍然是(0, 1, 0),是以G輸出了不同的結果但是D給出了同樣的判别結果,不能将梯度更新資訊有效地傳遞到G中去,是以D最終輸出的判别沒有意義。

    不适合離散資料的另一個原因也是梯度消失問題的原因,雖然Wassertein GAN已經初步解決該問題,但是其文本生成能力依然有限。GAN在文本生成方面的模型有Seq-GAN等,将在後續文章中解讀。

參考

[1] “GAN原理,優缺點、應用總結”,CSDN

https://blog.csdn.net/qq_25737169/article/details/78857724;

[2] “令人拍案叫絕的 Wasserstein GAN,徹底解決GAN訓練不穩定問題”,搜狐

https://www.sohu.com/a/125598465_473283;

2. 條件GAN(Conditional GAN, CGAN):添加“隐編碼”,有監督學習,生成特定樣本

GAN ZOO - 第1節: 分析GAN的缺陷與改進方向,介紹典型的改進模型:CGAN、InfoGAN GAN ZOO - 第1節:分析GAN的缺陷與改進方向,介紹典型的改進模型:CGAN、InfoGAN

本論文首次發表于2014.11.6

2.1 原始GAN的缺陷

    原始GAN是無監督模型,生成過程不可控,不能生成特定類别、屬性的樣本。

2.2 CGAN的改進

2.2.1 CGAN的思想

    CGAN改進的基本思想就是為GAN引入條件限制,在G與D中引入額外資訊y作為條件變量,指導資料生成過程。y可以是類别标簽、或者用于圖像修複的部分資料、或者語義标簽等。

2.2.2 CGAN的思想

(1)CGAN的損失函數:

GAN ZOO - 第1節: 分析GAN的缺陷與改進方向,介紹典型的改進模型:CGAN、InfoGAN GAN ZOO - 第1節:分析GAN的缺陷與改進方向,介紹典型的改進模型:CGAN、InfoGAN
GAN ZOO - 第1節: 分析GAN的缺陷與改進方向,介紹典型的改進模型:CGAN、InfoGAN GAN ZOO - 第1節:分析GAN的缺陷與改進方向,介紹典型的改進模型:CGAN、InfoGAN

    給定某個樣本x,将該樣本的标簽y(one-hot的10維向量)分别拼接在真實樣本x後構成[x, y],拼接在随機噪聲z後構成[z, y],GAN完成訓練之後,生成樣本G(z|y)與真實樣本x分布一緻,并且可以通過修改y控制G(z|y)的類别。

2.3 CGAN的實驗

    原始GAN實驗是利用100維的噪聲,通過G(一個MLP)生成784維的MNIST樣本;CGAN則将10維的one-hot類别标簽拼接在噪聲和真實樣本後,進行訓練。

    如下為指定生成的MNIST的“7”與“3”:

GAN ZOO - 第1節: 分析GAN的缺陷與改進方向,介紹典型的改進模型:CGAN、InfoGAN GAN ZOO - 第1節:分析GAN的缺陷與改進方向,介紹典型的改進模型:CGAN、InfoGAN

    以上實驗資料由“AI微刊”團隊實驗部提供。

參考

[1] “GAN論文閱讀——CGAN”,CSDN

https://blog.csdn.net/stalbo/article/details/79359380;

[2] “生成對抗網絡(CGAN)(37)---《深度學習》”,CSDN

https://blog.csdn.net/u014038273/article/details/79254714;

3. InfoGAN: 添加“隐編碼”,無監督學習,生成特定樣本

GAN ZOO - 第1節: 分析GAN的缺陷與改進方向,介紹典型的改進模型:CGAN、InfoGAN GAN ZOO - 第1節:分析GAN的缺陷與改進方向,介紹典型的改進模型:CGAN、InfoGAN

本論文首次發表于2016.6.12

3.1 原始GAN的缺陷

    原始GAN生成的資料高度耦合,資料的每一個次元不代表具體的特征,導緻原始GAN不能對生成樣本G(z)的某些特征進行控制。

3.2 InfoGAN的改進

3.2.1 InfoGAN的思想

    InfoGAN引入資料解耦表示(disentangled representation)。資料解耦前互相糾纏,解耦後具有可解釋性。比如,人臉圖像可解耦為眼睛、鼻子、擡頭、側臉等資訊。

GAN ZOO - 第1節: 分析GAN的缺陷與改進方向,介紹典型的改進模型:CGAN、InfoGAN GAN ZOO - 第1節:分析GAN的缺陷與改進方向,介紹典型的改進模型:CGAN、InfoGAN

3.2.2 InfoGAN的模型

(1)原理推導

    InfoGAN将輸入噪聲分為兩部分:随機噪聲z與隐編碼(Latent Code) c,z用于生成樣本,c用于表示部分解耦的特征。

    要讓隐編碼c表示生成樣本G(z,c)某一方面的特征,就需要讓兩者具有盡可能多的共同資訊。是以作者引入互資訊I(c;G(z,c)),并在訓練G的過程中使互資訊最大化。

    是以,提出了以下的損失函數:

GAN ZOO - 第1節: 分析GAN的缺陷與改進方向,介紹典型的改進模型:CGAN、InfoGAN GAN ZOO - 第1節:分析GAN的缺陷與改進方向,介紹典型的改進模型:CGAN、InfoGAN

    互資訊為:

GAN ZOO - 第1節: 分析GAN的缺陷與改進方向,介紹典型的改進模型:CGAN、InfoGAN GAN ZOO - 第1節:分析GAN的缺陷與改進方向,介紹典型的改進模型:CGAN、InfoGAN

注解:互資訊I(X;Y),定量表示在X中有多少關于Y的資訊。I(X;Y) =H(X)−H(X|Y) 可以了解為,當Y被觀測到之後,X的不确定性的變化量。如果X與Y互相獨立,則I(X;Y)=0,也就是觀測到X後對觀測Y沒有任何幫助。

    但是計算互資訊I(c;G(z,c))需要使用到的P(c|x)難以計算,為此作者提出用輔助分布Q(c|x)來逼近P(c|x)。用L(G,Q) 來拟合I(c;G(z,c))的下界,并且L(G,Q)可以通過蒙特卡洛估計得到。

    最終損失函數為:

GAN ZOO - 第1節: 分析GAN的缺陷與改進方向,介紹典型的改進模型:CGAN、InfoGAN GAN ZOO - 第1節:分析GAN的缺陷與改進方向,介紹典型的改進模型:CGAN、InfoGAN

    其中,L(G,Q)為:

GAN ZOO - 第1節: 分析GAN的缺陷與改進方向,介紹典型的改進模型:CGAN、InfoGAN GAN ZOO - 第1節:分析GAN的缺陷與改進方向,介紹典型的改進模型:CGAN、InfoGAN

    在實際操作中,作者将L(G,Q)參數化為一個神經網絡,并且與D共享部分參數,以減小計算量。

(2)模型結構

GAN ZOO - 第1節: 分析GAN的缺陷與改進方向,介紹典型的改進模型:CGAN、InfoGAN GAN ZOO - 第1節:分析GAN的缺陷與改進方向,介紹典型的改進模型:CGAN、InfoGAN

    實際上G與Q之間的過程可以了解為G将[z, c]編碼為生成樣本G(z, c),然後Q再将其解碼為Q(c|x)的過程。

    InfoGAN和CGAN的目的基本相同,但是CGAN是有監督的,而InfoGAN是無監督的。        

3.3 InfoGAN的實驗

    使用MNIST庫做生成實驗,設計了三個隐編碼,c1室10維one-hot向量編碼,每一維填1機率為0.1;c2,c3是連續編碼,是-2到2的均勻分布。實驗發現,c1可以控制類别,c2控制角度,c3控制粗細。但是c1,c2,c3三個編碼為什麼會實作這些功能還不太清楚。

GAN ZOO - 第1節: 分析GAN的缺陷與改進方向,介紹典型的改進模型:CGAN、InfoGAN GAN ZOO - 第1節:分析GAN的缺陷與改進方向,介紹典型的改進模型:CGAN、InfoGAN

參考

[1] “InfoGAN介紹”,CSDN

https://blog.csdn.net/u011699990/article/details/71599067;

[2] “InfoGAN:一種無監督生成方法”,騰訊雲

https://cloud.tencent.com/developer/news/333199;

本文完

PS: 關注本公衆号“AI微刊”,背景發送“GAN ZOO” (大小寫随意),即可獲得本文相關的GAN論文包以及本文的源代碼資源包。

GAN ZOO - 第1節: 分析GAN的缺陷與改進方向,介紹典型的改進模型:CGAN、InfoGAN GAN ZOO - 第1節:分析GAN的缺陷與改進方向,介紹典型的改進模型:CGAN、InfoGAN
GAN ZOO - 第1節: 分析GAN的缺陷與改進方向,介紹典型的改進模型:CGAN、InfoGAN GAN ZOO - 第1節:分析GAN的缺陷與改進方向,介紹典型的改進模型:CGAN、InfoGAN

微信号: AI微刊

繼續閱讀