丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號安全和更好的產(chǎn)品體驗,強烈建議使用更快更安全的瀏覽器
此為臨時鏈接,僅用于文章預(yù)覽,將在時失效
人工智能學(xué)術(shù) 正文
發(fā)私信給DonFJ
發(fā)送

0

歷時 6 年發(fā)展, GAN 領(lǐng)域當(dāng)下最熱門的“弄潮兒”都有哪些?

本文作者: DonFJ 編輯:幸麗娟 2020-06-28 16:04
導(dǎo)語:所謂科研的實質(zhì)就是填坑!

生成式對抗網(wǎng)絡(luò)(Generative Adversarial Networks, GAN)誕生于2014年,它的作者Ian Goodfellow 因它而聲名大噪,被譽為“GAN 之父”。

據(jù)說GAN是Goodfellow手握扎啤在酒吧靈機一動所得(咦?這篇文章突然散發(fā)出麥芽的香氣)。GAN的誕生是AI界的里程碑,為這個本已生機勃勃的領(lǐng)域打開了一扇全新的大門。

近些年,針對GAN的研究層出不窮。科學(xué)家們紛紛為自己的工作冠以各種高大上的名字,以此烘托出自己的與眾不同和十足的神秘感。

然而所謂科研的實質(zhì)就是“填坑”,當(dāng)一個大牛提出了創(chuàng)新技術(shù),它的衍生品自然會層出不窮。

比如在初代GAN誕生后,便有人提出為其“加裝輪子”,成為CycleGAN(獨輪GAN);但是一個輪子走不穩(wěn),于是經(jīng)過改造就有人忽悠出一輛BiCycleGAN(自行車GAN);自行車忽悠過了,就有人提出ReCycleGAN(輪椅GAN)。照這個架勢,相信在不久的將來,我們還會迎來三蹦子GAN、越野車GAN、SUV GAN和SpaceX GAN(狗頭保命)。

GAN的成功要歸功于其在計算機視覺上的驚人效果。相對于VAE等傳統(tǒng)技術(shù),GAN能合成更加逼真的圖片,這些圖片真的能到以假亂真的地步。GAN在計算機視覺方向的成就斐然,實用性有口皆碑。然而人們不甘止步于此,所以在近些年,大家又在關(guān)注如何將其利用到聲音、文字等其他數(shù)據(jù)場景。比如說:

  • CycleGAN模型能夠?qū)D片從一個場景(domain)變到另一個場景。例如將男人的圖片過渡稱為女性、將年輕的照片變成衰老的樣子;

  • Text-to-image模型能夠根據(jù)文字生成對應(yīng)的圖片,不折不扣的腦補神器;

  • ProgressiveGAN能夠用于生成超高分辨率的圖片。

在這篇文章中,讓我們共同領(lǐng)略GAN的魅力,一口氣看盡GAN領(lǐng)域當(dāng)下最流行的“弄潮兒”,尤其是這六位:CycleGAN, StyleGAN, DiscoGAN, pixelRNN, text-2-image 和 lsGAN。

在此之前,我們不妨先看下初代 GAN 的相關(guān)原理和核心思想:

GAN 101 和 Vanilla GAN

我們知道監(jiān)督學(xué)習(xí)包括生成式模型和判別式模型兩大類。其中判別式模型可以進(jìn)行分類任務(wù),比如根據(jù)輸入的圖片判斷圖中物體的種類。而生成式模型主要用于合成跟訓(xùn)練樣本具有類似特征的數(shù)據(jù),可以理解成合成“假數(shù)據(jù)”。

我們可以把生成式模型看作一個數(shù)據(jù)生成器,它能根據(jù)學(xué)習(xí)到的模式源源不斷地產(chǎn)生“看起來類似但不完全相同”的數(shù)據(jù)樣本。今天我們的主角GAN就屬于生成式模型。

從數(shù)學(xué)的角度來看,任何數(shù)據(jù)都有自己的概率分布特點。生成式模型的任務(wù)是從有限的訓(xùn)練數(shù)據(jù)中總結(jié)出這個概率,將這個概率學(xué)習(xí)成一個“公式”、一個“模型”或者一種“模式”。當(dāng)它學(xué)習(xí)到這個樣本的分布特點后,模型就能夠據(jù)此源源不斷地生成新的偽數(shù)據(jù)了。

