最近再看The relativistic discriminator: a key element missing from standard GAN這篇文章,裏面提到了Saturating和Non-Saturating Loss functions,但是之前再看GAN的文章時候好像沒有太注意,這裏稍微介紹一下。
1. 來源
作者在GAN的原文中只是提到了這個saturates。將變成了,說是前者更容易飽和。
關於這個saturate,首先我們看看它的定義是什麼,來源於:What does the term saturating nonlinearities mean?
按照它這個定義,我們知道了ReLU在x趨向於正無窮大的時候也是無窮大,滿足其中一個條件,所以是non-saturating(非飽和)。而tanh和sigmoid函數無論是趨向負無窮大還是正無窮大的時候都是趨向於[-1,1]或者[0,1],相當於是被壓縮了,按照上面的定義non-saturating的二個條件任何一個都不滿足,所以是是saturating。
但是對於這句話:變成了,說是前者更容易飽和。我個人的理解是,圖像如下圖所示,當我們這個函數的時候,趨向於負無窮了,因此是saturating。
而圖像如圖所示,當我們它的時候是趨向於正無窮大的,滿足上面的non-saturating條件了。
上面的只是的我的猜想而已,而且理解可能是錯誤的,可能背後蘊含這深刻的數學在裏面,大家可以在評論區幫忙指正出來。
參考文章:
另外,在這篇文章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)。這意味着如果學習率過高,判別器很可能會“放棄”學習,導致模型性能很差,這種現象在高維數據中尤爲明顯。