• <sub id="pqc61"><p id="pqc61"></p></sub><sub id="pqc61"></sub>
    在线精品视频一区二区,亚洲中文字幕无码一久久区,正在播放肥臀熟妇在线视频,国内精品视频一区二区三区八戒 ,国产毛片三区二区一区,国产精品一区中文字幕,丰满少妇被猛烈进出69影院,国产成人无码
    您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號(hào)安全和更好的產(chǎn)品體驗(yàn),強(qiáng)烈建議使用更快更安全的瀏覽器
    此為臨時(shí)鏈接,僅用于文章預(yù)覽,將在時(shí)失效
    人工智能 正文
    發(fā)私信給谷磊
    發(fā)送

    0

    GAN的理解與TensorFlow的實(shí)現(xiàn)

    本文作者: 谷磊 2017-02-08 17:41
    導(dǎo)語:本文介紹了生成對(duì)抗式網(wǎng)絡(luò)的一些內(nèi)容,從生成式模型開始說起,到GAN的基本原理,InfoGAN,AC-GAN的基本科普。

    雷鋒網(wǎng)按:本文作者想飛的石頭,首發(fā)于知乎專欄雷鋒網(wǎng)獲授權(quán)轉(zhuǎn)載。有興趣的朋友還可以移步作者的個(gè)人博客:小石頭的碼瘋窩GAN的理解與TensorFlow的實(shí)現(xiàn)

    前言

    本文會(huì)從頭介紹生成對(duì)抗式網(wǎng)絡(luò)的一些內(nèi)容,從生成式模型開始說起,到GAN的基本原理,InfoGAN,AC-GAN的基本科普,如果有任何有錯(cuò)誤的地方,請(qǐng)隨時(shí)噴,我剛開始研究GAN這塊的內(nèi)容,希望和大家一起學(xué)習(xí)。

    生成式模型

    何為生成式模型?在很多machine learning的教程或者公開課上,通常會(huì)把machine learning的算法分為兩類: 生成式模型、判別式模型;其區(qū)別在于: 對(duì)于輸入x,類別標(biāo)簽y,在生成式模型中估計(jì)其聯(lián)合概率分布,而判別式模型估計(jì)其屬于某類的條件概率分布。 常見的判別式模型包括:LogisticRegression, SVM, Neural Network等等,生成式模型包括:Naive Bayes, GMM, Bayesian Network, MRF 等等

    研究生成式模型的意義

    生成式模型的特性主要包括以下幾個(gè)方面:

    • 在應(yīng)用數(shù)學(xué)和工程方面,生成式模型能夠有效地表征高維數(shù)據(jù)分布;

    • 生成式模型能夠作為一種技術(shù)手段輔助強(qiáng)化學(xué)習(xí),能夠有效表征強(qiáng)化學(xué)習(xí)模型中的state狀態(tài)(這里不擴(kuò)展,后面會(huì)跟RL的學(xué)習(xí)筆記);

    • 對(duì)semi-supervised learning也有比較好的效果,能夠在miss data下訓(xùn)練模型,并在miss data下給出相應(yīng)地輸出;

    • 在對(duì)于一個(gè)輸入伴隨多個(gè)輸出的場(chǎng)景下,生成式模型也能夠有效工作,而傳統(tǒng)的機(jī)器學(xué)習(xí)方法通過最小化模型輸出和期望輸出的某個(gè)object function的值 無法訓(xùn)練單輸入多輸出的模型,而生成式模型,尤其是GAN能夠hold住這種場(chǎng)景,一個(gè)典型的應(yīng)用是通過場(chǎng)景預(yù)測(cè)video的下一幀。

    生成式模型一些典型的應(yīng)用:

    生成式模型族譜

    GAN的理解與TensorFlow的實(shí)現(xiàn)

    上圖涵蓋了基本的生成式模型的方法,主要按是否需要定義概率密度函數(shù)分為:

    Explicit density models

    explicit density models 又分為tractable explicit models和逼近的explicit model,怎么理解呢,tractable explicit model通常可以直接通過數(shù)學(xué)方法來建模求解,而基于逼近的explicit model通常無法直接對(duì)數(shù)據(jù)分布進(jìn)行建模,可以利用數(shù)學(xué)里的一些近似方法來做數(shù)據(jù)建模, 通常基于逼近的explicit model分為確定性(變分方法:如VAE的lower bound)和隨機(jī)性的方法(馬爾科夫鏈蒙特卡洛方法)。

    • VAE lower bound:

    GAN的理解與TensorFlow的實(shí)現(xiàn)

    馬爾科夫鏈蒙特卡洛方法(MCMC),一種經(jīng)典的基于馬爾科夫鏈的抽樣方法,通過多次來擬合分布。比較好的教程:A Beginner’s Guide to Monte Carlo Markov Chain MCMC Analysis, An Introduction to MCMC for Machine Learning.

    Implicit density models

    無需定義明確的概率密度函數(shù),代表方法包括馬爾科夫鏈、生成對(duì)抗式網(wǎng)絡(luò)(GAN),該系列方法無需定義數(shù)據(jù)分布的描述函數(shù)。

    生成對(duì)抗式網(wǎng)絡(luò)與其他生成式網(wǎng)絡(luò)對(duì)比

    生成對(duì)抗式網(wǎng)絡(luò)(GAN)能夠有效地解決很多生成式方法的缺點(diǎn),主要包括:

    • 并行產(chǎn)生samples;

    • 生成式函數(shù)的限制少,如無需合適馬爾科夫采樣的數(shù)據(jù)分布(Boltzmann machines),生成式函數(shù)無需可逆、latent code需與sample同維度(nonlinear ICA);

    • 無需馬爾科夫鏈的方法(Boltzmann machines, GSNs);

    • 相對(duì)于VAE的方法,無需variational bound;

    • GAN比其他方法一般來說性能更好。

    GAN工作原理

    GAN主要由兩部分構(gòu)成:generator和discriminator,generator主要是從訓(xùn)練數(shù)據(jù)中產(chǎn)生相同分布的samples,而discriminator 則是判斷輸入是真實(shí)數(shù)據(jù)還是generator生成的數(shù)據(jù),discriminator采用傳統(tǒng)的監(jiān)督學(xué)習(xí)的方法。這里我們可以這樣類比,generator 是一個(gè)偽造假幣的專業(yè)人士,discriminator是警察,generator的目的是制造出盡可能以假亂真的假鈔,而discriminator是為了能 鑒別是否為假鈔,最終整個(gè)gan會(huì)達(dá)到所謂的納什均衡,Goodfellow在他的paperGAN的理解與TF的實(shí)現(xiàn)-小石頭的碼瘋窩中有嚴(yán)格的數(shù)學(xué)證明,當(dāng)$p_G$==$p_{data}$時(shí)達(dá)到 全局最優(yōu):

    GAN的理解與TensorFlow的實(shí)現(xiàn)

    另一個(gè)比較明顯看得懂的圖如下:

    GAN的理解與TensorFlow的實(shí)現(xiàn)

    圖中黑色點(diǎn)線為真實(shí)數(shù)據(jù)分布$p_{data}$,綠色線為generator生成的數(shù)據(jù)分布$p_{G}$,而Discriminator就是藍(lán)色點(diǎn)線,其目的是為了將$p_{data}$和$p_{G}$ 區(qū)分,(a)中是初始狀態(tài),然后會(huì)更新Discriminator中的參數(shù),若干次step之后,Discriminator有了較大的判斷力即到了(b)的狀態(tài),之后會(huì)更新G的模型使其生成的數(shù)據(jù)分布(綠色線)更加趨近與真實(shí)數(shù)據(jù)分布, 若干次G和D的模型參數(shù)更新后,理論上最終會(huì)達(dá)到(d)的狀態(tài)即G能夠產(chǎn)生和真實(shí)數(shù)據(jù)完全一致的分布(證明見上一張圖),如從隨機(jī)數(shù)據(jù)分布生成人臉像。

    如何訓(xùn)練GAN

    因?yàn)镚AN結(jié)構(gòu)的不同,和常規(guī)訓(xùn)練一個(gè)dl model方法不同, 這里采用simultaneous SGD,每一個(gè)step中,會(huì)有兩個(gè)兩個(gè)梯度優(yōu)化的 過程,一個(gè)是更新discriminator的參數(shù)來最小化$J_{(D)}$,一個(gè)是更新generator的參數(shù)來最小$J_{(G)}$,通常會(huì)選用Adam來作為最優(yōu)化的優(yōu)化器, 也有人建議可以不等次數(shù)地更新generator和discriminator(有相關(guān)工作提出,1:1的在實(shí)際中更有效:Adam: A Method for Stochastic Optimization) 如何訓(xùn)練GAN,在Goodfellow的GAN的tutorial還有一些代碼中有更多的描述包括不同的cost function, 這里我就不詳細(xì)展開了。

    DCGAN

    GAN出來后很多相關(guān)的應(yīng)用和方法都是基于DCGAN的結(jié)構(gòu),DCGAN即”Deep Convolution GAN”,通常會(huì)有一些約定俗成的規(guī)則:

    GAN的理解與TensorFlow的實(shí)現(xiàn)

    • 在Discriminator和generator中大部分層都使用batch normalization,而在最后一層時(shí)通常不會(huì)使用batch normalizaiton,目的 是為了保證模型能夠?qū)W習(xí)到數(shù)據(jù)的正確的均值和方差;

    • 因?yàn)闀?huì)從random的分布生成圖像,所以一般做需要增大圖像的空間維度時(shí)如77->1414, 一般會(huì)使用strdie為2的deconv(transposed convolution);

    • 通常在DCGAN中會(huì)使用Adam優(yōu)化算法而不是SGD。

    各種GANGAN的理解與TensorFlow的實(shí)現(xiàn)

    這里有個(gè)大神把各種gan的paper都做了一個(gè)統(tǒng)計(jì)AdversarialNetsPapers

    這里大家有更多的興趣可以直接去看對(duì)應(yīng)的paper,我接下來會(huì)盡我所能描述下infogan和AC-GAN這兩塊的內(nèi)容

    InfoGAN

    InfoGAN是一種能夠?qū)W習(xí)disentangled representation的GAN,何為disentangled representation?比如人臉數(shù)據(jù)集中有各種不同的屬性特點(diǎn),如臉部表情、是否帶眼睛、頭發(fā)的風(fēng)格眼珠的顏色等等,這些很明顯的相關(guān)表示, InfoGAN能夠在完全無監(jiān)督信息(是否帶眼睛等等)下能夠?qū)W習(xí)出這些disentangled representation,而相對(duì)于傳統(tǒng)的GAN,只需修改loss來最大化GAN的input的noise(部分fixed的子集)和最終輸出之間的互信息。

    原理

    為了達(dá)到上面提到的效果,InfoGAN必須在input的noise來做一些文章,將noise vector劃分為兩部分:

    • z: 和原始的GAN input作用一致;

    • c: latent code,能夠在之后表示數(shù)據(jù)分布中的disentangled representation

    那么如何從latent code中學(xué)到相應(yīng)的disentangled representation呢? 在原始的GAN中,忽略了c這部分的影響,即GAN產(chǎn)生的數(shù)據(jù)分布滿足$P_{G}(x|C)=P(x)$,為了保證能夠利用c這部分信息, 作者提出這樣一個(gè)假設(shè):c與generator的輸出相關(guān)程度應(yīng)該很大,而在信息論中,兩個(gè)數(shù)據(jù)分布的相關(guān)程度即互信息, 即generator的輸出和input的c的$I(c;G(z,c))$應(yīng)該會(huì)大。 所以,InfoGAN就變成如下的優(yōu)化問題:

    GAN的理解與TensorFlow的實(shí)現(xiàn)

    因?yàn)榛バ畔⒌挠?jì)算需要后驗(yàn)概率的分布(下圖紅線部分),在實(shí)際中很難直接使用,因此,在實(shí)際訓(xùn)練中一般不會(huì)直接最大化$I(c;G(z,c))$

    GAN的理解與TensorFlow的實(shí)現(xiàn)

    這里作者采用和VAE類似的方法,增加一個(gè)輔助的數(shù)據(jù)分布為后驗(yàn)概率的low bound: 所以,這里互信息的計(jì)算如下:

    GAN的理解與TensorFlow的實(shí)現(xiàn)

    這里相關(guān)的證明就不深入了,有興趣的可以去看看paper。

    實(shí)驗(yàn)

    我寫的一版基于TensorFlow的Info-GAN實(shí)現(xiàn):Info-GANburness/tensorflow-101 random的label信息,和對(duì)應(yīng)生成的圖像:

    GAN的理解與TensorFlow的實(shí)現(xiàn)

    GAN的理解與TensorFlow的實(shí)現(xiàn)

    不同random變量控制產(chǎn)生同一class下的不同輸出:

    GAN的理解與TensorFlow的實(shí)現(xiàn)

    AC-GAN

    AC-GAN即auxiliary classifier GAN,對(duì)應(yīng)的paper:[1610.09585] Conditional Image Synthesis With Auxiliary Classifier GANs, 如前面的示意圖中所示,AC-GAN的Discriminator中會(huì)輸出相應(yīng)的class label的概率,然后更改loss fuction,增加class預(yù)測(cè)正確的概率, ac-gan是一個(gè)tensorflow相關(guān)的實(shí)現(xiàn),基于作者自己開發(fā)的sugartensor,感覺和paper里面在loss函數(shù)的定義上差異,看源碼的時(shí)候注意下,我這里有參考寫了一個(gè)基于原生tensorflow的版本AC-GAN.

    實(shí)驗(yàn)

    各位有興趣的可以拿代碼在其他的數(shù)據(jù)集上也跑一跑,AC-GAN能夠有效利用class label的信息,不僅可以在G時(shí)指定需要生成的image的label,同事該class label也能在Discriminator用來擴(kuò)展loss函數(shù),增加整個(gè)對(duì)抗網(wǎng)絡(luò)的性能。 random的label信息,和對(duì)應(yīng)生成的圖像:

    GAN的理解與TensorFlow的實(shí)現(xiàn)

    GAN的理解與TensorFlow的實(shí)現(xiàn)

    不同random變量控制產(chǎn)生同一class下的不同輸出:

    GAN的理解與TensorFlow的實(shí)現(xiàn)

    總結(jié)

    照例總結(jié)一下,本文中,我基本介紹了下生成式模型方法的各個(gè)族系派別,到GAN的基本內(nèi)容,到InfoGAN、AC-GAN,大部分的工作都來自于閱讀相關(guān)的paper,自己相關(guān)的工作就是 tensorflow下參考sugartensor的內(nèi)容重現(xiàn)了InfoGAN、AC-GAN的相關(guān)內(nèi)容。

     當(dāng)然,本人菜鳥一枚,難免有很多理解不到位的地方,寫出來更多的是作為分享,讓更多人了解GAN這塊的內(nèi)容,如果任何錯(cuò)誤或不合適的地方,敬請(qǐng)?jiān)谠u(píng)論中指出,我們一起討論一起學(xué)習(xí) 另外我的所有相關(guān)的代碼都在github上:GAN,相信讀一下無論是對(duì)TensorFlow的理解還是GAN的理解都會(huì) 有一些幫助,簡(jiǎn)單地參考mnist.py修改下可以很快的應(yīng)用到你的數(shù)據(jù)集上,如果有小伙伴在其他數(shù)據(jù)集上做出有意思的實(shí)驗(yàn)效果的,歡迎分享。

    GAN的理解與TensorFlow的實(shí)現(xiàn)

    分享:
    相關(guān)文章

    編輯

    專注報(bào)道人工智能。微信:ydxy301
    當(dāng)月熱門文章
    最新文章
    請(qǐng)?zhí)顚懮暾?qǐng)人資料
    姓名
    電話
    郵箱
    微信號(hào)
    作品鏈接
    個(gè)人簡(jiǎn)介
    為了您的賬戶安全,請(qǐng)驗(yàn)證郵箱
    您的郵箱還未驗(yàn)證,完成可獲20積分喲!
    請(qǐng)驗(yàn)證您的郵箱
    立即驗(yàn)證
    完善賬號(hào)信息
    您的賬號(hào)已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
    立即設(shè)置 以后再說
    主站蜘蛛池模板: 超碰人人草| 麻豆av在线| 国产成人剧情AV麻豆果冻| 无码成a毛片免费| 久久精品国产精品亚洲| 亚洲人成电影在线天堂色| 91你懂的| 精品国产自在现线看久久| 肉大捧一进一出免费视频| 高清中文字幕国产精品| 国产熟女在线播放| 777精品二区| 国产精品一区二区无码免费看片| 亚洲国产成人精品女久久| 91人人操| 莱西市| 春色成人在线一区av| 国产中文字幕精品视频| 中文字幕一区二区无码成人| 俺来也成人网| 国产成年码av片在线观看| 99RE8这里有精品热视频| 二区三| 国产tsAV| yjizz视频网站在线观看| 国产精品爱久久久久久久| 日本一区二区不卡精品| 午夜性无码专区| 国产精品女同久久免费观看| 中文字幕日韩精品一区二区三区| 国产欧美日韩免费看AⅤ视频| 一区二区三区福利导航| 国产94在线 | 亚洲| 亚洲精品一区二区18禁| 国产大学生粉嫩无套流白浆| 国产SUV精品一区二区33| 亚洲色9在线| 国产精品毛片一区视频播| 亚洲AV成人无码国产一区二区| 亚洲欧美日韩久久精品第一区| 桃花综合久久久久久久久久网|