有些童鞋可能會問這些偽數(shù)據(jù)有什么用呢?例如在影視作品中,每個群眾演員都是很貴的,只要露臉了他的薪酬可能就需要翻番。但在有了GAN之后,導(dǎo)演就能像種樹一樣合成虛擬的群演——“種人”,從而節(jié)省很多人力成本。另外在醫(yī)療場景下,患者樣本可能特別稀缺,那為了平衡數(shù)據(jù)集,一生就可以利用GAN產(chǎn)生部分患者數(shù)據(jù),避免模型過擬合的問題。

那么下面,我們首先來聊聊GAN的核心思想。

GAN由兩個部分組成:生成器和判別器。

生成器就像是制造偽鈔的印刷機,它負(fù)責(zé)根據(jù)隨機噪聲產(chǎn)生合成樣本(偽鈔);而判別器就像是驗鈔機,它負(fù)責(zé)識別這個輸入樣本是否為假數(shù)據(jù)(偽鈔)。生成器的輸出都是假數(shù)據(jù)(Fake Sample),而訓(xùn)練集中的樣本就是真樣本(Real Sample)。

當(dāng)我們訓(xùn)練判別器時,如果模型的輸入是生成器的偽數(shù)據(jù),那這個樣本對應(yīng)的標(biāo)簽就是Fake;如果輸入的是數(shù)據(jù)集中的真實樣本時,它對應(yīng)的標(biāo)簽就是Real。這樣能形成一個良好的負(fù)反饋,在訓(xùn)練判別器“鑒偽”的同時,也逼著生成器增強自己“造假”的能力。

歷時 6 年發(fā)展, GAN 領(lǐng)域當(dāng)下最熱門的“弄潮兒”都有哪些?

圖1:GAN中包括生成器和判別器兩個部分

GAN成功之處在于生成器和判別器的“左右互搏之術(shù)”。

生成器會竭盡全力生產(chǎn)“假鈔”,試圖讓所生成的假數(shù)據(jù)通過判別器的嚴(yán)格審查。而判別器也會盡一切努力嚴(yán)格執(zhí)法,揪出每一個合成數(shù)據(jù),讓“假鈔”們無所遁形。

歷時 6 年發(fā)展, GAN 領(lǐng)域當(dāng)下最熱門的“弄潮兒”都有哪些?

圖2:GAN中包括生成器和判別器兩個部分

下面我們簡單的看一下GAN的目標(biāo)函數(shù)以及優(yōu)化方法。本質(zhì)上來說,GAN需要解決和優(yōu)化的是一個最小-最大優(yōu)化問題(min-max optimization)。生成器的任務(wù)是最小化目標(biāo)函數(shù),而判別器的任務(wù)是最大化這個目標(biāo)函數(shù)。

待優(yōu)化的目標(biāo)函數(shù)如圖3所示。在公式中,D是判別器,G是生成器。Pz是潛在空間的一個概率分布,其實就是一個隨機的高斯噪聲,它是生成假數(shù)據(jù)的源頭。Pdata是訓(xùn)練數(shù)據(jù)集的概率分布。當(dāng)x是從Pdata中真實采樣的,我們便希望分辨器將其判別為真樣本。G(z)是生成器合成的假數(shù)據(jù),當(dāng)我們將其輸入判別器的時候,我們希望判別器能夠?qū)⑵渑袆e為假樣本。

歷時 6 年發(fā)展, GAN 領(lǐng)域當(dāng)下最熱門的“弄潮兒”都有哪些?

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

判別器的目標(biāo)是最小化D(G(z)),也就是最大化(1-D(G(z)))。而生成器的目標(biāo)是最大化D(G(z)),也就是想讓判別器犯錯,看不出這是個假數(shù)據(jù),從而達(dá)到以假亂真的效果。所以生成器的目標(biāo)是最小化(1-D(G(z)))。判別器和生成器的目標(biāo)相反,所以這是一個典型的最小-最大優(yōu)化問題(min-max optimization)。

歷時 6 年發(fā)展, GAN 領(lǐng)域當(dāng)下最熱門的“弄潮兒”都有哪些?

GAN中的目標(biāo)函數(shù)

CycleGAN:

不知道大家有沒有玩過一款叫做FaceApp的軟件,它能讓我們“穿越”時光,看看中年、老年時候的我們。譯者親測,效果十分震撼和可怕。譯者在第一次使用的時候愣了足足十余分鐘,仿佛真的見到了50年后的自己,甚至有種窺透天機的恐懼感。FaceApp中就使用了CycleGAN技術(shù)來實現(xiàn)這種“穿越”,或者專業(yè)點,叫領(lǐng)域轉(zhuǎn)換(Domain Transformation)。

