日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

深入理解GAN对抗生成网络

發(fā)布時(shí)間:2023/12/20 编程问答 59 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深入理解GAN对抗生成网络 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

    • 什么是GAN
    • 納什均衡
    • GAN的學(xué)習(xí)過(guò)程
    • GAN的局限性
    • 如何改善GAN的局限性

什么是GAN

Generative Adversarial Networks,生成式對(duì)抗網(wǎng)絡(luò),Ian Goodfellow 在2014 年提出的一種生成式模型
基本思想來(lái)自博弈論的二人零和博弈(納什均衡), 由一個(gè)生成器和一個(gè)判別器構(gòu)成,通過(guò)對(duì)抗學(xué)習(xí)來(lái)訓(xùn)練

  • 生成器的目的是盡量去學(xué)習(xí)真實(shí)的數(shù)據(jù)分布
  • 判別器的目的是盡量正確判別輸入數(shù)據(jù)是來(lái)自真實(shí)數(shù)據(jù)還是來(lái)自生成器
  • 生成器和判別器就是一個(gè)矛和盾互相PK的過(guò)程
  • 為了取得游戲勝利,這兩個(gè)游戲參與者需要不斷優(yōu)化, 各自提高自己的生成能力和判別能力,這個(gè)學(xué)習(xí)優(yōu)化過(guò)程就是尋找二者之間的一個(gè)納什均衡

    G代表生成器,D代表判別器,Z是輸入源,稱為Noise source,就是一個(gè)隨機(jī)編碼。給出一個(gè)random code(即Z)由生成器G生成假數(shù)據(jù)X’,假數(shù)據(jù)X’和真實(shí)數(shù)據(jù)X喂給判別器D,由D判別出哪個(gè)是real,哪個(gè)是fake,這個(gè)就是gan的基本原理

納什均衡

我們以囚徒困境的例子來(lái)解釋納什均衡的含義

A和B屬于零和游戲,需要在A和B的決策中進(jìn)行Trade Off(權(quán)衡),由此看出,抵賴對(duì)兩個(gè)人來(lái)說(shuō)都是最優(yōu)的結(jié)果,這個(gè)就是納什均衡。

亞當(dāng)·斯密的“看不見(jiàn)的手”,在市場(chǎng)經(jīng)濟(jì)中,每一個(gè)人都從利己的目的出發(fā),不斷調(diào)和與迭代,最終全社會(huì)達(dá)到利他的效果

GAN的學(xué)習(xí)過(guò)程

GAN的學(xué)習(xí)過(guò)程其實(shí)就是把D和G達(dá)成一個(gè)均衡,這是我們的目標(biāo),因此不僅要訓(xùn)練G,也要訓(xùn)練D

為什么D和G是對(duì)抗的?
G是生成器,它生成的數(shù)據(jù)是虛假的,它目標(biāo)是讓生成的數(shù)據(jù)騙過(guò)D。D是判別器,它的目標(biāo)是要把虛假的數(shù)據(jù)給找出來(lái),因此D和G是對(duì)抗的


對(duì)于 GAN 的學(xué)習(xí)過(guò)程 ,需要訓(xùn)練模型D來(lái)最大化判別數(shù)據(jù)來(lái)源于真實(shí)數(shù)據(jù)或者偽數(shù)據(jù)分布 ,同時(shí),我們需要訓(xùn)練模型 G來(lái)最小化 loss。

我們?cè)摬捎迷鯓拥膬?yōu)化方法,對(duì)生成器G和判別器D進(jìn)行優(yōu)化呢?

  • Step1,固定生成器 G=>優(yōu)化判別器 D,讓D的判別準(zhǔn)確率最大化
  • Step2,固定判別器 D => 優(yōu)化生成器 G,讓D的判別準(zhǔn)確率最小化

訓(xùn)練 GAN 時(shí),在同一輪參數(shù)更新中,通常對(duì) D 的參數(shù)更新 k 次,再對(duì) G的參數(shù)更新 1 次,這樣做的目的是讓D學(xué)的更快點(diǎn),因?yàn)槲覀冏罱K要的是G,為此需要把D這個(gè)教練先變得越來(lái)越好,由此才能訓(xùn)練出更好的G

Generator與Discriminator的工作原理

  • Generator,在輸入一個(gè)隨機(jī)編碼(random code)z之后,它將輸出一幅由神經(jīng)網(wǎng)絡(luò)自動(dòng)生成的、假的圖片G(z)
  • Discriminator,接受G輸出的圖像作為輸入,然后判斷這幅圖像的真假,真的輸出1,假的輸出0
  • G生成的圖像會(huì)越來(lái)越逼真,D也越來(lái)越會(huì)判斷圖片的真假,最后我們就不要D了,直接用G來(lái)生成圖像


我們就是要在最大化D的能力的前提下,最小化D對(duì)G的判斷能力 ,所以稱之為 最小最大值問(wèn)題


