PaperNotes(7)-GANs模式坍塌/訓練不穩定

GANs-模式坍塌-訓練不穩定

  • 1.訓練不穩定問題相關文章
    • 1.1 DCGAN
    • 1.2Big-GAN
    • 1.3WGAN 、WGAN-GP、SN-WGAN
    • 1.4其他工作
  • 2.模式坍塌問題相關文章
    • 2.1 MAD-GAN
    • 2.2 Unrolled GAN
    • 2.3 DRAGAN
    • 2.4 D2GAN
    • 2.5 InfoGAN
    • 2.6 Deligan
    • 2.7 EBGAN
    • 2.8 Maximum Entropy Generators for Energy-Based Models

1.訓練不穩定問題相關文章

綜述-分析-歸納

1.1 DCGAN

2016-ICLR
abstract,related work --沒說穩定性的問題
DCGAN的出發點:CNN結構+GANs模型學習,質量優良的圖像表征。其后將生成器或者和判別器作為監督學習的特征提取器
3. aproach and model architecture
也有很多人嘗試將CNN與GAN模型結合,但是沒有成功。

作者認為在GANs模型提出后關于GAN模型學習過程的理解和可視化的工作缺乏,并且GANs模型中生成器和判別器的大多使用多層感知機的全連接結構。(不穩定性基本上沒有分析),他們將卷積神經網絡引入到GANs模型中,利用大量的實驗尋找合適的的結構致力于解決GANs模型訓練不穩定問題。

DC-GAN利用卷積提取圖像的層次視覺特征,其有利于提升判別網絡能力。DC-GAN通過調整卷積神經網絡的結構以提高樣本的質量和收斂速度,這些調整包括:取消所有Pooling 層;在生成網絡和判別網絡中均使用Batch-Normalization[13]操作;去掉全連接層,使網絡變為全卷積網絡;生成網絡中使用ReLU[14]作為激活函數,最后一層使用Tanh[15]作為激活函數,判別網絡使用LeakyReLU[16]作為激活函數等。圖2-4為DC-GAN生成網絡的結構圖。圖2-5為DC-GAN使用大規模場景數據集LSUN[17] 房間子集訓練的模型生成的房間場景圖像。

1.2Big-GAN

文章出發點:高清,真實圖像生成。
通過實驗探索了:不同的訓練批次大小(BatchSize) 、每層卷積通道(Channel)數、Shared、Hierarchical Latent Space對GANs 模型性能的影響。文章表明:對于BatchSize,簡單的增大BatchSize 可以使模型性能獲得較好的提升,但會使訓練穩定性下降;對于Channel數,一定范圍內增加卷積通道數,對提升模型性能有益處;但是超過一定的范圍之后,性能不升反降。

然后:分析訓練崩潰現象發生時網絡權重參數有啥表現
判別網絡權重矩陣的前三個奇異值毛刺多,在發生崩潰時有一個突躍向上。生成網絡權重矩陣奇異值曲線平滑,但是崩潰時有一個突躍向上。

反制措施:
針對G:限制奇異值大小
針對D:D網絡的梯度懲罰

1.3WGAN 、WGAN-GP、SN-WGAN

(推薦)令人拍案叫絕Wasserstein GAN—https://zhuanlan.zhihu.com/p/25071913

TOWARDS PRINCIPLED METHODS FOR TRAINING
GENERATIVE ADVERSARIAL NETWORKS
WGAN前作:分析了GANs模型目標函數的缺陷:會導致訓不動和訓練不穩定。

WGAN:正式提出WGAN,但是Lipschitz約束采用截斷判別器參數的方式實現,不夠優雅。

WGAN-GP:Lipschitz約束使用判別器梯度懲罰的方式實現。
SN-WGAN:Lipschitz約束使用判別器參數每一層W頻譜范數限制為1的方式實現。

1.4其他工作

f-gan將所有GAN模型統一到f-divergence 下,是一個比較優雅的工作。不過沒有致力于解決訓練不穩定問題吧。
Improved techniques for training gans:包含了很多促進GAN穩定訓練的啟發式技巧。

2.模式坍塌問題相關文章

從納什均衡點來說模式坍塌問題:說有兩種方案來解決模式坍塌:

https://zhuanlan.zhihu.com/p/86683281:修改網絡結構MAD-GAN。

https://zhuanlan.zhihu.com/p/84072188:提高網絡能力Unrolled GAN。

有個現象:當判別器在訓練樣本附近更新參數時,其梯度值非常大