言歸正傳,CycleGAN在近些年大火,它是一種廣泛應(yīng)用于風(fēng)格轉(zhuǎn)換的GAN模型。舉例來說,它能學(xué)習(xí)到藝術(shù)作品和真實照片之間的映射關(guān)系和變換方法。當(dāng)我們用手機拍一張照片,CycleGAN就能將它自動變成油畫;反之,CycleGAN也能還原藝術(shù)畫作創(chuàng)作時的真實照片,讓畫面更加真實、讓我們身臨其境。此外,CycleGAN還能學(xué)習(xí)到例如馬匹和斑馬之間的變換,也能讓照片里的季節(jié)背景自由切換。

為了方便介紹和陳述,我們用馬匹和斑馬的變換作為案例。這里設(shè)X數(shù)據(jù)集中都是馬匹的圖片,而Y數(shù)據(jù)集中都是斑馬的圖片。

CycleGAN的目標(biāo)是學(xué)習(xí)一個映射函數(shù)G,實現(xiàn)馬匹到斑馬圖片的變換。用公式表達(dá)起來就是G:X->Y。和普通GAN一樣,CycleGAN中也有自己的生成器和判別器。其中生成器的功能是根據(jù)輸入的馬匹圖片,輸出一張讓判別器以為是真實斑馬的圖片。這個目的能夠通過最優(yōu)化對抗損失(Adversarial loss)來實現(xiàn)。需要注意的是,CycleGAN不光能學(xué)到馬匹到斑馬的映射函數(shù)G,也能通過使用循環(huán)一致性損失(Cycle-Consistency Loss)學(xué)到逆向的、斑馬到馬匹的映射函數(shù)F:Y->X。

在訓(xùn)練的過程中,模型有兩組輸入。第一組輸入樣本{X1, Y1}中的每個Xi(馬匹)均有其所對應(yīng)的斑馬圖片(Yi)。而第二組數(shù)據(jù){X2, Y2}中,每個馬匹樣本Xi和斑馬圖片(Yi)都是不匹配的。

歷時 6 年發(fā)展, GAN 領(lǐng)域當(dāng)下最熱門的“弄潮兒”都有哪些?

圖5. CycleGAN的訓(xùn)練過程

我們前邊提到,CycleGAN能夠?qū)W習(xí)到G和F這兩個映射函數(shù)。第一個是G,它能將馬匹圖片X轉(zhuǎn)換成斑馬圖片Y。第二個是F,它負(fù)責(zé)將斑馬圖片Y轉(zhuǎn)換成馬匹圖片X。所以CycleGAN其實是由兩個獨立的GAN組成的,也就包括了2個生成器Gx, Gy,以及2個判別器Dx和Dy。

其中Dx的任務(wù)是檢查輸入的Y和真實的斑馬Y之間有沒有差異。同樣的,Dy的任務(wù)是檢查輸入的X和真實的馬匹圖片集X間有沒有差異。這是通過對抗損失的最小化實現(xiàn)的。

此外,CycleGAN中還有另一個損失,就是循環(huán)一致性損失(Cycle-Consistency Loss)。它是用來在訓(xùn)練中使用{X2, Y2}這組無匹配樣本的數(shù)據(jù)集。循環(huán)一致性損失能夠幫助模型最小化重構(gòu)損失,也就同時實現(xiàn)F(G(x)) ≈ X ,以及G(F(Y)) ≈ Y。

所以總結(jié)起來,CycleGAN的損失函數(shù)由三個獨立的部分組成:

歷時 6 年發(fā)展, GAN 領(lǐng)域當(dāng)下最熱門的“弄潮兒”都有哪些?

在損失的優(yōu)化過程中,目標(biāo)函數(shù)可以表達(dá)為:

歷時 6 年發(fā)展, GAN 領(lǐng)域當(dāng)下最熱門的“弄潮兒”都有哪些?

以上就是CycleGAN的技術(shù)部分。CycleGAN的實際應(yīng)用效果十分逼真,比如下面這張圖片就使用CycleGAN實現(xiàn)了油畫與照片的轉(zhuǎn)換、馬匹和斑馬的轉(zhuǎn)換,以及季節(jié)切換的效果。從結(jié)果中我們可以看到,模型學(xué)習(xí)到了斑馬和馬匹切換的訣竅,也領(lǐng)悟到了季節(jié)變換的精髓。

