Saturating VS Non-Saturating Loss functions in GANs

最近再看The relativistic discriminator: a key element missing from standard GAN這篇文章,裏面提到了Saturating和Non-Saturating Loss functions,但是之前再看GAN的文章時候好像沒有太注意,這裏稍微介紹一下。

1. 來源

    作者在GAN的原文中只是提到了這個saturates。將min log(1D(G(z)))min \ log(1-D(G(z)))變成了maxlog(D(G(z)))max \log(D(G(z))),說是前者更容易飽和。
在這裏插入圖片描述
    關於這個saturate,首先我們看看它的定義是什麼,來源於:What does the term saturating nonlinearities mean?
在這裏插入圖片描述
    按照它這個定義,我們知道了ReLU在x趨向於正無窮大的時候也是無窮大,滿足其中一個條件,所以是non-saturating(非飽和)。而tanh和sigmoid函數無論是趨向負無窮大還是正無窮大的時候都是趨向於[-1,1]或者[0,1],相當於是被壓縮了,按照上面的定義non-saturating的二個條件任何一個都不滿足,所以是是saturating。
     但是對於這句話:min log(1D(G(z)))min \ log(1-D(G(z)))變成了maxlog(D(G(z)))max \log(D(G(z))),說是前者更容易飽和。我個人的理解是,log(1x)log(1-x)圖像如下圖所示,當我們minmin這個函數的時候,趨向於負無窮了,因此是saturating。
在這裏插入圖片描述
    而log(x)log(x)圖像如圖所示,當我們maxmax它的時候是趨向於正無窮大的,滿足上面的non-saturating條件了。
在這裏插入圖片描述
    上面的只是的我的猜想而已,而且理解可能是錯誤的,可能背後蘊含這深刻的數學在裏面,大家可以在評論區幫忙指正出來。

參考文章:

  1. 【機器學習】saturate的解釋
  2. Saturated Models and Deviance

另外,在這篇文章Saturating vs Non-Saturating Loss functions in GANs on MNIST作者提供了二者各自的實現方法,也是比較好理解的。
在這裏插入圖片描述

2. 發展

在之後一篇論文Towards Principled Methods for Training Generative Adversarial Networks對這個概念做了詳細的解釋:

對於生成器,SGAN提出了兩種損失函數:saturating和non-saturating。其中前者不穩定,後者較穩定。如果GAN能100%分類真僞數據,那saturating函數的梯度是0,non-saturating的梯度雖然不爲0,但它是易變的(volatile)。這意味着如果學習率過高,判別器很可能會“放棄”學習,導致模型性能很差,這種現象在高維數據中尤爲明顯。

3. 參考文獻

  1. Understanding Generative Adversarial Networks
  2. CS231CNN
  3. Improving the way neural networks learn
  4. 知乎:深度學習中,使用relu存在梯度過大導致神經元“死亡”,怎麼理解?
  5. What is the “dying ReLU” problem in neural networks?
  6. 相對的判別器:現有GAN存在關鍵屬性缺失
  7. 你的 GAN 是不是少了什麼?
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章