http://blog.itpub.net/69946223/viewspace-2658454/:在訓練樣本附近增加梯度懲罰DRAGAN(與上面兩篇文章是同一個作者)

2.1 MAD-GAN

MAD-GAN-2017:單個生成器會產生模式坍塌現象,多個生成器結合起來可以保證樣本的多樣性,但是簡單添加多個彼此鼓勵的生成器并沒有很大的意義,這些可能最終都會歸并到相同狀態。希望讓多個生成器彼此聯系,不同的生成器盡量產生不相似的樣本。MAD-GAN中包括K個初始值不同的生成器和一個判別器,判別器通過交叉熵損失使得每個生成器只生成某一類模式的樣本。生成器使用的一個自定的相似性項懲罰生成器,以達到各個生成器產生不同的樣本的目的。治標不治本,沒有提高單個生成器的能力。

疑惑:多個生成器最后如何確定輸出?隨機?還是要利用判別器?

(提供bib文件。)也希望大家貢獻一些。

多生成器的結構也有很多種,文章中使用多生成器來提高生成數據的多樣性。

relate work :InfoGAN [5], ModeGAN[4],UnrolledGAN[17],Coupled GAN,

2.2 Unrolled GAN

https://arxiv.org/abs/1611.02163

Unrolled GAN-2017:由于生成器缺乏先見之明,生成器每次更新參數時只是考慮當前的判別器下能夠獲得的最優解,并不能判斷當前的最優解從長運啊來看是否時最優解。目標是:提高生成器的先見之明。具體做法當前的生成器在更新時不僅能夠考慮當前生成器的狀態,還會考慮K次更新后判別器的狀態。

(還能夠穩定訓練過程。)一個缺點是提高了計算的復雜度。

(按照unroll 的說法,質量越好,其實越容易發生模式坍塌現象)

(公式中兩項的差別就是:第K次更新這個事實。)

2.3 DRAGAN

DRAGAN:(實驗)發現一個有趣的現象,判別器具在訓練樣本附近更新參數時,梯度值非常大,考慮在訓練樣本附近增加一個梯度懲罰。具體就是通過訓練樣本擾動然后,計算梯度,再懲罰。注意與WGAN-GP的區別,WGAN-GP在具體實現時是在真假樣本之間增加懲罰。

與博文中分析的結論殊途同歸的感覺:
https://zhuanlan.zhihu.com/p/56545779
基于能量視角,我們可以得到“對真樣本進行以 0 為中心的梯度懲罰”比較好,因為這意味著(整體上)要把真樣本放在極小值點處。

2.4 D2GAN

D2GAN–2017: 再添加一個判別器,虧你們想的出來。

https://blog.csdn.net/weixin_33958585/article/details/90329616-說的不夠直接。

生成模型最大似然方法對應于求解 模型分布 與 數據分布 之間的KL散度。
GANs對應的是求 解數據分布 與 模型分布 之間的KL散度。

正反向KL散度

DKL(pmodel∣∣pdata)D_{KL}(p_{model}||p_{data})DKL?(pmodel?pdata?):會憑空產生一些潛在的不希望的樣本。

DKL(pdata∣∣pmodel)D_{KL}(p_{data}||p_{model})DKL?(pdata?pmodel?):Pmodel集中在Pdata的單一模式,而忽略了其他模式,產生模式坍塌現象。

擁有兩個判別器,判別器和原始GANs模型中的判別器功能類似,用于鑒別一個樣本是真樣本的概率,而判別器2用于鑒別樣本是來自生成分布而不是真實分布,通過結合KL和反KL散度生成一個統一的目標函數,從而利用了兩種散度的互補統計特性,緩解了模式坍塌問題。

2.5 InfoGAN

https://zhuanlan.zhihu.com/p/55945164
https://blog.csdn.net/u011699990/article/details/71599067

InfoGAN:通過引入c來約束輸出,使得C的維度于輸出的語義特征相對應。為了使的x與c之間關聯密切,所以我們需要最大化互信息的值。據此對原始GAN模型的值函數做了一點修改,相當于加了一個互信息的正則化項。核心是如何實現互信息的計算(通過一個輔助分布)
簡單理解,生成的數據能夠依據條件改變的話,那么條件多了,生成的數據自然也就多了

2.6 Deligan

認為一般的GAN模型都需要大量的訓練數據,才能夠使生成器捕獲完整的數據模態。對于樣本數量有限的復雜數據集,DeliGAN借助變分推斷中的思想, 將輸入隱空間重參數成混合高斯,這些混合高斯分布是樣本高概率出現的隱空間,混合高斯分布的參數隨GANs的參數一同訓練。通過實驗證明了在受限數據集上生成器生成豐富多樣的數據,緩解模式坍塌問題。