歷時 6 年發(fā)展, GAN 領(lǐng)域當(dāng)下最熱門的“弄潮兒”都有哪些?

Linu Torvalds曾經(jīng)說過:“Talk is cheap. Show me the code(能侃沒啥用,有本事貼代碼)”。CycleGAN的技術(shù)主要體現(xiàn)在損失函數(shù)上,所以在這里我們貼上一段損失函數(shù)的代碼片段。感興趣的同學(xué)可以自行查看論文原文。

# Generator G translates X -> Y

# Generator F translates Y -> X.

fake_y = generator_g(real_x, training=True)

cycled_x = generator_f(fake_y, training=True)

fake_x = generator_f(real_y, training=True)

cycled_y = generator_g(fake_x, training=True)

# same_x and same_y are used for identity loss.

same_x = generator_f(real_x, training=True)

same_y = generator_g(real_y, training=True)

disc_real_x = discriminator_x(real_x, training=True)

disc_real_y = discriminator_y(real_y, training=True)

disc_fake_x = discriminator_x(fake_x, training=True)

disc_fake_y = discriminator_y(fake_y, training=True)

# calculate the loss

gen_g_loss = generator_loss(disc_fake_y)

gen_f_loss = generator_loss(disc_fake_x)

total_cycle_loss = calc_cycle_loss(real_x, cycled_x) + \

                   calc_cycle_loss(real_y,cycled_y)

# Total generator loss = adversarial loss + cycle loss

total_gen_g_loss = gen_g_loss + total_cycle_loss + identity_loss(real_y, same_y)

total_gen_f_loss = gen_f_loss + total_cycle_loss + identity_loss(real_x, same_x)

disc_x_loss = discriminator_loss(disc_real_x, disc_fake_x)

disc_y_loss = discriminator_loss(disc_real_y, disc_fake_y)

效果沒看夠?我們再貼一張大圖,來看看馬匹和斑馬之間的變換效果。

歷時 6 年發(fā)展, GAN 領(lǐng)域當(dāng)下最熱門的“弄潮兒”都有哪些?

論文:https://arxiv.org/abs/1703.10593

CycleGAN的詳細(xì)教程:https://www.tensorflow.org/tutorials/generative/cyclegan

StyleGAN

GAN生成圖片不是什么難事,但是真的很逼真嗎~哼哼,小編覺得它估計還不行,輕易就能被人眼看穿!那童鞋你猜猜這兩張照片哪個是真的哪個是GAN生成的假照片~

歷時 6 年發(fā)展, GAN 領(lǐng)域當(dāng)下最熱門的“弄潮兒”都有哪些?

“emm…右邊這張還有背景,它估計是真貨!左邊這個背景太單調(diào)了,估計是假的!”
哈哈,圖樣圖森破!真相是,它倆都是GAN生成的假貨!驚不驚喜、意不意外~(我倒是有點莫名害怕)

StyleGAN是近些年新出現(xiàn)的一種十分流行的網(wǎng)絡(luò)模型。它能夠生成分辨率為1024*1024的高清圖片。它的主體思想是堆疊很層的GAN,其中第一層用來生成低分辨率的圖像,而后的每層都逐漸增加圖片的分辨率。

在StyleGAN之前,也有一些人嘗試提高圖片的分辨率,它們大多是通過在圖片中添加隨機噪聲或者插值的方式實現(xiàn)的。但是這樣做的效果通常不好。StyleGAN發(fā)現(xiàn)了這個問題,它并沒有通過添加無意義的噪聲來“自欺欺人”。StyleGAN的做法是學(xué)習(xí)人臉的特征,并基于這個比較泛在的特點生成一個并不存在的人臉圖像。如果你質(zhì)疑StyleGAN的性能的話, 請戳這里,這個鏈接在每次打開的時候都會生成一張假的人臉圖,這個人臉圖是GAN隨機產(chǎn)生的,而不是從訓(xùn)練集中粘貼出來的。

歷時 6 年發(fā)展, GAN 領(lǐng)域當(dāng)下最熱門的“弄潮兒”都有哪些?

