日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【GAN优化】小批量判别器如何解决模式崩溃问题

發布時間:2025/3/20 编程问答 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【GAN优化】小批量判别器如何解决模式崩溃问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

GAN的第二季開始更新了,還是熟悉的配方,還是熟悉的味道。第一季更新了12篇小文,只解讀了GAN的冰山一角,第二季將作為第一季的“零零星星”的補充,講解包括其他的損失函數、訓練算法等等方面,并且會擴展到隱空間、離散數據等方向。今天將先介紹一個處理模式崩潰問題的小方法—小批量判別器,作為對上一季模式崩潰問題的補充吧。

作者&編輯 | 小米粥

1.?模式崩潰的原因

當模式崩潰發生時,生成器 G(z)往往會把很多不同的z均映射成某個x,(更確切地說,指x以及其附近的點,用A表示),接下來更新判別器D(x)后,判別器會很快發現這個病態的mode A從而降低了對這個mode A的信任程度(信任程度即該樣本點來源于訓練數據集的概率),而信任mode B,那么生成器就會把很多不同的z均映射成x',其中x'及其附近的點表示一個新的mode B,如下圖所示。接著,判別器發現這個新的的病態mode B.....

生成器和判別器陷入這樣沒有意義的循環。我們梳理一下上面的環節,首先生成器 G(z)把很多不同的z均映射成某個x,而不是將部分z映射到mode A,部分z映射到mode B,但這不應該引起擔憂,因為可以訓練判別器來識別這個不好的mode A再改進G(z)即可;接著,訓練判別器環節也沒有問題,實踐中甚至擔憂判別器訓練得過好了而產生梯度消失;那么問題應該出在最后一步:生成器把生成樣本全部都轉移放置到新的mode B下!顯然,生成器的改進是“過分”的,理想上生成器應該將部分生成樣本都轉移放置到 mode B下,保留部分生成樣本在mode A下,如下圖所示。

其實這并不奇怪,因為在訓練生成器時,目標函數為:

其過程為:生成器G(z)生成m個樣本{x1,x2,...,xi,...,xm},然后將m個x分別獨立送給判別器D(x)判定獲得梯度信息。在上面的例子中,由于判別器不信任mode A而非常信任mode B,故對于任意生成樣本x,判別器都將指引其接近mode B:G(z)→B,也就是說對于任意x,判別器傳遞給生成器G(z)得到的梯度的方向是相同的,生成器按著該梯度方向更新參數極易把所有的生成樣本轉移到mode B下。

2.mini-batch discriminator

根據第一節的討論,認為原因還是出現在判別器上,因為判別器每次只能獨立處理一個樣本,生成器在每個樣本上獲得的梯度信息缺乏“統一協調”,都指向了同一個方向,而且也不存在任何機制要求生成器的輸出結果彼此有較大差異。

小批量判別器給出的解決方案是:讓判別器不再獨立考慮一個樣本,而是同時考慮一個小批量的所有樣本。具體辦法如下:對于一個小批量的每個樣本{x1,x2,...,xi,...,xm},將判別器的某個中間層f(xi)的結果引出,其為一n維向量,將該向量與一個可學習的n x p x q維張量T相乘,得到樣本xi的p x q維的特征矩陣Mi,可視為得到了p個q維特征。

接著,計算每一個樣本xi與小批量中其他樣本的第r個特征的差異和:

其中,Mi,r表示矩陣Mi的第r行,并使用L1范數表示兩個向量的差異。

那么每個樣本都將會計算得到一個對應的向量:

最后將o(xi)也接引出的中間層的下一層L+1即可,也就是說在原來判別器L層的基礎上加了一個mini-batch層,其輸入是f(xi),而輸出是o(xi),中間還包含一個可學習參數T。相比較,原始的判別器要求給出樣本來源于訓練數據集的概率,而小批量判別器的任務仍然是輸出樣本來源于訓練數據集的概率,只不過它能力更強,因為它能利用批量樣本中的其他樣本作為附加信息。

還是在第一節的例子中,使用小批量判別器,當發生模式崩潰的生成器需要更新時,G(z)先生成一個批量的樣本{G(z1),G(z2),...G(zm)},由于這些樣本都在mode A下,則計算得到的mini-batch層結果必然與訓練數據集的計算得到的mini-batch層結果有很大差異,捕捉到的差異信息會使小批量判別器D(G(zi))值不會太低,小批量判別器不會簡單地認為對所有樣本給出相同的梯度方向。

3.?一個簡化版本

在Progressive GAN中,給出了一個簡化版本的小批量判別器,其思想與上述相同,只是計算方式比較簡單,對于判別器的輸入樣本{x1,x2,...,xm},抽取某中間層作為n維特征有{f(x1),f(x2),...,f(xm)},計算每個維度的標準差并求均值,即:

其中

最后將o作為特征圖與中間層的輸出拼接到一起。Progressive GAN的小批量判別器中不含有需要學習的參數,而是直接計算批量樣本的統計特征,更為簡潔。

[1]Tim Salimans?, et al. Improved Techniques for Training GANs. 2016.

[2]Karras, Tero, Aila, Timo, Laine, Samuli,等. Progressive Growing of GANs for Improved Quality, Stability, and Variation[J].

總結

今天首先將說明模式崩潰問題的本質,分析了產生模式崩潰的原因,并針對該問題給出了小批量判別器技巧,并在最后給出了一個更簡單的版本。

知識星球推薦

_

_

有三AI知識星球由言有三維護,內設AI知識匯總,AI書籍,網絡結構,看圖猜技術,數據集,項目開發,Github推薦,AI1000問八大學習板塊。其中網絡結構1000變部分有大量GAN實戰相關的內容。

【年終總結】2019年有三AI知識星球做了什么,明年又會做什么

轉載文章請后臺聯系

侵權必究

往期精選

_

  • 【雜談】有三AI知識星球最近都GAN了哪些內容?

  • 【雜談】GAN對人臉圖像算法產生了哪些影響?

  • 【完結】12篇GAN的優化文章大盤點,濃濃的數學味兒

總結

以上是生活随笔為你收集整理的【GAN优化】小批量判别器如何解决模式崩溃问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。