主要針對點:受限數據集

2.7 EBGAN

http://www.mamicode.com/info-detail-2221093.html

EBGAN:將D視作一個能量函數,能量越小,輸入越真。AE中的重構誤差作為能量函數。
和解決多樣性沒有直接關系,最主要的還是訓練的穩定性

We show that this form of EBGAN exhibits more stable behavior than regular GANs during training.

2.8 Maximum Entropy Generators for Energy-Based Models

Rithesh Kumar–在基于能量的生成式模型中,最大化生成數據的熵,能夠提高數據的多樣性。從能量的角度來詮釋了GAN模型。通過非參數互信息最大化技術間接實現最大化生成數據的熵。(比較抽象難理解)

蘇劍林的博客:https://zhuanlan.zhihu.com/p/56545779
表示GAN不需要帶動量的優化方法:要的是最近的最小值,而不是更小的最小值。帶動量可能會損失多樣性。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/444915.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/444915.shtml
英文地址,請注明出處:http://en.pswp.cn/news/444915.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

thinkphp框架起步認識

先看看thinkphp的文檔吧:這是我在網上找的一個不錯的鏈接地址,對自己有用,同時相信對讀者也有用吧。 http://doc.thinkphp.cn/manual/class.html ThinkPHP 跨模塊調用操作方法(A方法與R方法) 跨模塊調用操作方法 前面說…

leetcode403 青蛙過河

一只青蛙想要過河。 假定河流被等分為 x 個單元格,并且在每一個單元格內都有可能放有一石子(也有可能沒有)。 青蛙可以跳上石頭,但是不可以跳入水中。 給定石子的位置列表(用單元格序號升序表示)&#xff…

PaperNotes(8)-Stein Variational Gradient Descent A General Purpose Bayesian Inference Algorithm

通用貝葉斯推理算法-Stein Variational Gradient DescentAbstract1 Introduction2 Background3 Variational Inference Using Smooth Transforms3.1 Stein Operator as the Derivative of KL Divergence定理3.1引理3.23.2 Stein Variational Gradient Descent4 Related Works5 …

thinkphp的增刪改查

ThinkPHP 添加數據 add 方法 ThinkPHP 內置的 add 方法用于向數據表添加數據,相當于 SQL 中的 INSERT INTO 行為。ThinkPHP Insert 添加數據添加數據 add 方法是 CURD(Create,Update,Read,Delete / 創建,修改,讀取,刪除)中的 Create 的實現&a…

leetcode115 不同的子序列