典型的StyleGAN的結(jié)構(gòu)如上圖所示。網(wǎng)絡(luò)的輸入在經(jīng)過8層全連接網(wǎng)絡(luò)的處理后被映射成一個潛在向量z,z中就包括了人臉的各種特征。而生成器的合成器由18層網(wǎng)絡(luò)組成,它們將向量z從4*4的分辨率一直擴(kuò)大到1024*1024,實現(xiàn)了分辨率的升高。但此時生成的圖像還是黑白的,缺少RGB三個顏色通道。因此,StyleGAN在輸出層上使用了獨立的卷積結(jié)構(gòu)來添加顏色通道??吹竭@么深的全連接的時候我們就能猜到,這個網(wǎng)絡(luò)的參數(shù)量極大。事實上,它擁有2620萬個參數(shù)需要訓(xùn)練,因此StyleGAn需要十分龐大的訓(xùn)練數(shù)據(jù)集,也需要十分昂貴的計算資源。

在StyleGAN中,每層網(wǎng)絡(luò)都需要經(jīng)過AdaIN歸一化:

歷時 6 年發(fā)展, GAN 領(lǐng)域當(dāng)下最熱門的“弄潮兒”都有哪些?

其中每個特征圖都會首先進(jìn)行獨立的歸一化操作,而后使用目標(biāo)風(fēng)格Y對應(yīng)的屬性進(jìn)行縮放和偏置轉(zhuǎn)換。因此Y的維數(shù)應(yīng)為該層網(wǎng)絡(luò)特征圖數(shù)量的兩倍。

論文:https://arxiv.org/pdf/1812.04948.pdf

Github代碼:https://github.com/NVlabs/stylegan

PixelRNN

PixelRNN是一種自回歸生成模型。

在這個人人曬圖的時代,我們隨便上網(wǎng)就能爬到數(shù)不勝數(shù)的圖像數(shù)據(jù)。但是這些“野生圖片”都是沒有標(biāo)簽的,而基于無標(biāo)簽數(shù)據(jù)的無監(jiān)督學(xué)習(xí)方法很難學(xué)習(xí)到數(shù)據(jù)的分布特點。這個問題一致困擾著我們,直到PixelRNN的出現(xiàn)。

PixelRNN的強大之處在于它能學(xué)習(xí)到圖像的離散概率分布,并預(yù)測或生成二維圖像中的像素。

歷時 6 年發(fā)展, GAN 領(lǐng)域當(dāng)下最熱門的“弄潮兒”都有哪些?

我們知道循環(huán)神經(jīng)網(wǎng)絡(luò)(RNNs)擅長學(xué)習(xí)數(shù)據(jù)的條件分布,比如LSTM能夠?qū)W習(xí)到序列數(shù)據(jù)和序列像素點之間的長時依賴特點。在PixelRNN中,它采取了漸進(jìn)式的生成方法,當(dāng)我們給出了X0~Xi的數(shù)據(jù)后,它預(yù)測下一步Xi+1的結(jié)果,而基于X0~Xi+1的結(jié)果,模型又能輸出Xi+2的值……以此類推,模型就能產(chǎn)生無窮無盡的數(shù)據(jù)了。

理論上來說,GAN網(wǎng)絡(luò)學(xué)習(xí)的是數(shù)據(jù)集隱式的概率分布,而PixelRNN這樣的自回歸模型學(xué)習(xí)的是數(shù)據(jù)集顯式的概率分布。這是因為GAN沒有明確地在函數(shù)中引入概率分布項,它是通過讓我們查看觀察模型所學(xué)到的概率分布來實現(xiàn)相同的目的。

歷時 6 年發(fā)展, GAN 領(lǐng)域當(dāng)下最熱門的“弄潮兒”都有哪些?

上圖中是一個獨立的PixelRNN殘差塊,模型會疊加、串聯(lián)并訓(xùn)練若干層的殘差塊。一個典型的PixelRNN LSTM層的輸入特征的高度是特征圖高度的兩倍,即2h。為了減少特征維度,LSTM將狀態(tài)輸入門的尺寸設(shè)為h。在遞歸層之后,PixelRNN使用1*1的卷積來將每個特征的尺寸擴(kuò)大2倍,并將輸入分量加入輸出結(jié)果之中。

論文:https://arxiv.org/pdf/1812.04948.pdf

Github代碼:https://github.com/NVlabs/stylegan

Text-2-image

每當(dāng)我們提起GAN,它給人的印象大概就是“不羈放縱愛自由”,沒有太多的約束。它所生成圖像的風(fēng)格和樣式都比較隨意。

