Python人工智能學(xué)習(xí)PyTorch實(shí)現(xiàn)WGAN示例詳解
1.GAN簡(jiǎn)述
在GAN中,有兩個(gè)模型,一個(gè)是生成模型,用于生成樣本,一個(gè)是判別模型,用于判斷樣本是真還是假。但由于在GAN中,使用的JS散度去計(jì)算損失值,很容易導(dǎo)致梯度彌散的情況,從而無法進(jìn)行梯度下降更新參數(shù),于是在WGAN中,引入了Wasserstein Distance,使得訓(xùn)練變得穩(wěn)定。本文中我們以服從高斯分布的數(shù)據(jù)作為樣本。
2.生成器模塊
這里從2維數(shù)據(jù),最終生成2維,主要目的是為了可視化比較方便。也就是說,在生成模型中,我們輸入雜亂無章的2維的數(shù)據(jù),通過訓(xùn)練之后,可以生成一個(gè)贗品,這個(gè)贗品在模仿高斯分布。

3.判別器模塊
判別器同樣輸入的是2維的數(shù)據(jù)。比如我們上面的生成器,生成了一個(gè)2維的贗品,輸入判別器之后,它能夠最終輸出一個(gè)sigmoid轉(zhuǎn)換后的結(jié)果,相當(dāng)于是一個(gè)概率,從而判別,這個(gè)贗品到底能不能達(dá)到以假亂真的程度。

4.數(shù)據(jù)生成模塊
由于我們使用的是高斯模型,因此,直接生成我們需要的數(shù)據(jù)即可。我們?cè)谶@個(gè)模塊中,生成8個(gè)服從高斯分布的數(shù)據(jù)。

5.判別器訓(xùn)練
由于使用JS散度去計(jì)算損失的時(shí)候,會(huì)很容易出現(xiàn)梯度極小,接近于0的情況,會(huì)使得梯度下降無法進(jìn)行,因此計(jì)算損失的時(shí)候,使用了Wasserstein Distance,去度量?jī)蓚€(gè)分布之間的差異。因此我們假如了梯度懲罰的因子。

其中,梯度懲罰的模塊如下:

6.生成器訓(xùn)練
這里的訓(xùn)練是緊接著判別器訓(xùn)練的。也就是說,在一個(gè)周期里面,先訓(xùn)練判別器,再訓(xùn)練生成器。

7.結(jié)果可視化
通過visdom可視化損失值,通過matplotlib可視化分布的預(yù)測(cè)結(jié)果。

以上就是人工智能學(xué)習(xí)PyTorch實(shí)現(xiàn)WGAN示例詳解的詳細(xì)內(nèi)容,更多關(guān)于PyTorch實(shí)現(xiàn)WGAN的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- python人工智能human?learn繪圖創(chuàng)建機(jī)器學(xué)習(xí)模型
- Python 人工智能老照片修復(fù)算法學(xué)習(xí)
- python人工智能深度學(xué)習(xí)算法優(yōu)化
- python人工智能深度學(xué)習(xí)入門邏輯回歸限制
- python深度學(xué)習(xí)人工智能BackPropagation鏈?zhǔn)椒▌t
- Python人工智能深度學(xué)習(xí)模型訓(xùn)練經(jīng)驗(yàn)總結(jié)
- Python人工智能深度學(xué)習(xí)RNN模型結(jié)構(gòu)流程
- Python人工智能深度學(xué)習(xí)CNN
- Python AI入門學(xué)習(xí):從Hello World到線性回歸、神經(jīng)網(wǎng)絡(luò)、圖像分類
相關(guān)文章
matplotlib中l(wèi)egend位置調(diào)整解析
這篇文章主要介紹了matplotlib中l(wèi)egend位置調(diào)整解析,具有一定借鑒價(jià)值,需要的朋友可以參考下。2017-12-12
Python Web日志管理與監(jiān)控實(shí)踐指南
這篇文章主要介紹了Python Web日志管理與監(jiān)控實(shí)踐指南,文中通過代碼示例講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-09-09
python中數(shù)組和矩陣乘法及使用總結(jié)(推薦)
這篇文章主要介紹了python中數(shù)組和矩陣乘法及使用總結(jié),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05

