GAN原理再探

雖然自己很早就接觸到了GAN,但是基本上都是停留在瞭解基本概念的階段。如果別人問我什麼是GAN,我可能會說:首先大家都知道GAN有兩個網絡,一個是generator,一個是discriminator,從二人零和博弈中受啓發,通過兩個網絡互相對抗來達到最好的生成效果。如果在具體一點,可能會列舉警察和小偷的故事,警察儘量判斷是否爲真,小偷儘量矇騙警察。但是總是感覺缺少點什麼,如果別人問我,爲什麼GAN難以訓練?爲什麼會出現Mode Collapse?爲什麼GAN最後是優化一個JS距離? WGAN以及WGAN-GP是解決什麼問題?其實在這之前這些問題我是基本上沒有想過的,但是最近面試時候被問到GAN時候自己總是沒有很大信心,所以趁着這個中秋好好的把GAN的原理深究一下。現在看來,一個簡單的公式背後是存在巨大的原理的,另一個網絡的出現並不是憑空出現的,而是解決前人的問題。帶着這些疑問,我踏了重新認識GAN的歷程。

因爲GAN的公式很多,所以我只能貼一下最近我看的一些比較好的文章,可以供大家參考。

1. 認識GAN & 以及背後的原理

參考:GAN原理學習筆記
學習這篇博客之後,你至少需要回答以下幾個問題。自己思考

  1. 判別模型和生成模型區別?
  2. 從最大似然到最小化KL距離歷程,如何推導?
  3. GAN公式max D,min G的推導? 爲什麼結果是一個JS距離?
  4. GAN的訓練過程是怎麼樣的?爲什麼一個是梯度上升,一個是梯度下降?
  5. 更新G的時候,不要更新G太多?這是爲什麼?
  6. 爲什麼出現改進的G損失?
  7. 爲什麼訓練時候損失函數等於0?出現梯度消失?(這篇文章暫時只能解決一部分答案)
  8. 出現Mode Collapse原因? (可能也是不正確的)

2. 認識WGAN

參考: 令人拍案叫絕的Wasserstein GAN
學習這篇博客之後,你至少需要回答以下幾個問題。自己思考

  1. 原始GAN究竟出了什麼問題?
  2. 二種不同的損失函數分別帶來什麼問題?
  3. 出現生成器梯度爲0的本質是什麼?
  4. 出現Mode Collapse原因?比較具體
  5. WGAN之前的一個過渡解決方案
  6. 計算列子中的KL,JS,Wasserstein距離
  7. Wasserstein距離的優越性質
  8. 從Wasserstein距離到WGAN
  9. Lipschitz是什麼?
  10. weight clipping 爲什麼可以保證Lipschitz連續?

3. 認識WGAN-GP

參考: Wasserstein GAN最新進展:從weight clipping到gradient penalty,更加先進的Lipschitz限制手法

學習這篇博客之後,你至少需要回答以下幾個問題。自己思考

  1. weight clipping的實現方式存在兩個嚴重問題?是什麼
  2. gradient penalty是什麼?是如何保證Lipschitz連續?
  3. 和DCGAN區別是什麼?

4. 下面就是一些個人感覺比較好的文章和博客

由於GAN在不同的領域都有很多的使用,上面的文章可能都是二年之前的,只能說是瞭解一些基本的概念,可能還是需要讀者朋友繼續閱讀一些新的文章。

  1. GAN萬字長文綜述
  2. IEEE Access,2019: Recent Advances of Generative AdversarialNetworks in Computer Vision
  3. GAN原理"潛"析
  4. 【GAN貨】進階預備知識
  5. 李宏毅機器學習2016 第十六講 生成對抗網絡 GAN

後面的話如果遇到比較好的GAN的文章,可能會繼續貼到這裏。

對問題理解可淺可深,不僅需要知其然還要知其所以然,知道它爲什麼好比知道它好更可貴。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章