比如說,一個從小貓數(shù)據(jù)集上訓(xùn)練的GAN網(wǎng)絡(luò)能夠生成很多假的貓圖~這些貓在毛色、運動狀態(tài)、表情等等方面都很隨機。比如可能生成一張黑貓在吃飯的圖片,或是一張白貓在抓老鼠的圖片,也有可能是一張橘貓盯著自己的贅肉惆悵的圖片(狗頭保命),具有不可控的隨機性。當(dāng)然了,它們都是一個鼻子兩個耳朵的正常貓,符合貓的特征。

但是在商業(yè)領(lǐng)域中,人們往往需要精準(zhǔn)掌控所生成的內(nèi)容,嚴(yán)格按照人類控制生成一些樣本,否則要是出現(xiàn)一些違法或者引起公憤的內(nèi)容就得不償失了。因此GAN很少應(yīng)用在商業(yè)場景中。為了減少GAN生成圖像的隨機性,盡量控制其中的不可控因素,人們就想設(shè)計一種模型讓GAN能夠根據(jù)我們的預(yù)期和控制生成特定圖像。

在這里,我們隆重介紹Text-2-Image模型,它能根據(jù)輸入的文字描述,有針對性地生成特定的圖像。這對于GAN的研究來說是一項意義重大的進(jìn)步。Text-2-Image的輸入是文字描述,輸出的是該描述所描繪的圖片。

舉例來說,當(dāng)我們輸入“一個有許多粉色的小圓花瓣的花花”的句子時,模型就能夠產(chǎn)生一張真的有好多粉色花瓣的花朵圖片,甚至還能把背后的綠葉背景也加上去:

歷時 6 年發(fā)展, GAN 領(lǐng)域當(dāng)下最熱門的“弄潮兒”都有哪些?

在Text-2-Image模型中,生成器的輸入不再是隨機的噪聲向量了,而是一段有明確意義和確定描述的文字。這段文字會首先經(jīng)過嵌入(Embedding)層的處理進(jìn)行編碼,然后在編碼的結(jié)果后摻入噪聲向量并輸入生成器模型中。

比如在下面的這個例子中,文字會首先被轉(zhuǎn)換成256維的特征,然后和100維的噪聲拼接,形成356維的超級向量。其中的噪聲向量通常是從正態(tài)分布中隨機采樣的。

這種方法能夠給生成器一個生成規(guī)則(就是明確的文字描述),使生成結(jié)果符合該規(guī)則,從而降低生成結(jié)果在該方面的隨機性。

  

這樣的設(shè)計思想會給判別器帶來額外的壓力和任務(wù)。它既需要判斷輸入樣本是否為假數(shù)據(jù),又需要判斷輸入樣本是否符合了文字描述的要求。因此在訓(xùn)練的過程中,我們的輸入數(shù)據(jù)格式就要進(jìn)行調(diào)整,變成(圖像, 文字)的數(shù)據(jù)對。具體來說,一共有三種情況:

  • (正確圖片,正確描述)樣式的數(shù)據(jù),它的標(biāo)簽為1;

  • (錯誤圖片,正確描述)樣式的數(shù)據(jù),它的標(biāo)簽為0;

  • (假圖片,正確描述)樣式的數(shù)據(jù),它的標(biāo)簽為0.

其中第一類樣本是指我們?yōu)檎鎸崍D片提供了正確的文字描述,模型通過它們能學(xué)習(xí)出圖像的模式和文字描述之間的對應(yīng)關(guān)系。第二類樣本是指數(shù)據(jù)集中的描述和圖片不相符的情況,模型能夠通過它們了解不匹配是怎樣一個現(xiàn)象。最后一類樣本就是普通GAN中的假數(shù)據(jù)的判別,生成器通過學(xué)習(xí)它們來讓生成器盡量生成看起來不那么“假”的圖像。雷鋒網(wǎng)雷鋒網(wǎng)雷鋒網(wǎng)

具體到我們的花朵生成的例子中,訓(xùn)練數(shù)據(jù)集共有10種不同的組合:

歷時 6 年發(fā)展, GAN 領(lǐng)域當(dāng)下最熱門的“弄潮兒”都有哪些?

下面我們來看一下Text-2-Image模型的生成結(jié)果,領(lǐng)略一下這臺聽話的偽鈔機的風(fēng)采~

歷時 6 年發(fā)展, GAN 領(lǐng)域當(dāng)下最熱門的“弄潮兒”都有哪些?

論文:https://arxiv.org/pdf/1605.05396.pdf

Github代碼:https://github.com/paarthneekhara/text-to-image

DiscoGAN

