前言:
? ? ? ?生成對抗網絡(Generative Adversarial Nets,GAN)是一種基于對抗學習的深度生成模型。
?2014年,蒙特利爾博士 lan Goodfellow 發表了論文《Generative Adaversarial Networks》,
一經提出便成為了學術界研究的熱點,也將生成模型的熱度推向了另一個新的高峰。
對該領域要深入了解,需要重點看一下
? ?Yann LeCun 給于GAN 高度的評價
目錄:
- ? ? ?VAE 缺陷
- ? ? ? GAN 簡介
- ? ? ? GAN 損失函數
- ? ? ? 訓練方法
- ? ? ??GAN 應用
- ? ? ? ?GAN 模型的缺陷
一? VAE 缺陷
? ? ? ? 無法產生新的風格圖片
? ? ? ? ?VAE 通過Decoder 產生的圖片只是要盡可能的跟輸入的圖像相似,但是無法產生新的以假亂真的圖片
二? GAN 簡介
2.1 模型結構
GAN 由一個生成模型和一個鑒別模型 組成.
生成模型(enerative Model):? ? ? 輸入特征向量z,產生假的數據,試圖欺騙判別模型.
判別模型(Discriminative Model): 對生成數據進行真偽鑒別,試圖識別出所有的假的數據
在訓練的過程中,兩個模型持續的進化和對抗,最終兩個網絡達到一個動態均衡:
? ? 生成器生成的圖像接近真實圖像分布,判別器不能識別真假圖像,對于
?? ?給定圖像的預測為真的概率接近0.5
2.2 算法流程(forward)
? ? ? ?s1:? 輸入特征z ,通過生成網絡G 得到生成圖片
? ? ? ?s2? : 輸入圖片x(真實的圖片或生成的圖片),鑒別圖片真假
三? ?GAN? 損失函數?
?
? ? ? ?
? ? ? ? ? ??
? ? ? ? ?生成器G 和 判別器D? 要分開來訓練.
? ? ? ? ?鑒別器D: 輸出圖片真假的概率,是一個二分類問題.用交叉熵來作為損失函數
? ? ? ??? 真實的圖片
? ? ? ??:? ? ? ?通過生成器生成的假圖片
? ? ? ?3.1??針對判別器D
? ? ? ? ? ? ? ? ?? ?真實的圖像的采樣
? ? ? ? ? ? ? ? 我們期望?, 所以?
?最大化
? ? ? ? ? ? ? ? ??生成的圖像:
? ? ? ? ? ? ? ? ? 我們期望,則
, 所以
最大化。
? ?
?? ? ? ? ? ? ? ? ?在訓練的鑒別器的時候我們,把它轉化為求極小值問題
? ? ?
? 3.2 針對生成器G? ?
? ? ? ? ???通過生成器生成的圖片
? ? ? ? ? 我們期望.
? ? ? ? ? ? 則 ?
? ? ? ? ? ? ?所以最小化
?四? ?訓練方法
? ? ?4.1 偽代碼
? ? ? ? 先訓練k輪鑒別模型,再訓練生成模型?
4.2 訓練過程
? ?如上圖: 黑線 真實數據的分布,
? ? ? ? ? ? ? ? ? ?綠線 生成模型產生的分布
? ? ? ? ? ? ? ? ? ?藍線? ?鑒別器鑒別真假的概率
? ?圖1:
? ? ? ? ? ? ? ? ?生成模型很弱,綠線和黑線分布有較大的差異,鑒別模型很容易區分出真假.
? ?圖2
? ? ? ? ? ? ? 生成模型通過訓練進化了,調整其參數,綠線和黑線分布接近了,鑒別模型還是能夠分出真假
? ? 圖3? ? ?
? ? ? ? ? ? ? 生成模型通過訓練進化了,調整其參數,綠線和黑線分布一致,鑒別模型無法給出真假
識別真假的能力為50%
五? ?GAN的應用
? ?基于GAN 有大量的創新應用
GitHub - open-mmlab/mmgeneration: MMGeneration is a powerful toolkit for generative models, based on PyTorch and MMCV.
? ? ?1: 圖像生成
? ? ?輸入一段文字,通過生成模型得到圖像。
? ? ?
? 2: 圖像風格遷移(CycleGAN)
? ? 把一種圖像的風格轉換為另一種
? 3??圖像翻譯——pix2pix模型
有一類任務叫做image-to-image translation。也就是輸入和輸出是來自兩個不同集合(設為A和B)的圖片,且我們一般認為它們是有對應關系的。比如輸入黑白照片(A)輸出彩色照片(B),輸入輪廓照片(A)輸出色彩填充照片(B)等(如圖1),本文介紹的pix2pix模型所處理的就是這類任務。并且原文作者通過一系列實驗,證明了conditional GAN在這類問題上的有效性,也就是說,pix2pix本質上是一種特殊的conditional GAN。? ??
? 5 聲音的轉換(CycleGAN-VC2)
? ? ? ? 將自己的聲音風格轉換
六? GAN 問題
? ? ? 問題:
? ? ? ? JS散度值有一個缺陷,當兩個分布完全不重疊時,其JS散度值都是一個常數,以至于梯度為0
? ? ? 6.1 優化目標
? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ??
? ? ? ? 假設:
? ? ? ? ? ? ? ?真實的圖像服從?的分布
? ? ? ? ? ? ? ?生成的圖像服從的分布
? ? ? 6.2? 固定生成模型G, 判別模型D優化目標
? ? ? ? ? ? ? 對D求微分
? ? ? ? ? ? ??
? ? ? ? ? ? ??
? ? 6.3 固定判別模型D,生成模型優化目標
? ? ? ?
? ? ? ? ? ? ? ? ? ? ?
? ? ?
JS 散度度量了兩個概率分布的相似度?。一般地,JS散度是對稱的,其取值是 0 到 1 之間 ( “JS散度” 是基于 “KL散度” 的變體,解決了KL散度非對稱的問題)。
而JS散度值有一個缺陷,當兩個分布完全不重疊時,即便兩個分布的中心距離有多近,其JS散度值都是一個常數,以至于梯度為0
? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ?
所以
? ? ? ? ? ? ? ? ?
? ? ?6.4 問題
如上圖,當p(x) 和q(x) 分布完全不重疊的時候
??
?
? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? ?
? ? ? ? ??
參考:
偏理論類(創新性更高,意義更大):ICLR,NIPS,ICML
偏重應用類(一般來說創新性有限):AAAI,IJCAI
計算機視覺:CVPR,ICCV,ECCV
自然語言處理:ACL,EMNLP,NaACL
使用 CycleGAN-VC2 實現【人聲音色轉換】!! - 知乎
https://www.cnblogs.com/Edison-zzc/p/17621424.html
GAN的語音翻譯和音頻樣式傳輸如何使用頻譜圖和GAN將爵士樂轉換為古典音樂_頻譜圖 風格轉換-CSDN博客
吹爆!GAN生成對抗網絡原理解讀+論文講解+代碼實現被計算機博士由淺入深講明白了!—人工智能/深度學習/機器學習/AI_嗶哩嗶哩_bilibili
AE?CSDN
VAE?CSDN
https//cs.stanford.edu/people/karpathy/gan/
MMGeneration開源圖像生成算法庫【OpenMMLab】_嗶哩嗶哩_bilibili
Hung-yi Lee
Adverarial Nets
GAN論文逐段精讀【論文精讀】_嗶哩嗶哩_bilibili
精讀CycleGAN論文-拍案叫絕的非配對圖像風格遷移_嗶哩嗶哩_bilibili
https://www.bilibili.com/video/BV1Ya411a78P/?spm_id_from=333.337.search-card.all.click&vd_source=a624c4a1aea4b867c580cc82f03c1745
GAN代碼實戰和原理精講 PyTorch代碼進階 最簡明易懂的GAN生成對抗網絡入門課程 使用PyTorch編寫GAN實例 2021.12最新課程_嗶哩嗶哩_bilibili?