損失函實(shí)際上是一個(gè)交叉熵,判別器的目的是盡可能的令D(x)接近1(對(duì)于真圖像x的處理評(píng)分要高),令D(G(z))接近0(對(duì)于假圖像G(z)的處理評(píng)分要盡量降低),所以D主要是最大化上面的損失函數(shù)(讓D的辨別能力更強(qiáng)),G恰恰相反,他主要是最小化上述損失函數(shù)(讓生成的假圖像G(z)變得更真實(shí))。

為了增強(qiáng)D的能力,我們分別考慮輸入真的圖像和假的圖像的情況

D的目標(biāo)是什么?G的目標(biāo)是什么?

  • D的目標(biāo)是:D(G(z))處理的是假圖像G(z) => 評(píng)分D(G(z))要盡量降低,對(duì)于真圖像x的處理 => 評(píng)分要高,這樣D的辨別能力才會(huì)更強(qiáng)
  • G的目標(biāo)是:讓生成的假圖像G(z)變得更真實(shí)、更逼真,讓D難以辨別

GAN的局限性

用戶輸入random code由生成器G參數(shù) fake image即G(Z),傳統(tǒng)的GAN中會(huì)出現(xiàn)如下局限性:

  • 在傳統(tǒng)的GAN里,由于沒(méi)有用戶控制能力,輸入一個(gè)隨機(jī)噪聲,就會(huì)輸出一幅隨機(jī)圖像(可能輸出貓?jiān)谧筮吇蚴秦堅(jiān)谟疫叺膱D像)
  • 這里user input 是指輸入的random code,output是G生成的G(Z),還要從現(xiàn)實(shí)世界中取一張或者畫(huà)一張真實(shí)圖像,與output一起輸入判別器

  • 低分辨率(Low resolution)和低質(zhì)量(Low quality)問(wèn)題

    生成的圖片看起來(lái)不錯(cuò),但放大看,會(huì)發(fā)現(xiàn)細(xì)節(jié)相當(dāng)模糊
  • 如何改善GAN的局限性

    如改善GAN的局限性可以從以下兩個(gè)方面入手:

    • 提高GAN的用戶控制能力
    • 提高GAN生成圖片的分辨率和質(zhì)量

    從以上兩個(gè)方面提出新的算法模型:

  • pix2pix,有條件的使用用戶輸入,使用成對(duì)的數(shù)據(jù)(paired data)進(jìn)行訓(xùn)練。比如,輸入的是貓?jiān)谧筮?#xff0c;你就不能生成貓?jiān)谟疫叺膱D。Pix2pix的缺點(diǎn):在訓(xùn)練過(guò)程中,需要人為給它標(biāo)出數(shù)據(jù)的對(duì)應(yīng)關(guān)系,比如 現(xiàn)在的輸入條件是貓?jiān)谧筮?#xff0c;人要給它畫(huà)一張或找一張貓?jiān)谧筮叺膱D像,才會(huì)讓G更好的學(xué)習(xí),以產(chǎn)生貓?jiān)谟疫叺膱D像,這對(duì)數(shù)據(jù)源的要求會(huì)很高

  • CycleGAN,使用不成對(duì)的數(shù)據(jù)(unpaired data)就能訓(xùn)練。
    以馬為例,馬訓(xùn)練馬是成對(duì)的數(shù)據(jù),用馬生成斑馬,是不成對(duì)數(shù)據(jù)。由于現(xiàn)實(shí)生活中成對(duì)的樣本比較少,對(duì)于沒(méi)有成對(duì)樣本的情況,使用CycleGAN,CycleGAN有兩個(gè)生成器,馬->斑馬,斑馬->馬,我們最終想要的是馬->斑馬,利用理論上開(kāi)始的馬和馬->斑馬->馬是一樣的,同時(shí)優(yōu)化馬->斑馬,斑馬->馬兩個(gè)生成器,最終使用馬->斑馬。
    CycleGAN本質(zhì)是優(yōu)化生成器的一個(gè)思想,拿文本翻譯來(lái)說(shuō),你把一段英文翻譯成中文,再把中文翻譯回英文,假如翻譯回來(lái)的英文和一開(kāi)始的英文天差地別,那么這個(gè)兩次翻譯的結(jié)果肯定是很差的;反之,如果能夠讓翻譯回來(lái)的英文和原本的一樣,就相當(dāng)于是改進(jìn)了兩次翻譯的效果,CycleGAN利用這種方式來(lái)優(yōu)化生成器。

  • pix2pixHD,生成高分辨率、高質(zhì)量的圖像

  • 未來(lái)還會(huì)持續(xù)更新:

    • Conditional GAN
    • pix2pix
    • CycleGAN
    • GauGAN

    謝謝支持!

    總結(jié)

    以上是生活随笔為你收集整理的深入理解GAN对抗生成网络的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。