最近一段時間,DiscoGAN備受學(xué)術(shù)和工業(yè)界的關(guān)注。這主要是由于DiscoGAN能夠?qū)W習(xí)跨領(lǐng)域非監(jiān)督數(shù)據(jù)間的關(guān)聯(lián)性。

對于人類來說,不同領(lǐng)域之間的關(guān)聯(lián)信息通常是很容易總結(jié)和學(xué)習(xí)的。比如在下圖中,我們一眼就能看出第一行的圖片都是書包,第二行的圖片都是鞋子,第一行和第二行對應(yīng)圖片在顏色特征上是一樣的。

歷時 6 年發(fā)展, GAN 領(lǐng)域當(dāng)下最熱門的“弄潮兒”都有哪些?

然而在人工智能領(lǐng)域,模型很難挖掘出這種不匹配圖像之間的關(guān)聯(lián)和共性信息。所以為了解決這個實際存在的問題,研究人員發(fā)明了DiscoGAN,希望它能夠?qū)W習(xí)到不同領(lǐng)域數(shù)據(jù)間的關(guān)聯(lián)信息。

DiscoGAN和CycleGAN的核心思想十分類似。DiscoGAN也需要學(xué)習(xí)兩個映射函數(shù),一個用來學(xué)習(xí)領(lǐng)域X到領(lǐng)域Y的正向變換方法,另一個用來學(xué)習(xí)Y到X的反向的變換函數(shù)。而原始圖像和經(jīng)過兩次變換后的重建圖像間的不匹配程度使用了重構(gòu)損失來進(jìn)行計算。

此外,DiscoGAN的設(shè)計規(guī)則和CycleGAN也很類似,即希望將領(lǐng)域A的圖像先轉(zhuǎn)換到領(lǐng)域B,再將其從領(lǐng)域B轉(zhuǎn)換回領(lǐng)域A,然后想讓這個二手的切換回來的結(jié)果能夠和原始圖像盡量匹配,有種“出淤泥而不染”的感覺。

DiscoGAN和CycleGAN的不同之處在于,DiscoGAN為兩個領(lǐng)域都單獨使用了一個重構(gòu)損失函數(shù),而CycleGAN只使用一個統(tǒng)一的損失對其進(jìn)行表示

歷時 6 年發(fā)展, GAN 領(lǐng)域當(dāng)下最熱門的“弄潮兒”都有哪些?

(a)Vanilla GAN (b) 使用了重構(gòu)損失的GAN (c) DiscoGAN

DiscoGAN中的重要思想是利用重構(gòu)損失函數(shù)表示原始圖像和重構(gòu)圖像之間的差異。換個角度來看,它的變換就是從一個領(lǐng)域轉(zhuǎn)換到另一個領(lǐng)域,再從那個領(lǐng)域變換回來。兩個領(lǐng)域間來回切換轉(zhuǎn)換的過程是不是像極了夜店蹦迪的大燈球來回照射,難道人們因此才將其稱為迪斯科GAN(DiscoGAN)?哈哈。在領(lǐng)域A的數(shù)據(jù)變換到領(lǐng)域B后,數(shù)據(jù)被變換到另一個領(lǐng)域中進(jìn)行編碼表達(dá),而在將領(lǐng)域B的數(shù)據(jù)轉(zhuǎn)換回來的時候,DiscoGAN希望轉(zhuǎn)換回來的二手結(jié)果能夠跟原始數(shù)據(jù)盡力那個匹配。所以從數(shù)學(xué)的角度來說,DiscoGAN就是希望最小化重構(gòu)損失值

歷時 6 年發(fā)展, GAN 領(lǐng)域當(dāng)下最熱門的“弄潮兒”都有哪些?

總結(jié)來說,DiscoGAN包括兩個獨立的GAN網(wǎng)絡(luò),一個是GAB,一個叫GBA。在上圖中,模型正在嘗試學(xué)習(xí)汽車和人臉這兩個不同領(lǐng)域的數(shù)據(jù)圖像中物體的“方向”信息。在模型重建數(shù)據(jù)之后,圖像中的物體方向應(yīng)盡量和原始方向一致。

論文:https://arxiv.org/pdf/1703.05192.pdf

Github代碼:https://github.com/SKTBrain/DiscoGAN

LsGAN

無監(jiān)督的數(shù)據(jù)通常是很便宜的,因為不用人類對其進(jìn)行昂貴的標(biāo)記。因此很多研究都在探索將GAN應(yīng)用在無監(jiān)督學(xué)習(xí)的應(yīng)用上。

