开心六月综合激情婷婷|欧美精品成人动漫二区|国产中文字幕综合色|亚洲人在线成视频

    1. 
      
        <b id="zqfy3"><legend id="zqfy3"><fieldset id="zqfy3"></fieldset></legend></b>
          <ul id="zqfy3"></ul>
          <blockquote id="zqfy3"><strong id="zqfy3"><dfn id="zqfy3"></dfn></strong></blockquote>
          <blockquote id="zqfy3"><legend id="zqfy3"></legend></blockquote>
          打開(kāi)APP
          userphoto
          未登錄

          開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

          開(kāi)通VIP
          萬(wàn)字綜述之生成對(duì)抗網(wǎng)絡(luò)(GAN)

          作者:郭曉鋒 (愛(ài)奇藝)

          前陣子學(xué)習(xí) GAN 的過(guò)程發(fā)現(xiàn)現(xiàn)在的 GAN 綜述文章大都是 2016 年 Ian Goodfellow 或者自動(dòng)化所王飛躍老師那篇。可是在深度學(xué)習(xí),GAN 領(lǐng)域,其進(jìn)展都是以月來(lái)計(jì)算的,感覺(jué)那兩篇綜述有些老了。

          最近發(fā)現(xiàn)有一篇最新的 GAN 綜述論文,四十余頁(yè),介紹了 GAN 的各個(gè)方面,于是就學(xué)習(xí)并整理筆記如下。文中許多內(nèi)容大都根據(jù)自己所學(xué)總結(jié),有不當(dāng)之處歡迎指出。

          此外,本文參考了許多博客資料,已給出參考鏈接。如有侵權(quán),請(qǐng)私信刪除。文章目錄如下:

          GAN的基本介紹

          生成對(duì)抗網(wǎng)絡(luò)(GAN,Generative Adversarial Networks)作為一種優(yōu)秀的生成式模型,引爆了許多圖像生成的有趣應(yīng)用。GAN 相比于其他生成式模型,有兩大特點(diǎn): 

          1. 不依賴(lài)任何先驗(yàn)假設(shè)。傳統(tǒng)的許多方法會(huì)假設(shè)數(shù)據(jù)服從某一分布,然后使用極大似然去估計(jì)數(shù)據(jù)分布。 

          2. 生成 real-like 樣本的方式非常簡(jiǎn)單。GAN 生成 real-like 樣本的方式通過(guò)生成器(Generator)的前向傳播,而傳統(tǒng)方法的采樣方式非常復(fù)雜,有興趣的同學(xué)可以參考下周志華老師的《機(jī)器學(xué)習(xí)》一書(shū)中對(duì)各種采樣方式的介紹。 

          下面,我們圍繞上述兩點(diǎn)展開(kāi)介紹。

          GAN的基本概念

          GAN(Generative Adversarial Networks)從其名字可以看出,是一種生成式的,對(duì)抗網(wǎng)絡(luò)。再具體一點(diǎn),就是通過(guò)對(duì)抗的方式,去學(xué)習(xí)數(shù)據(jù)分布的生成式模型。

          所謂的對(duì)抗,指的是生成網(wǎng)絡(luò)和判別網(wǎng)絡(luò)的互相對(duì)抗。生成網(wǎng)絡(luò)盡可能生成逼真樣本,判別網(wǎng)絡(luò)則盡可能去判別該樣本是真實(shí)樣本,還是生成的假樣本。示意圖如下:

          隱變量 z (通常為服從高斯分布的隨機(jī)噪聲)通過(guò) Generator 生成 Xfake, 判別器負(fù)責(zé)判別輸入的 data 是生成的樣本 Xfake 還是真實(shí)樣本 Xreal。優(yōu)化的目標(biāo)函數(shù)如下:

          對(duì)于判別器 D 來(lái)說(shuō),這是一個(gè)二分類(lèi)問(wèn)題,V(D,G) 為二分類(lèi)問(wèn)題中常見(jiàn)的交叉熵?fù)p失。對(duì)于生成器 G 來(lái)說(shuō),為了盡可能欺騙 D,所以需要最大化生成樣本的判別概率 D(G(z)),即最小化 log(1-D(G(z))),注意:log(D(x)) 一項(xiàng)與生成器 G 無(wú)關(guān),所以可以忽略。

          實(shí)際訓(xùn)練時(shí),生成器和判別器采取交替訓(xùn)練,即先訓(xùn)練 D,然后訓(xùn)練 G,不斷往復(fù)。值得注意的是,對(duì)于生成器,其最小化的是

          ,即最小化 V(D,G) 的最大值。

          為了保證 V(D,G) 取得最大值,所以我們通常會(huì)訓(xùn)練迭代k次判別器,然后再迭代1次生成器(不過(guò)在實(shí)踐當(dāng)中發(fā)現(xiàn),k 通常取 1 即可)。當(dāng)生成器 G 固定時(shí),我們可以對(duì) V(D,G) 求導(dǎo),求出最優(yōu)判別器 D*(x):

          把最優(yōu)判別器代入上述目標(biāo)函數(shù),可以進(jìn)一步求出在最優(yōu)判別器下,生成器的目標(biāo)函數(shù)等價(jià)于優(yōu)化 Pdata(x) , Pg(x) 的 JS 散度(JSD, Jenson Shannon Divergence)。 

          可以證明,當(dāng) G,D 二者的 capacity 足夠時(shí),模型會(huì)收斂,二者將達(dá)到納什均衡。此時(shí),Pdata(x)=Pg(x),判別器不論是對(duì)于 Pdata(x) 還是 Pg(x) 中采樣的樣本,其預(yù)測(cè)概率均為 1/2,即生成樣本與真實(shí)樣本達(dá)到了難以區(qū)分的地步。

          目標(biāo)函數(shù)

          前面我們提到了 GAN 的目標(biāo)函數(shù)是最小化兩個(gè)分布的 JS 散度。實(shí)際上,衡量?jī)蓚€(gè)分布距離的方式有很多種,JS 散度只是其中一種。如果我們定義不同的距離度量方式,就可以得到不同的目標(biāo)函數(shù)。許多對(duì) GAN 訓(xùn)練穩(wěn)定性的改進(jìn),比如 EBGAN,LSGAN 等都是定義了不同的分布之間距離度量方式。 

          f-divergence 

          f-divergence 使用下面公式來(lái)定義兩個(gè)分布之間的距離:

          上述公式中 f 為凸函數(shù),且 f(1)=0 。采用不同的 f 函數(shù)(Generator),可以得到不同的優(yōu)化目標(biāo)。具體如下:

          值得注意的是,散度這種度量方式不具備對(duì)稱(chēng)性,即 Df(Pdata||Pg) 和 Df(Pg||Pdata) 不相等。

          LSGAN 

          上面提到,LSGAN 是 f-divergence 中

          時(shí)的特殊情況。具體來(lái)說(shuō) LSGAN 的 Loss 如下:

          原作中取 a=c=1,b=0。LSGAN 有兩大優(yōu)點(diǎn): 

          • 穩(wěn)定訓(xùn)練:解決了傳統(tǒng)GAN訓(xùn)練過(guò)程中的梯度飽和問(wèn)題 

          • 改善生成質(zhì)量:通過(guò)懲罰遠(yuǎn)離判別器決策邊界的生成樣本來(lái)實(shí)現(xiàn) 

          對(duì)于第一點(diǎn),穩(wěn)定訓(xùn)練,可以先看一張圖:

          上圖左邊是傳統(tǒng) GAN 使用 sigmoid 交叉熵作為 loss 時(shí),輸入與輸出的對(duì)照關(guān)系圖。上圖右邊是 LSGAN 使用最小二乘 loss 時(shí),輸入與輸出的對(duì)照關(guān)系圖??梢钥吹?,在左圖,輸入比較大的時(shí)候,梯度為 0,即交叉熵?fù)p失的輸入容易出現(xiàn)梯度飽和現(xiàn)象。而右邊的最小二乘 loss 則不然。 

          對(duì)于第二點(diǎn),改善生成質(zhì)量。這個(gè)在原文也有詳細(xì)的解釋。具體來(lái)說(shuō):對(duì)于一些被判別器分類(lèi)正確的樣本,其對(duì)梯度是沒(méi)有貢獻(xiàn)的。但是判別器分類(lèi)正確的樣本就一定是很接近真實(shí)數(shù)據(jù)分布的樣本嗎?顯然不一定。 

          考慮如下理想情況,一個(gè)訓(xùn)練良好的 GAN,真實(shí)數(shù)據(jù)分布 Pdata 和生成數(shù)據(jù)分布 Pg 完全重合,判別器決策面穿過(guò)真實(shí)數(shù)據(jù)點(diǎn),所以,反過(guò)來(lái),我們利用樣本點(diǎn)離決策面的遠(yuǎn)近來(lái)度量生成樣本的質(zhì)量,樣本離決策面越近,則 GAN 訓(xùn)練的越好。

          上圖 b 中,一些離決策面比較遠(yuǎn)的點(diǎn),雖然被分類(lèi)正確,但是這些并不是好的生成樣本。傳統(tǒng) GAN 通常會(huì)將其忽略。而對(duì)于 LSGAN,由于采用最小二乘損失,計(jì)算決策面到樣本點(diǎn)的距離,如圖 c,可以把離決策面比較遠(yuǎn)的點(diǎn)“拉”回來(lái),也就是把離真實(shí)數(shù)據(jù)比較遠(yuǎn)的點(diǎn)“拉”回來(lái)。

          Integral probality metric (IPM) 

          IPM 定義了一個(gè)評(píng)價(jià)函數(shù)族 f ,用于度量任意兩個(gè)分布之間的距離。在一個(gè)緊湊的空間

          中,定義 P(x) 為在 x 上的概率測(cè)度。那么兩個(gè)分布 Pdata,Pg 之間的 IPM 可以定義為如下公式:

          類(lèi)似于 f-divergence,不同函數(shù) f 也可以定義出一系列不同的優(yōu)化目標(biāo)。典型的有 WGAN,F(xiàn)isher GAN 等。下面簡(jiǎn)要介紹一下 WGAN。 

          WGAN 

          WGAN 提出了一種全新的距離度量方式——地球移動(dòng)距離(EM, Earth-mover distance),也叫 Wasserstein 距離。關(guān)于 Wasserstein 距離的介紹可以參考:白話(huà) Wassertein 距離 [1]。

          Wasserstein 距離具體定義如下:

          ?(Pdata,Pg) 表示一組聯(lián)合分布,這組聯(lián)合分布里的任一分布 γ 的邊緣分布均為 Pdata(x) 和 Pg(x)。 

          直觀(guān)上來(lái)說(shuō),概率分布函數(shù)(PDF)可以理解為隨機(jī)變量在每一點(diǎn)的質(zhì)量,所以 W(Pdata,Pg) 則表示把概率分布 Pdata(x) 搬到 Pg(x) 需要的最小工作量。 

          WGAN 也可以用最優(yōu)傳輸理論來(lái)解釋?zhuān)琖GAN 的生成器等價(jià)于求解最優(yōu)傳輸映射,判別器等價(jià)于計(jì)算 Wasserstein 距離,即最優(yōu)傳輸總代價(jià) [4]。關(guān)于 WGAN 的理論推導(dǎo)和解釋比較復(fù)雜,不過(guò)代碼實(shí)現(xiàn)非常簡(jiǎn)單。具體來(lái)說(shuō) [3]: 

          • 判別器最后一層去掉 sigmoid

          • 生成器和判別器的 loss 不取 log 

          • 每次更新判別器的參數(shù)之后把它們的絕對(duì)值截?cái)嗟讲怀^(guò)一個(gè)固定常數(shù) c 

          上述第三點(diǎn),在 WGAN 的后來(lái)一篇工作 WGAN-GP 中,將梯度截?cái)嗵鎿Q為了梯度懲罰。

          f-divergence和IPM對(duì)比 

          f-divergence 存在兩個(gè)問(wèn)題:其一是隨著數(shù)據(jù)空間的維度

          的增加,f-divergence 會(huì)非常難以計(jì)算。其二是兩個(gè)分布的支撐集 [3] 通常是未對(duì)齊的,這將導(dǎo)致散度值趨近于無(wú)窮。 

          IPM 則不受數(shù)據(jù)維度的影響,且一致收斂于 Pdata},Pg 兩個(gè)分布之間的距離。而且即便是在兩個(gè)分布的支撐集不存在重合時(shí),也不會(huì)發(fā)散。 

          輔助的目標(biāo)函數(shù) 

          在許多 GAN 的應(yīng)用中,會(huì)使用額外的 Loss 用于穩(wěn)定訓(xùn)練或者達(dá)到其他的目的。比如在圖像翻譯,圖像修復(fù),超分辨當(dāng)中,生成器會(huì)加入目標(biāo)圖像作為監(jiān)督信息。EBGAN 則把 GAN 的判別器作為一個(gè)能量函數(shù),在判別器中加入重構(gòu)誤差。CGAN 則使用類(lèi)別標(biāo)簽信息作為監(jiān)督信息。

          其他常見(jiàn)生成式模型

          自回歸模型:pixelRNN與pixelCNN

          自回歸模型通過(guò)對(duì)圖像數(shù)據(jù)的概率分布 Pdata(x) 進(jìn)行顯式建模,并利用極大似然估計(jì)優(yōu)化模型。具體如下:

          上述公式很好理解,給定 x1,x2,...,xi-1 條件下,所有 p(xi) 的概率乘起來(lái)就是圖像數(shù)據(jù)的分布。如果使用 RNN 對(duì)上述依然關(guān)系建模,就是 pixelRNN。如果使用 CNN,則是 pixelCNN。具體如下 [5]:

          顯然,不論是對(duì)于 pixelCNN 還是 pixelRNN,由于其像素值是一個(gè)個(gè)生成的,速度會(huì)很慢。語(yǔ)音領(lǐng)域大火的 WaveNet 就是一個(gè)典型的自回歸模型。 

          VAE 

          PixelCNN/RNN 定義了一個(gè)易于處理的密度函數(shù),我們可以直接優(yōu)化訓(xùn)練數(shù)據(jù)的似然;對(duì)于變分自編碼器我們將定義一個(gè)不易處理的密度函數(shù),通過(guò)附加的隱變量 z 對(duì)密度函數(shù)進(jìn)行建模。VAE 原理圖如下 [6]:

          在 VAE 中,真實(shí)樣本X通過(guò)神經(jīng)網(wǎng)絡(luò)計(jì)算出均值方差(假設(shè)隱變量服從正態(tài)分布),然后通過(guò)采樣得到采樣變量 Z 并進(jìn)行重構(gòu)。VAE 和 GAN 均是學(xué)習(xí)了隱變量 z 到真實(shí)數(shù)據(jù)分布的映射。但是和 GAN 不同的是: 

          1. GAN 的思路比較粗暴,使用一個(gè)判別器去度量分布轉(zhuǎn)換模塊(即生成器)生成分布與真實(shí)數(shù)據(jù)分布的距離。 

          2. VAE 則沒(méi)有那么直觀(guān),VAE 通過(guò)約束隱變量 z 服從標(biāo)準(zhǔn)正態(tài)分布以及重構(gòu)數(shù)據(jù)實(shí)現(xiàn)了分布轉(zhuǎn)換映射 X=G(z)。

          生成式模型對(duì)比 

          1. 自回歸模型通過(guò)對(duì)概率分布顯式建模來(lái)生成數(shù)據(jù);

          2. VAE 和 GAN 均是:假設(shè)隱變量 z 服從某種分布,并學(xué)習(xí)一個(gè)映射 X=G(z) ,實(shí)現(xiàn)隱變量分布 z 與真實(shí)數(shù)據(jù)分布 Pdata(x) 的轉(zhuǎn)換;

          3. GAN 使用判別器去度量映射 X=G(z) 的優(yōu)劣,而 VAE 通過(guò)隱變量 z 與標(biāo)準(zhǔn)正態(tài)分布的 KL 散度和重構(gòu)誤差去度量。

          GAN常見(jiàn)的模型結(jié)構(gòu)

          DCGAN 

          DCGAN 提出使用 CNN 結(jié)構(gòu)來(lái)穩(wěn)定 GAN 的訓(xùn)練,并使用了以下一些 trick: 

          • Batch Normalization 

          • 使用 Transpose convlution 進(jìn)行上采樣 

          • 使用 Leaky ReLu 作為激活函數(shù) 

          上面這些 trick 對(duì)于穩(wěn)定 GAN 的訓(xùn)練有許多幫助,自己設(shè)計(jì) GAN 網(wǎng)絡(luò)時(shí)也可以酌情使用。 

          層級(jí)結(jié)構(gòu) 

          GAN 對(duì)于高分辨率圖像生成一直存在許多問(wèn)題,層級(jí)結(jié)構(gòu)的 GAN 通過(guò)逐層次,分階段生成,一步步提生圖像的分辨率。典型的使用多對(duì) GAN 的模型有StackGAN,GoGAN。使用單一 GAN,分階段生成的有 ProgressiveGAN。StackGAN 和 ProgressiveGAN 結(jié)構(gòu)如下:

          自編碼結(jié)構(gòu) 

          經(jīng)典的 GAN 結(jié)構(gòu)里面,判別網(wǎng)絡(luò)通常被當(dāng)做一種用于區(qū)分真實(shí)/生成樣本的概率模型。而在自編碼器結(jié)構(gòu)里面,判別器(使用 AE 作為判別器)通常被當(dāng)做能量函數(shù)(Energy function)。對(duì)于離數(shù)據(jù)流形空間比較近的樣本,其能量較小,反之則大。有了這種距離度量方式,自然就可以使用判別器去指導(dǎo)生成器的學(xué)習(xí)。 

          AE 作為判別器,為什么就可以當(dāng)做能量函數(shù),用于度量生成樣本離數(shù)據(jù)流形空間的距離呢?首先,先看 AE 的 loss:

          AE 的 loss 是一個(gè)重構(gòu)誤差。使用 AE 做為判別器時(shí),如果輸入真實(shí)樣本,其重構(gòu)誤差會(huì)很小。如果輸入生成的樣本,其重構(gòu)誤差會(huì)很大。因?yàn)閷?duì)于生成的樣本,AE 很難學(xué)習(xí)到一個(gè)圖像的壓縮表示(即生成的樣本離數(shù)據(jù)流行形空間很遠(yuǎn))。所以,VAE 的重構(gòu)誤差作為 Pdata 和 Pg 之間的距離度量是合理的。典型的自編碼器結(jié)構(gòu)的 GAN 有:BEGAN,EBGAN,MAGAN 等。

          GAN的訓(xùn)練障礙

          理論中存在的問(wèn)題

          經(jīng)典 GAN 的判別器有兩種 loss,分別是:

          使用上面第一個(gè)公式作為 loss 時(shí):在判別器達(dá)到最優(yōu)的時(shí)候,等價(jià)于最小化生成分布與真實(shí)分布之間的 JS 散度,由于隨機(jī)生成分布很難與真實(shí)分布有不可忽略的重疊以及 JS 散度的突變特性,使得生成器面臨梯度消失的問(wèn)題。

          使用上面第二個(gè)公式作為 loss 時(shí):在最優(yōu)判別器下,等價(jià)于既要最小化生成分布與真實(shí)分布直接的 KL 散度,又要最大化其 JS 散度,相互矛盾,導(dǎo)致梯度不穩(wěn)定,而且 KL 散度的不對(duì)稱(chēng)性使得生成器寧可喪失多樣性也不愿喪失準(zhǔn)確性,導(dǎo)致 collapse mode 現(xiàn)象 [7]。

          實(shí)踐中存在的問(wèn)題 

          GAN 在實(shí)踐中存在兩個(gè)問(wèn)題: 

          其一,GAN 提出者 Ian Goodfellow 在理論中雖然證明了 GAN 是可以達(dá)到納什均衡的??墒俏覀?cè)趯?shí)際實(shí)現(xiàn)中,我們是在參數(shù)空間優(yōu)化,而非函數(shù)空間,這導(dǎo)致理論上的保證在實(shí)踐中是不成立的。 

          其二,GAN 的優(yōu)化目標(biāo)是一個(gè)極小極大(minmax)問(wèn)題,即

          ,也就是說(shuō),優(yōu)化生成器的時(shí)候,最小化的是
          ??墒俏覀兪堑鷥?yōu)化的,要保證 V(G,D) 最大化,就需要迭代非常多次,這就導(dǎo)致訓(xùn)練時(shí)間很長(zhǎng)。

          如果我們只迭代一次判別器,然后迭代一次生成器,不斷循環(huán)迭代。這樣原先的極小極大問(wèn)題,就容易變成極大極?。╩axmin)問(wèn)題,可二者是不一樣的,即:

          如果變化為極小極大問(wèn)題,那么迭代就是這樣的,生成器先生成一些樣本,然后判別器給出錯(cuò)誤的判別結(jié)果并懲罰生成器,于是生成器調(diào)整生成的概率分布??墒沁@樣往往導(dǎo)致生成器變“懶”,只生成一些簡(jiǎn)單的,重復(fù)的樣本,即缺乏多樣性,也叫 mode collapse。

          穩(wěn)定GAN訓(xùn)練的技巧 

          如上所述,GAN 在理論上和實(shí)踐上存在三個(gè)大問(wèn)題,導(dǎo)致訓(xùn)練過(guò)程十分不穩(wěn)定,且存在 mode collapse 的問(wèn)題。為了改善上述情況,可以使用以下技巧穩(wěn)定訓(xùn)練: 

          Feature matching:方法很簡(jiǎn)單,使用判別器某一層的特征替換原始 GAN Loss 中的輸出。即最小化:生成圖片通過(guò)判別器的特征和真實(shí)圖片通過(guò)判別器得到的特征之間的距離。 

          標(biāo)簽平滑:GAN 訓(xùn)練中的標(biāo)簽非 0 即 1,這使得判別器預(yù)測(cè)出來(lái)的 confidence 傾向于更高的值。使用標(biāo)簽平滑可以緩解該問(wèn)題。具體來(lái)說(shuō),就是把標(biāo)簽 1 替換為 0.8~1.0 之間的隨機(jī)數(shù)。 

          譜歸一化:WGAN 和 Improve WGAN 通過(guò)施加 Lipschitz 條件來(lái)約束優(yōu)化過(guò)程,譜歸一化則是對(duì)判別器的每一層都施加 Lipschitz 約束,但是譜歸一化相比于 Improve WGAN 計(jì)算效率要高一些。 

          PatchGAN:準(zhǔn)確來(lái)說(shuō) PatchGAN 并不是用于穩(wěn)定訓(xùn)練,但這個(gè)技術(shù)被廣泛用于圖像翻譯當(dāng)中,PatchGAN 相當(dāng)于對(duì)圖像的每一個(gè)小 Patch 進(jìn)行判別,這樣可以使得生成器生成更加銳利清晰的邊緣。

          具體做法是這樣的:假設(shè)輸入一張 256x256 的圖像到判別器,輸出的是一個(gè) 4x4 的 confidence map,confidence map 中每一個(gè)像素值代表當(dāng)前 patch 是真實(shí)圖像的置信度,即為 PatchGAN。當(dāng)前圖像 patch 的大小就是感受野的大小,最后將所有 Patch 的 Loss 求平均作為最終的 Loss。

          mode collapse的解決方案

          針對(duì)目標(biāo)函數(shù)的改進(jìn)方法 

          為了避免前面提到的由于優(yōu)化 maxmin 導(dǎo)致 mode 跳來(lái)跳去的問(wèn)題,UnrolledGAN 采用修改生成器 loss 來(lái)解決。具體而言,UnrolledGAN 在更新生成器時(shí)更新 k 次生成器,參考的 Loss 不是某一次的 loss,是判別器后面 k 次迭代的 loss。

          注意,判別器后面 k 次迭代不更新自己的參數(shù),只計(jì)算 loss 用于更新生成器。這種方式使得生成器考慮到了后面 k 次判別器的變化情況,避免在不同 mode 之間切換導(dǎo)致的模式崩潰問(wèn)題。此處務(wù)必和迭代 k 次生成器,然后迭代 1 次判別器區(qū)分開(kāi) [8]。

          DRAGAN 則引入博弈論中的無(wú)后悔算法,改造其 loss 以解決 mode collapse問(wèn)題 [9]。前文所述的 EBGAN 則是加入 VAE 的重構(gòu)誤差以解決 mode collapse。 

          針對(duì)網(wǎng)絡(luò)結(jié)構(gòu)的改進(jìn)方法 

          Multi agent diverse GAN (MAD-GAN) 采用多個(gè)生成器,一個(gè)判別器以保障樣本生成的多樣性。具體結(jié)構(gòu)如下:

          相比于普通 GAN,多了幾個(gè)生成器,且在 loss 設(shè)計(jì)的時(shí)候,加入一個(gè)正則項(xiàng)。正則項(xiàng)使用余弦距離懲罰三個(gè)生成器生成樣本的一致性。 

          MRGAN 則添加了一個(gè)判別器來(lái)懲罰生成樣本的 mode collapse 問(wèn)題。具體結(jié)構(gòu)如下:

          輸入樣本 x 通過(guò)一個(gè) Encoder 編碼為隱變量 E(x) ,然后隱變量被 Generator 重構(gòu),訓(xùn)練時(shí),Loss 有三個(gè)。 

          DM 和 R (重構(gòu)誤差)用于指導(dǎo)生成 real-like 的樣本。而 DD 則對(duì) E(x) 和 z 生成的樣本進(jìn)行判別,顯然二者生成樣本都是 fake samples,所以這個(gè)判別器主要用于判斷生成的樣本是否具有多樣性,即是否出現(xiàn) mode collapse。 

          Mini-batch Discrimination 

          Mini-batch discrimination 在判別器的中間層建立一個(gè) mini-batch layer 用于計(jì)算基于 L1 距離的樣本統(tǒng)計(jì)量,通過(guò)建立該統(tǒng)計(jì)量去判別一個(gè) batch 內(nèi)某個(gè)樣本與其他樣本有多接近。這個(gè)信息可以被判別器利用到,從而甄別出哪些缺乏多樣性的樣本。對(duì)生成器而言,則要試圖生成具有多樣性的樣本。

          關(guān)于GAN隱空間的理解

          隱空間是數(shù)據(jù)的一種壓縮表示的空間。通常來(lái)說(shuō),我們直接在數(shù)據(jù)空間對(duì)圖像進(jìn)行修改是不現(xiàn)實(shí)的,因?yàn)閳D像屬性位于高維空間中的流形中。但是在隱空間,由于每一個(gè)隱變量代表了某個(gè)具體的屬性,所以這是可行的。

          在這部分,我們會(huì)探討 GAN 是如何處理隱空間及其屬性的,此外還將探討變分方法如何結(jié)合到 GAN 的框架中。

          隱空間分解

          GAN 的輸入隱變量 z 是非結(jié)構(gòu)化的,我們不知道隱變量中的每一位數(shù)分別控制著什么屬性。因此有學(xué)者提出,將隱變量分解為一個(gè)條件變量 c 和標(biāo)準(zhǔn)輸入隱變量 z 。具體包括有監(jiān)督的方法和無(wú)監(jiān)督的方法。 

          有監(jiān)督方法 

          典型的有監(jiān)督方法有 CGAN 和 ACGAN。 

          CGAN 將隨機(jī)噪聲 z 和類(lèi)別標(biāo)簽 c 作為生成器的輸入,判別器則將生成的樣本/真實(shí)樣本與類(lèi)別標(biāo)簽作為輸入。以此學(xué)習(xí)標(biāo)簽和圖片之間的關(guān)聯(lián)性。 

          ACGAN 將隨機(jī)噪聲 z 和類(lèi)別標(biāo)簽 c 作為生成器的輸入,判別器則將生成的樣本/真實(shí)樣本輸入,且回歸出圖片的類(lèi)別標(biāo)簽。以此學(xué)習(xí)標(biāo)簽和圖片之間的關(guān)聯(lián)性。二者結(jié)構(gòu)如下(左邊為 CGAN,右邊為 ACGAN):

          無(wú)監(jiān)督方法 

          相比于有監(jiān)督方法,無(wú)監(jiān)督方法不使用任何標(biāo)簽信息。因此,無(wú)監(jiān)督方法需要對(duì)隱空間進(jìn)行解耦得到有意義的特征表示。 

          InfoGAN 對(duì)把輸入噪聲分解為隱變量 z 和條件變量 c (訓(xùn)練時(shí),條件變量 c 從均勻分布采樣而來(lái)),二者被一起送入生成器。在訓(xùn)練過(guò)程中通過(guò)最大化 c 和 G(z,c) 的互信息 I(c;G(z,c)) 以實(shí)現(xiàn)變量解耦(I(c;G(z,c)) 的互信息表示 c 里面關(guān)于 G(z,c) 的信息有多少,如果最大化互信息 I(c;G(z,c)) ,也就是最大化生成結(jié)果和條件變量 c 的關(guān)聯(lián)性)。

          模型結(jié)構(gòu)和 CGAN 基本一致,除了 Loss 多了一項(xiàng)最大互信息。具體如下 [10]:

          從上面分析可以看出,InfoGAN 只是實(shí)現(xiàn)了信息的解耦,至于條件變量 c 每一個(gè)值的具體含義是什么,我們無(wú)法控制。

          于是 ss-InfoGAN 出現(xiàn)了,ss-InfoGAN 采用半監(jiān)督學(xué)習(xí)方法,把條件變量 c 分成兩部分,

          。 Css 則利用標(biāo)簽像 CGAN 一樣學(xué)習(xí),Cus 則像 InfoGAN 一樣學(xué)習(xí)。

          GAN與VAE的結(jié)合

          GAN 相比于 VAE 可以生成清晰的圖像,但是卻容易出現(xiàn) mode collapse 問(wèn)題。VAE 由于鼓勵(lì)重構(gòu)所有樣本,所以不會(huì)出現(xiàn) mode collapse 問(wèn)題。 

          一個(gè)典型結(jié)合二者的工作是 VAEGAN,結(jié)構(gòu)很像前文提及的 MRGAN,具體如下:

          上述模型的 Loss 包括三個(gè)部分,分別是判別器某一層特征的重構(gòu)誤差,VAE 的 Loss,GAN 的 Loss。

          GAN模型總結(jié)

          前面兩節(jié)介紹了各種各樣的 GAN 模型,這些模型大都是圍繞著 GAN 的兩大常見(jiàn)問(wèn)題:模式崩潰,以及訓(xùn)練崩潰來(lái)設(shè)計(jì)的。下表總結(jié)了這些模型,讀者可以根據(jù)下表回顧對(duì)照:

          GAN的應(yīng)用

          由于 GAN 在生成樣本過(guò)程成不需要顯式建模任何數(shù)據(jù)分布就可以生成 real-like 的樣本,所以 GAN 在圖像,文本,語(yǔ)音等諸多領(lǐng)域都有廣泛的應(yīng)用。下表總結(jié)了 GAN 在各個(gè)方面的應(yīng)用,后文會(huì)這些算法做相應(yīng)介紹。

          圖像

          圖像翻譯 

          所謂圖像翻譯,指從一副(源域)圖像到另一副(目標(biāo)域)圖像的轉(zhuǎn)換??梢灶?lèi)比機(jī)器翻譯,一種語(yǔ)言轉(zhuǎn)換為另一種語(yǔ)言。翻譯過(guò)程中會(huì)保持源域圖像內(nèi)容不變,但是風(fēng)格或者一些其他屬性變成目標(biāo)域。 

          Paired two domain data 

          成對(duì)圖像翻譯典型的例子就是 pix2pix,pix2pix 使用成對(duì)數(shù)據(jù)訓(xùn)練了一個(gè)條件 GAN,Loss 包括 GAN 的 loss 和逐像素差 loss。而 PAN 則使用特征圖上的逐像素差作為感知損失替代圖片上的逐像素差,以生成人眼感知上更加接近源域的圖像。 

          Unpaired two domain data 

          對(duì)于無(wú)成對(duì)訓(xùn)練數(shù)據(jù)的圖像翻譯問(wèn)題,一個(gè)典型的例子是 CycleGAN。CycleGAN 使用兩對(duì) GAN,將源域數(shù)據(jù)通過(guò)一個(gè) GAN 網(wǎng)絡(luò)轉(zhuǎn)換到目標(biāo)域之后,再使用另一個(gè) GAN 網(wǎng)絡(luò)將目標(biāo)域數(shù)據(jù)轉(zhuǎn)換回源域,轉(zhuǎn)換回來(lái)的數(shù)據(jù)和源域數(shù)據(jù)正好是成對(duì)的,構(gòu)成監(jiān)督信息。 

          超分辨 

          SRGAN 中使用 GAN 和感知損失生成細(xì)節(jié)豐富的圖像。感知損失重點(diǎn)關(guān)注中間特征層的誤差,而不是輸出結(jié)果的逐像素誤差。避免了生成的高分辨圖像缺乏紋理細(xì)節(jié)信息問(wèn)題。 

          目標(biāo)檢測(cè) 

          得益于 GAN 在超分辨中的應(yīng)用,針對(duì)小目標(biāo)檢測(cè)問(wèn)題,可以理由 GAN 生成小目標(biāo)的高分辨率圖像從而提高目標(biāo)檢測(cè)精度。

          圖像聯(lián)合分布學(xué)習(xí) 

          大部分 GAN 都是學(xué)習(xí)單一域的數(shù)據(jù)分布,CoupledGAN 則提出一種部分權(quán)重共享的網(wǎng)絡(luò),使用無(wú)監(jiān)督方法來(lái)學(xué)習(xí)多個(gè)域圖像的聯(lián)合分布。具體結(jié)構(gòu)如下 [11]:

          如上圖所示,CoupledGAN 使用兩個(gè) GAN 網(wǎng)絡(luò)。生成器前半部分權(quán)重共享,目的在于編碼兩個(gè)域高層的,共有信息,后半部分沒(méi)有進(jìn)行共享,則是為了各自編碼各自域的數(shù)據(jù)。判別器前半部分不共享,后半部分用于提取高層特征共享二者權(quán)重。對(duì)于訓(xùn)練好的網(wǎng)絡(luò),輸入一個(gè)隨機(jī)噪聲,輸出兩張不同域的圖片。 

          值得注意的是,上述模型學(xué)習(xí)的是聯(lián)合分布 P(x,y) ,如果使用兩個(gè)單獨(dú)的 GAN 分別取訓(xùn)練,那么學(xué)習(xí)到的就是邊際分布 P(x) 和 P(y)。通常情況下, P(x,y)≠P(x)·P(y) 。

          視頻生成 

          通常來(lái)說(shuō),視頻有相對(duì)靜止的背景和運(yùn)動(dòng)的前景組成。VideoGAN 使用一個(gè)兩階段的生成器,3D CNN 生成器生成運(yùn)動(dòng)前景,2D CNN 生成器生成靜止的背景。

          Pose GAN 則使用 VAE 和 GAN 生成視頻,首先,VAE 結(jié)合當(dāng)前幀的姿態(tài)和過(guò)去的姿態(tài)特征預(yù)測(cè)下一幀的運(yùn)動(dòng)信息,然后 3D CNN 使用運(yùn)動(dòng)信息生成后續(xù)視頻幀。

          Motion and Content GAN (MoCoGAN) 則提出在隱空間對(duì)運(yùn)動(dòng)部分和內(nèi)容部分進(jìn)行分離,使用 RNN 去建模運(yùn)動(dòng)部分。

          序列生成

          相比于 GAN 在圖像領(lǐng)域的應(yīng)用,GAN 在文本,語(yǔ)音領(lǐng)域的應(yīng)用要少很多。主要原因有兩個(gè): 

          1. GAN 在優(yōu)化的時(shí)候使用 BP 算法,對(duì)于文本,語(yǔ)音這種離散數(shù)據(jù),GAN 沒(méi)法直接跳到目標(biāo)值,只能根據(jù)梯度一步步靠近。 

          2. 對(duì)于序列生成問(wèn)題,每生成一個(gè)單詞,我們就需要判斷這個(gè)序列是否合理,可是 GAN 里面的判別器是沒(méi)法做到的。除非我們針對(duì)每一個(gè) step 都設(shè)置一個(gè)判別器,這顯然不合理。 

          為了解決上述問(wèn)題,強(qiáng)化學(xué)習(xí)中的策略梯度下降(Policy gredient descent)被引入到 GAN 中的序列生成問(wèn)題。 

          音樂(lè)生成 

          RNN-GAN 使用 LSTM 作為生成器和判別器,直接生成整個(gè)音頻序列。然而,正如上面提到的,音樂(lè)當(dāng)做包括歌詞和音符,對(duì)于這種離散數(shù)據(jù)生成問(wèn)題直接使用 GAN 存在很多問(wèn)題,特別是生成的數(shù)據(jù)缺乏局部一致性。 

          相比之下,SeqGAN 把生成器的輸出作為一個(gè)智能體(agent)的策略,而判別器的輸出作為獎(jiǎng)勵(lì)(reward),使用策略梯度下降來(lái)訓(xùn)練模型。ORGAN 則在 SeqGAN 的基礎(chǔ)上,針對(duì)具體的目標(biāo)設(shè)定了一個(gè)特定目標(biāo)函數(shù)。 

          語(yǔ)言和語(yǔ)音 

          VAW-GAN (Variational autoencoding Wasserstein GAN) 結(jié)合 VAE 和 WGAN 實(shí)現(xiàn)了一個(gè)語(yǔ)音轉(zhuǎn)換系統(tǒng)。編碼器編碼語(yǔ)音信號(hào)的內(nèi)容,解碼器則用于重建音色。由于 VAE 容易導(dǎo)致生成結(jié)果過(guò)于平滑,所以此處使用 WGAN 來(lái)生成更加清晰的語(yǔ)音信號(hào)。

          半監(jiān)督學(xué)習(xí)

          圖像數(shù)據(jù)的標(biāo)簽獲得需要大量的人工標(biāo)注,這個(gè)過(guò)程費(fèi)時(shí)費(fèi)力。 

          利用判別器進(jìn)行半監(jiān)督學(xué)習(xí) 

          基于 GAN 的半監(jiān)督學(xué)習(xí)方法 [12] 提出了一種利用無(wú)標(biāo)簽數(shù)據(jù)的方法。實(shí)現(xiàn)方法和原始 GAN 基本一樣,具體框架如下 [13]:

          相比于原始 GAN,主要區(qū)別在于判別器輸出一個(gè) K+1 的類(lèi)別信息(生成的樣本為第 K+1 類(lèi))。對(duì)于判別器,其 Loss 包括兩部分,一個(gè)是監(jiān)督學(xué)習(xí)損失(只需要判斷樣本真假),另一個(gè)是無(wú)監(jiān)督學(xué)習(xí)損失(判斷樣本類(lèi)別)。生成器則只需要盡量生成逼真的樣本即可。訓(xùn)練完成后,判別器就可以作為一個(gè)分類(lèi)模型去分類(lèi)。 

          從直觀(guān)上來(lái)看,生成的樣本主要在于輔助分類(lèi)器學(xué)會(huì)區(qū)分真實(shí)的數(shù)據(jù)空間在哪里。 

          使用輔助分類(lèi)器的半監(jiān)督學(xué)習(xí) 

          上面提及的利用判別器進(jìn)行半監(jiān)督學(xué)習(xí)的模型存在一個(gè)問(wèn)題。判別器既要學(xué)習(xí)區(qū)分正負(fù)樣本,也要學(xué)習(xí)預(yù)測(cè)標(biāo)簽。二者目標(biāo)不一致,容易導(dǎo)致二者都達(dá)不到最優(yōu)。一個(gè)直觀(guān)的想法就把預(yù)測(cè)標(biāo)簽和區(qū)分正負(fù)樣本分開(kāi)。Triple-GAN 就是這么做的 [14]:

          (Xg,Yg)~pg(X,Y), (Xl,Yl)~p(X,Y), (Xc,Yc)~pc(X,Y) 分別表示生成的數(shù)據(jù),有標(biāo)簽的數(shù)據(jù),無(wú)標(biāo)簽的數(shù)據(jù)。CE 表示交叉熵?fù)p失。

          域適應(yīng)

          域適應(yīng)是一個(gè)遷移學(xué)習(xí)里面的概念。簡(jiǎn)單說(shuō)來(lái),我們定義源數(shù)據(jù)域分布為 Ds(x,y),目標(biāo)數(shù)據(jù)域分布為 DT(x,y)。對(duì)于源域數(shù)據(jù),我們有許多標(biāo)簽,但是對(duì)于目標(biāo)域的數(shù)據(jù)沒(méi)有標(biāo)簽。我們希望能通過(guò)源域的有標(biāo)簽數(shù)據(jù)和目標(biāo)域的無(wú)標(biāo)簽數(shù)據(jù)學(xué)習(xí)一個(gè)模型,在目標(biāo)域泛化的很好。遷移學(xué)習(xí)的“遷移”二字指的是源域數(shù)據(jù)分布向目標(biāo)域數(shù)據(jù)分布的遷移。 

          GAN 用于遷移學(xué)習(xí)時(shí),核心思想在于使用生成器把源域數(shù)據(jù)特征轉(zhuǎn)換成目標(biāo)域數(shù)據(jù)特征,而判別器則盡可能區(qū)分真實(shí)數(shù)據(jù)和生成數(shù)據(jù)特征。以下是兩個(gè)把 GAN 應(yīng)用于遷移學(xué)習(xí)的例子 DANN 和 ARDA:

          以上圖左邊的 DANN 為例,Is,It 分別代表源域數(shù)據(jù),目標(biāo)域的數(shù)據(jù), ys 表示源域數(shù)據(jù)的標(biāo)簽。Fs,F(xiàn)t 表示源域特征,目標(biāo)域特征。DANN 中,生成器用于提取特征,并使得提取的特征難以被判別器區(qū)分是源域數(shù)據(jù)特征還是目標(biāo)域數(shù)據(jù)特征。 

          在行人重識(shí)別領(lǐng)域,有許多基于 CycleGAN 的遷移學(xué)習(xí)以進(jìn)行數(shù)據(jù)增廣的應(yīng)用。行人重識(shí)別問(wèn)題一個(gè)難點(diǎn)在于不同攝像頭下拍攝的人物環(huán)境,角度差別非常大,導(dǎo)致存在較大的 Domain gap。

          因此,可以考慮使用 GAN 來(lái)產(chǎn)生不同攝像頭下的數(shù)據(jù)進(jìn)行數(shù)據(jù)增廣。[15] 中提出了一個(gè) CycleGAN 用于數(shù)據(jù)增廣的方法。具體模型結(jié)構(gòu)如下:

          對(duì)于每一對(duì)攝像頭都訓(xùn)練一個(gè) CycleGAN,這樣就可以實(shí)現(xiàn)將一個(gè)攝像頭下的數(shù)據(jù)轉(zhuǎn)換成另一個(gè)攝像頭下的數(shù)據(jù),但是內(nèi)容(人物)保持不變。

          其他應(yīng)用

          GAN 的變體繁多,應(yīng)用非常廣泛,在一寫(xiě)非機(jī)器學(xué)習(xí)領(lǐng)域也有應(yīng)用,以下是一些例子。 

          醫(yī)學(xué)圖像分割 

          [16] 提出了一種 segmentor-critic 結(jié)構(gòu)用于分割醫(yī)學(xué)圖像。segmentor 類(lèi)似于 GAN 中的生成器用于生成分割圖像,critic 則最大化生成的分割圖像和 ground truth 之間的距離。此外,DI2IN 使用 GAN 分割 3D CT 圖像,SCAN 使用 GAN 用于分割 X 射線(xiàn)圖像。 

          圖片隱寫(xiě) 

          隱寫(xiě)指的是把秘密信息隱藏到非秘容器,比如圖片中。隱寫(xiě)分析器則用于判別容器是否含有秘密信息。一些研究嘗試使用 GAN 的生成器生成帶有隱寫(xiě)信息的圖片,判別器則有兩個(gè),一個(gè)用于判別圖片是否是真實(shí)圖片,另一個(gè)則判別圖片是否具有秘密信息 [17]。 

          連續(xù)學(xué)習(xí) 

          連續(xù)學(xué)習(xí)目的在于解決多個(gè)任務(wù),且在學(xué)習(xí)過(guò)程中不斷積累新知識(shí)。連續(xù)學(xué)習(xí)中存在一個(gè)突出的問(wèn)題就是“知識(shí)遺忘”。[18] 中使用 GAN 的生成器作為一個(gè) scholars model,生成器不斷使用以往知識(shí)進(jìn)行訓(xùn)練,solver 則給出答案,以此避免“知識(shí)遺忘”問(wèn)題。

          討論

          在第一、二部分我們討論了 GAN 及其變體,第三部分討論了 GAN 的應(yīng)用。下表總結(jié)了比較有名的一些 GAN 的模型結(jié)構(gòu)及其施加的額外約束。

          前面都是對(duì)于 GAN 的微觀(guān)層面的探討。接下來(lái),我們會(huì)站在一個(gè)宏觀(guān)的視角來(lái)討論 GAN。

          GAN的評(píng)價(jià)

          GAN 的評(píng)價(jià)方法多種多樣,現(xiàn)有的 example-based(顧名思義,基于樣本層面做評(píng)價(jià))方法,均是對(duì)生成樣本與真實(shí)樣本提取特征,然后在特征空間做距離度量。具體框架如下:

          關(guān)于本小節(jié)的符號(hào)對(duì)照關(guān)系如下: 

          Pg 表示生成數(shù)據(jù)分布,Pr 表示真實(shí)數(shù)據(jù)分布,E 表示數(shù)學(xué)期望,x 表示輸入樣本,x~Pg 表示 x 為生成樣本的采樣,x~Pr 表示 x 為真實(shí)樣本的采樣。y 表示樣本標(biāo)簽,M 表示分類(lèi)網(wǎng)絡(luò),通常選擇 Inception network。

          下面分別對(duì)常見(jiàn)的評(píng)價(jià)指標(biāo)進(jìn)行一一介紹。

          Inception Score 

          對(duì)于一個(gè)在 ImageNet 訓(xùn)練良好的 GAN,其生成的樣本丟給 Inception 網(wǎng)絡(luò)進(jìn)行測(cè)試的時(shí)候,得到的判別概率應(yīng)該具有如下特性: 

          1. 對(duì)于同一個(gè)類(lèi)別的圖片,其輸出的概率分布應(yīng)該趨向于一個(gè)脈沖分布??梢员WC生成樣本的準(zhǔn)確性。 

          2. 對(duì)于所有類(lèi)別,其輸出的概率分布應(yīng)該趨向于一個(gè)均勻分布,這樣才不會(huì)出現(xiàn) mode collapsing 等,可以保證生成樣本的多樣性。

          因此,可以設(shè)計(jì)如下指標(biāo):

          根據(jù)前面分析,如果是一個(gè)訓(xùn)練良好的 GAN, pM(y|x) 趨近于脈沖分布, pM(y) 趨近于均勻分布。二者KL散度會(huì)很大。Inception Score 自然就高。實(shí)際實(shí)驗(yàn)表明,Inception Score 和人的主觀(guān)判別趨向一致。IS 的計(jì)算沒(méi)有用到真實(shí)數(shù)據(jù),具體值取決于模型 M 的選擇。 

          特點(diǎn):可以一定程度上衡量生成樣本的多樣性和準(zhǔn)確性,但是無(wú)法檢測(cè)過(guò)擬合。Mode Score 也是如此。不推薦在和 ImageNet 數(shù)據(jù)集差別比較大的數(shù)據(jù)上使用。 

          Mode Score 

          Mode Score 作為 Inception Score 的改進(jìn)版本,添加了關(guān)于生成樣本和真實(shí)樣本預(yù)測(cè)的概率分布相似性度量一項(xiàng)。具體公式如下:

          Kernel MMD

          計(jì)算公式如下:

          對(duì)于 Kernel MMD 值的計(jì)算,首先需要選擇一個(gè)核函數(shù) k,這個(gè)核函數(shù)把樣本映射到再生希爾伯特空間(Reproducing Kernel Hilbert Space, RKHS),RKHS 相比于歐幾里得空間有許多優(yōu)點(diǎn),對(duì)于函數(shù)內(nèi)積的計(jì)算是完備的。

          將上述公式展開(kāi)即可得到下面的計(jì)算公式:

          MMD 值越小,兩個(gè)分布越接近。

          特點(diǎn):可以一定程度上衡量模型生成圖像的優(yōu)劣性,計(jì)算代價(jià)小。推薦使用。

          Wasserstein Distance 

          Wasserstein distance 在最優(yōu)傳輸問(wèn)題中通常也叫做推土機(jī)距離。這個(gè)距離的介紹在 WGAN 中有詳細(xì)討論。公式如下:

          Wasserstein distance 可以衡量?jī)蓚€(gè)分布之間的相似性。距離越小,分布越相似。 

          特點(diǎn):如果特征空間選擇合適,會(huì)有一定的效果。但是計(jì)算復(fù)雜度為 O(n^3) 太高。

          Fréchet Inception Distance (FID) 

          FID 距離計(jì)算真實(shí)樣本,生成樣本在特征空間之間的距離。首先利用 Inception 網(wǎng)絡(luò)來(lái)提取特征,然后使用高斯模型對(duì)特征空間進(jìn)行建模。根據(jù)高斯模型的均值和協(xié)方差來(lái)進(jìn)行距離計(jì)算。具體公式如下:

          μ,C 分別代表協(xié)方差和均值。 

          特點(diǎn):盡管只計(jì)算了特征空間的前兩階矩,但是魯棒,且計(jì)算高效。

          1-Nearest Neighbor classifier 

          使用留一法,結(jié)合 1-NN 分類(lèi)器(別的也行)計(jì)算真實(shí)圖片,生成圖像的精度。如果二者接近,則精度接近 50%,否則接近 0%。對(duì)于 GAN 的評(píng)價(jià)問(wèn)題,作者分別用正樣本的分類(lèi)精度,生成樣本的分類(lèi)精度去衡量生成樣本的真實(shí)性,多樣性。 

          對(duì)于真實(shí)樣本 Xr ,進(jìn)行 1-NN 分類(lèi)的時(shí)候,如果生成的樣本越真實(shí)。則真實(shí)樣本空間 R 將被生成的樣本 Xg 包圍。那么 Xr 的精度會(huì)很低。 

          對(duì)于生成的樣本 Xg ,進(jìn)行 1-NN 分類(lèi)的時(shí)候,如果生成的樣本多樣性不足。由于生成的樣本聚在幾個(gè) mode,則 Xg 很容易就和 Xr 區(qū)分,導(dǎo)致精度會(huì)很高。 

          特點(diǎn):理想的度量指標(biāo),且可以檢測(cè)過(guò)擬合。 

          其他評(píng)價(jià)方法 

          AIS,KDE 方法也可以用于評(píng)價(jià) GAN,但這些方法不是 model agnostic metrics。也就是說(shuō),這些評(píng)價(jià)指標(biāo)的計(jì)算無(wú)法只利用:生成的樣本,真實(shí)樣本來(lái)計(jì)算。 

          總結(jié) 

          實(shí)際實(shí)驗(yàn)發(fā)現(xiàn),MMD 和 1-NN two-sample test 是最為合適的評(píng)價(jià)指標(biāo),這兩個(gè)指標(biāo)可以較好的區(qū)分:真實(shí)樣本和生成的樣本, mode collapsing。且計(jì)算高效。 

          總體說(shuō)來(lái),GAN 的學(xué)習(xí)是一個(gè)無(wú)監(jiān)督學(xué)習(xí)過(guò)程,所以很難找到一個(gè)比較客觀(guān)的,可量化的評(píng)估指標(biāo)。有許多指標(biāo)在數(shù)值上雖然高,但是生成效果卻未必好。總之,GAN 的評(píng)價(jià)目前依然是一個(gè)開(kāi)放性的問(wèn)題。

          GAN與強(qiáng)化學(xué)習(xí)的關(guān)系

          強(qiáng)化學(xué)習(xí)的目標(biāo)是對(duì)于一個(gè)智能體,給定狀態(tài) s,去選擇一個(gè)最佳的行為 a (action)。通常的可以定義一個(gè)價(jià)值函數(shù) Q(s,a) 來(lái)衡量,對(duì)于狀態(tài) s,采取行動(dòng) a 的回報(bào)是 Q(s,a),顯然,我們希望最大化這個(gè)回報(bào)值。對(duì)于很多復(fù)雜的問(wèn)題,我們是很難定義這個(gè)價(jià)值函數(shù) Q(s,a) 的,就像我們很難定義 GAN 生成的圖片到底有多好一樣。

          說(shuō)到這里,大家可能反應(yīng)過(guò)來(lái)了。GAN 生成的圖片好不好,我確實(shí)找不到一個(gè)合適的指標(biāo),那我學(xué)習(xí)一個(gè)判別器去判斷一下生成圖片和真實(shí)圖片的距離不就好了嗎。強(qiáng)化學(xué)習(xí)里面的價(jià)值函數(shù) Q(s,a) 難以定義,那直接用個(gè)神經(jīng)網(wǎng)絡(luò)去學(xué)習(xí)它就好了。典型的模型有 DDPG,TRPO 等等。

          GAN的優(yōu)缺點(diǎn)

          優(yōu)點(diǎn) 

          1. GAN 的優(yōu)點(diǎn)在開(kāi)頭已有所介紹。這里再總結(jié)一下: 

          2. GAN 可以并行生成數(shù)據(jù)。相比于 PixelCNN,PixelRNN 這些模型,GAN 生成非常快,因?yàn)?GAN 使用 Generator 替代了采樣的過(guò)程;

          3. GAN 不需要通過(guò)引入下界來(lái)近似似然。VAE 由于優(yōu)化困難,引入了變分下界來(lái)優(yōu)化似然。但是 VAE 對(duì)于先驗(yàn)和后驗(yàn)分布做了假設(shè),使得 VAE 很難逼近其變分下界;

          從實(shí)踐來(lái)看,GAN 生成的結(jié)過(guò)要比 VAE 更清晰的多。 

          缺點(diǎn) 

          GAN 的缺點(diǎn)在前文也有詳細(xì)討論,主要問(wèn)題在于: 

          1. 訓(xùn)練不穩(wěn)定,容易崩潰。這個(gè)問(wèn)題有學(xué)者提出了許多解決方案,比如 WGAN,LSGAN 等;

          2. 模式崩潰。盡管有很多相關(guān)的研究,但是由于圖像數(shù)據(jù)的高維度特性,這個(gè)問(wèn)題依然還沒(méi)完全解決。

          未來(lái)的研究方向

          GAN 的訓(xùn)練崩潰,模式崩潰問(wèn)題等依然有待研究改進(jìn)。Deep learning 盡管很強(qiáng)大,但目前仍有許多領(lǐng)域無(wú)法征服,期待 GAN 在此基礎(chǔ)上會(huì)有一些作為。

          參考文獻(xiàn)

          [1] https://zhuanlan.zhihu.com/p/57062205

          [2] https://blog.csdn.net/victoriaw/article/details/60755698 

          [3] https://zhuanlan.zhihu.com/p/25071913 

          [4] GAN和蒙日-安培方程理論 

          [5] https://blog.csdn.net/poulang5786/article/details/80766498 

          [6] https://spaces.ac.cn/archives/5253 

          [7] https://www.jianshu.com/p/42c42e13d09b 

          [8] https://medium.com/@jonathan_hui/gan-unrolled-gan-how-to-reduce-mode-collapse-af5f2f7b51cd 

          [9] https://medium.com/@jonathan_hui/gan-dragan-5ba50eafcdf2 

          [10] https://medium.com/@jonathan_hui/gan-cgan-infogan-using-labels-to-improve-gan-8ba4de5f9c3d 

          [11] https://blog.csdn.net/carrierlxksuper/article/details/60479883 

          [12] Salimans, Tim, et al. 'Improved techniques for training gans.' Advances in neural information processing systems. 2016. 

          [13] https://blog.csdn.net/qq_25737169/article/details/78532719 

          [14] https://medium.com/@hitoshinakanishi/reading-note-triple-generative-adversarial-nets-fc3775e52b1e1 

          [15] Zheng Z , Zheng L , Yang Y . Unlabeled Samples Generated by GAN Improve the Person Re-identification Baseline in VitroC// 2017 IEEE International Conference on Computer Vision (ICCV). IEEE Computer Society, 2017. 

          [16] Yuan Xue, Tao Xu, Han Zhang, Rodney Long, and Xiaolei Huang. Segan: Adversar- ial network with multi-scale l_1 loss for medical image segmentation. arXiv preprint arXiv:1706.01805, 2017. 

          [17] Denis Volkhonskiy, Ivan Nazarov, Boris Borisenko, and Evgeny Burnaev. Steganographicgenerative adversarial networks. arXiv preprint arXiv:1703.05502, 2017. 

          [18] Shin, Hanul, et al. 'Continual learning with deep generative replay.' Advances in Neural Information Processing Systems. 2017.

          本文為機(jī)器之心轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)聯(lián)系原公眾號(hào)獲得授權(quán)。

          本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶(hù)發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
          打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
          猜你喜歡
          類(lèi)似文章
          生成對(duì)抗網(wǎng)絡(luò)的最新研究進(jìn)展
          【AI初識(shí)境】深度學(xué)習(xí)中常用的損失函數(shù)有哪些?
          生成式對(duì)抗網(wǎng)絡(luò)模型綜述:一文看懂各種GAN模型原理
          GAN、DCGAN、WGAN、SRGAN 演變與改進(jìn)
          經(jīng)典論文復(fù)現(xiàn)|LSGAN:最小二乘生成對(duì)抗網(wǎng)絡(luò)
          必讀論文 | 生成對(duì)抗網(wǎng)絡(luò)經(jīng)典論文推薦10篇
          更多類(lèi)似文章 >>
          生活服務(wù)
          分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
          綁定賬號(hào)成功
          后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
          如果VIP功能使用有故障,
          可點(diǎn)擊這里聯(lián)系客服!

          聯(lián)系客服