GAN、CGAN、DCGAN、Cycle GAN、SAGAN、WGAN、StarGAN

GAN:

 

值函數(評價函數,非損失函數):

 

x表示真實圖片,z表示輸入噪聲,x~Pdata(x)與x~Pz(z)表示滿足各自的分佈律。理想狀態下,D(G(Z))=0.5

更新方式:

交替訓練G(Generator)和D(Discriminator), D加梯度,G減梯度

簡單講一下上面兩個公式,m指樣本個數,從評價函數出發:

第一個公式,更新的是D的w(

第二個公式,更新的是G的w(

CGAN條件對抗生成網絡:

參考網址:https://blog.csdn.net/stalbo/article/details/79359380

輸入增加額外信息y。在mnist數據集上進行CGAN的實驗,G網絡輸入是z噪聲及標籤y,輸出爲假圖片向量。D網絡輸入是圖像向量和標籤y,輸出是來自mnist數據集的概率

目標函數是帶有條件概率的二元極小極大博弈,x是mnist數據集的圖片向量

 

DCGAN深度卷積生成對抗網絡:

CNN(2個CNN替換了D和G)與GAN的結合。

stride代替pooling實現了G的可微,使評價函數平滑收斂

應用: 生成卡通頭像

代碼鏈接:https://zhuanlan.zhihu.com/p/24767059

爬蟲爬取圖站圖像——用opencv裁出頭像(用了detectMultiScale方法多尺度檢驗人臉)——用自己的數據集訓練及測試

Cycle GAN

F(G(X))=X 

G(F(Y))=Y

用循環一致性損失

self-attention GAN(SAGAN) 帶自注意力機制的生成對抗網絡

https://blog.csdn.net/zhangyumengs/article/details/80555523

http://baijiahao.baidu.com/s?id=1602505761971177843&wfr=spider&for=pc

https://www.jianshu.com/p/0540fb554088

 

γ從0開始變大

Βj,i表示模型在合成第j個區域時對第i個位置的關注程度

 

spectral normalization譜歸一化

Wasserstein GANWGAN

https://www.cnblogs.com/Charles-Wan/p/6501945.html

https://blog.csdn.net/zhl493722771/article/details/82781914

https://blog.csdn.net/qq_25737169/article/details/78857788

https://zhuanlan.zhihu.com/p/25071913

https://www.cnblogs.com/ranjiewen/p/9201631.html

《深度學習入門之Pytorch》

GAN的問題:

    在優化判別器時,爲衡量生成樣本與 真實樣本的差異時,引入了JS散度JSD越小說明兩種分佈越接近。當兩種分佈沒有重疊或重疊很小時,JSD恆等於常數log2,梯度消失,無法進一步優化。換句話說,判別器訓練得太好,分佈不重疊,梯度消失;判別器訓練得不好,錯誤的優化方向。判別器不好不壞最好。

    真實樣本是一個高維分佈,生成樣本是一個低維分佈。此外,不可能真正去計算兩個分佈,只能近似取樣,導致兩個分佈可能沒有重疊部分。

    引入Wasserstein距離替換JS散度衡量兩個分佈差異。

相比原始GAN改進了4點:

  • 判別器最後一層去掉sigmoid(WGAN做的是迴歸問題,而原始GAN做的分類問題)
  • 生成器和判別器的loss不取log
  • 每次更新判別器的參數之後把它們的絕對值截斷到不超過一個固定常數c(權重裁剪)
  • 不要用基於動量的優化算法(包括momentum和Adam),推薦RMSProp,SGD也行(作者的實驗結論)

引入權重裁剪的目的:

    滿足一階Lipschitz連續性,使關於輸入的樣本,D輸出變化比較平穩。引入一階Lipschitz連續性是爲了將一個無法求解的inf問題轉換爲求max問題。

WGAN提出使用wassertein距離作爲優化方式訓練GAN,但是數學上和真正代碼實現上還是有區別的,使用Wasserteion距離需要滿足很強的連續性條件—lipschitz連續性

Improving WGAN

WAN爲滿足一階lipschitz連續性,使用了權重衰減的方法。將一階lipschitz連續性等價於梯度範數處小於1

 

STARGAN(星型網絡)

https://blog.csdn.net/weixin_42445501/article/details/82748225

該2018CVPR做了變換表情方面的工作

多數據集訓練用來CelebA(膚色、年齡)和 RaFD(表情),這兩個數據集內容相交但類別不相交,使用Mask vector對標記進行處理,如下所示:

第一行代表CelebA屬性,第二行代表RaFD屬性,第三行爲數據集one-hot標籤

 

 

 

 

 

參考鏈接:

https://zhuanlan.zhihu.com/p/24767059

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