在常規(guī)的GAN模型中,有一個讓人撓頭的問題就是梯度消失。梯度消失的原因有很多,其中一個就是判別器中使用的交叉熵?fù)p失函數(shù)。為了解決這個問題,LsGAN提出使用最小二乘損失函數(shù)替代交叉熵。實驗證明,在這樣操作之后LsGAN能夠生成更高質(zhì)量的圖像結(jié)果。

我們首先回顧一下,在Vanilla GAN中,模型使用最小最大化優(yōu)化方法訓(xùn)練模型。模型中的判別器是二分類的,輸出的結(jié)果非真即假。因此Vanilla GAN的判別器中使用了sigmoid對結(jié)果進(jìn)行激活,并且使用交叉熵作為損失。

這樣的設(shè)計會加劇模型訓(xùn)練中梯度消失的問題,因為對于那些位于決策超平面正確一邊的樣本來說,它們會遠(yuǎn)離特征空間中樣本分布密集的區(qū)域,從而產(chǎn)生極大的梯度(誤差值提高了嘛)。而當(dāng)我們使用最小二乘損失函數(shù)的時候就沒有這個問題了,它能夠讓學(xué)習(xí)的過程更加穩(wěn)定,從而產(chǎn)生質(zhì)量更高的圖像結(jié)果。

歷時 6 年發(fā)展, GAN 領(lǐng)域當(dāng)下最熱門的“弄潮兒”都有哪些?

下圖是LsGAN需要優(yōu)化的目標(biāo)函數(shù),其中a是假數(shù)據(jù)樣本的標(biāo)簽,b是真實樣本的標(biāo)記,c是生成器希望判別器器對假樣本判別所輸出的值。

歷時 6 年發(fā)展, GAN 領(lǐng)域當(dāng)下最熱門的“弄潮兒”都有哪些?

因此,在這種場景中就有兩個獨立的待優(yōu)化損失函數(shù)。一個是訓(xùn)練判別器用的,一個是訓(xùn)練生成器用的。

相比于Vanilla GAN來說,LsGAN具有很多優(yōu)點。在Vanilla GAN中,因為判別器使用二分類交叉熵?fù)p失函數(shù),所以如果一個樣本的分類結(jié)果正確,那它的損失值就=0。

但是在LsGAN中,決策結(jié)果并不是損失值的唯一判定標(biāo)準(zhǔn)。在lsGAN中,就算一個數(shù)據(jù)處于分類超平面中正確的一邊,但一旦它距離決策邊界很遠(yuǎn)的話,模型也會給予它很高的損失。

這種懲罰的方式迫使生成器朝向決策邊界產(chǎn)生數(shù)據(jù)。因此這也能在一定程度上解決梯度消失的問題,因為那些遠(yuǎn)離分類邊界的樣本就不會產(chǎn)生巨大的梯度了。

論文地址:https://arxiv.org/pdf/1611.04076.pdf

Github 開源地址:https://github.com/xudonmao/LSGAN

文末閑侃

所有GAN網(wǎng)絡(luò)結(jié)構(gòu)都有一個共性,它們都是基于對抗損失進(jìn)行構(gòu)建和訓(xùn)練的。每個網(wǎng)絡(luò)都有一個生成器,也有一個判別器。它們的任務(wù)是互相欺騙,在左右互搏的過程中提升彼此。

GAN在近些年大放異彩,已經(jīng)成為機器學(xué)習(xí)領(lǐng)域中最熱門的研究方向之一。相信在不久的未來,我們會看到更多更有意思的GAN!

這個Github庫系統(tǒng)地整理了GAN相關(guān)的研究論文,感興趣的小伙伴不妨一讀哦:

https://github.com/hindupuravinash/the-gan-zoo

參考文獻(xiàn)見原文:https://towardsdatascience.com/6-gan-architectures-you-really-should-know-d0b7373a2585    

雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。

歷時 6 年發(fā)展, GAN 領(lǐng)域當(dāng)下最熱門的“弄潮兒”都有哪些?

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

知情人士

當(dāng)月熱門文章
最新文章
請?zhí)顚懮暾埲速Y料
姓名
電話
郵箱
微信號
作品鏈接
個人簡介
為了您的賬戶安全,請驗證郵箱
您的郵箱還未驗證,完成可獲20積分喲!
請驗證您的郵箱
立即驗證
完善賬號信息
您的賬號已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
立即設(shè)置 以后再說