給定一個字符串 S 和一個字符串 T,計算在 S 的子序列中 T 出現的個數。 一個字符串的一個子序列是指,通過刪除一些(也可以不刪除)字符且不干擾剩余字符相對位置所組成的新字符串。(例如,"ACE" 是…

ThinkPHP 模板循環輸出 Volist 標簽

volist 標簽用于在模板中循環輸出數據集或者多維數組。volist 標簽在模塊操作中&#xff0c;select() 方法返回的是一個二維數組&#xff0c;可以用 volist 直接輸出&#xff1a;<volist name"list" id"vo"> 用 戶 名&#xff1a;{$vo[username]}&l…

MachineLearning(9)-最大似然、最小KL散度、交叉熵損失函數三者的關系

最大似然-最小KL散度-最小化交叉熵損失-三者的關系問題緣起&#xff1a;給定一組數據(x1,x2,...,xm)(x^1,x^2,...,x^m)(x1,x2,...,xm),希望找到這組數據服從的分布。此種情況下&#xff0c;分布規律用概率密度p(x)表征。 問題歸處&#xff1a;如果能夠建模/近似建模p(x)&#…

ThinkPHP redirect 頁面重定向使用詳解與實例

ThinkPHP redirect 方法ThinkPHP redirect 方法可以實現頁面的重定向&#xff08;跳轉&#xff09;功能。redirect 方法語法如下&#xff1a;$this->redirect(string url, array params, int delay, string msg) 參數說明&#xff1a;url 必須&#xff0c;重定向的 URL 表達…

PaperNotes(9)-Learning deep energy model: contrastive divergence vs. Amortized MLE

Learning deep energy model: contrastive divergence vs. Amortized MLEabstract1 Introduction2 Background2.1 stein variational gradient descent2.2 learning energy model**contrastive Divergence**abstract 受SVGD算法的啟發,本文提出兩個算法用于從數據中學習深度能…

windows下的gvim配置

首要任務是下載安裝Gvim7.3 。 安裝完后&#xff0c;gvim菜單中文出現亂碼&#xff0c;在_vimrcset文件中增加&#xff1a; " 配置多語言環境,解決中文亂碼問題 if has("multi_byte") " UTF-8 編碼 set encodingutf-8 set termencodingutf…

leetcode104 二叉樹的最大深度

給定一個二叉樹&#xff0c;找出其最大深度。 二叉樹的深度為根節點到最遠葉子節點的最長路徑上的節點數。 說明: 葉子節點是指沒有子節點的節點。 示例&#xff1a; 給定二叉樹 [3,9,20,null,null,15,7]&#xff0c; 3 / \ 9 20 / \ 15 7 返回它的最大深度…

C++的安全類型轉換的討論

關于強制類型轉換的問題,很多書都討論過,寫的最詳細的是C++ 之父的《C++的設計和演化》。最好的解決方法就是不要使用C風格的強制類型轉換,而是使用標準C++的類型轉換符:static_cast, dynamic_cast。標準C++中有四個類型轉換符:static_cast、dynamic_cast、reinterpret_ca…

PaperNotes(10)-Maximum Entropy Generators for Energy-Based Models

Maximum Entropy Generators for Energy-Based ModelsAbstract1 Introduction2 Background3 Maximum Entropy Generators for Energy-Based Models4 Experiments5 Related Work6 Conclusion7 AcknowledgementsAbstract 由于對數似然梯度的難以計算&#xff0c;能量模型的最大似…

leetcode105 前序中序遍歷序列構造二叉樹

根據一棵樹的前序遍歷與中序遍歷構造二叉樹。 注意: 你可以假設樹中沒有重復的元素。 例如&#xff0c;給出 前序遍歷 preorder [3,9,20,15,7] 中序遍歷 inorder [9,3,15,20,7] 返回如下的二叉樹&#xff1a; 3 / \ 9 20 / \ 15 7 思路&#xff1a; 1、…

c++的虛擬繼承 的一些思考吧

虛擬繼承是多重繼承中特有的概念。虛擬基類是為解決多重繼承而出現的。如:類D繼承自類B1、B2,而類B1、B2都繼承自類A,因此在類D中兩次出現類A中的變量和函數。為了節省內存空間,可以將B1、B2對A的繼承定義為虛擬繼承,而A就成了虛擬基類。實現的代碼如下: class A class …

對于linux socket與epoll配合相關的一些心得記錄

對于linux socket與epoll配合相關的一些心得記錄 沒有多少高深的東西&#xff0c;全當記錄&#xff0c;雖然簡單&#xff0c;但是沒有做過測試還是挺容易讓人糊涂的int nRecvBuf32*1024;//設置為32Ksetsockopt(s,SOL_SOCKET,SO_RCVBUF,(const char*)&nRecvBuf,sizeof(int))…

leetcode144 二叉樹的前序遍歷

給定一個二叉樹&#xff0c;返回它的 前序 遍歷。 示例: 輸入: [1,null,2,3] 1 \ 2 / 3 輸出: [1,2,3] 進階: 遞歸算法很簡單&#xff0c;你可以通過迭代算法完成嗎&#xff1f; 思路&#xff1a;模仿遞歸的思路壓棧即可。 /*** Definition for a bi…

AJAX大總結

1、AJAX概述 1.1 什么是AJAX AJAX&#xff08;Asynchronous Javascript And XML&#xff09;翻譯成中文就是“異步Javascript和XML”。即使用Javascript語言與服務器進行異步交互&#xff0c;傳輸的數據為XML&#xff08;當然&#xff0c;傳輸的數據不只是XML&#xff09;。 …

我對STL的一些看法(一)初步認識STL

后面一段時間我將會給大家分享我自己學到STL以及應用的時候遇到的問題還有他的一些精髓,可能開始的邏輯會有些亂吧,不過后面還會不斷的整理和優化,讓自己看明白也讓更多的讀者看的清楚。 最近剛閑下來,先說說什么是STL: 不知道你是否有過這樣的經歷。在大學,你準備著手完…

PaperNotes(12)-Autoregressive Quantile networks for generative modeling

Autoregressive Quantile networks for generative modeling3 autoregressive implicit quantiles3 autoregressive implicit quantiles autoregressive&#xff1a;自身做回歸變量&#xff0c;用之前若干時刻的隨機變量 來建模 之后某些時刻 隨機變量的模型。 N維隨機變量的…