人工智能

一篇文章讀懂“GAN”——生成式對抗網絡

廣告
廣告

機器學習是一個不斷發展的領域,因此對于很多人來說,時刻跟蹤這一領域的最新進展是很難的。GAN(生成式對抗網絡)是最近引起廣泛關注的新興領域之一,為了讓大家能夠更好地跟上技術發展的腳步,我們安排了一個簡短的GAN速成文章:

  ·它們適用于哪些生成模型

  ·過去的時間里它們發生了什么樣的變化

  ·它們可應用于哪里

  ·GAN帶來的挑戰

  ·這個新興的技術領域未來如何

  下面我們就開始吧。

生成模型

使用生成模型,目的是對給定數據集的分布進行建模。對于我們今天討論的生成模型,該數據集通常是一組圖像,但也可能是其他類型的數據,例如音頻樣本或時間序列數據。

獲取此分布模型的方法有兩種:隱式或顯式。

那么兩者之間有什么區別?

有了顯式的生成模型,您就可以掌握概率密度。我們可以直接對該分布中的所有變量建模。而對于隱式生成模型,您必須進行抽樣以了解我們的模型分布。

當我們評估生成模型時,一種實現方法是使用圖像。因此,我們可以從模型分布中取樣,然后目視檢查樣本,以查看它們與原始數據的匹配程度。樣本圖像離訓練圖像越近,說明我們的模型越好。

生成模型的類型

在深度學習中,當我們談論生成模型時,通常是指下列四種模型之一:

  ·自回歸(Autoregressive)

  ·可逆的(Reversible)

  ·變分自動編碼器(Variational Autoencoders)

  ·生成式對抗網絡(Generative Adversarial Networks)

自回歸模型:使用自回歸模型,您可以根據之前生成的像素來生成每個像素,從而生成圖像。也就是說,當使用自回歸模型生成圖像時,會逐像素生成圖像。這是一個自回歸模型的例子。

可逆模型:可逆模型的概念是采用GAN,但要使生成器過程可逆。這意味著我們可以通過可逆模型(從噪聲到圖像以及從圖像到噪聲)同時傳遞圖像和噪聲。這是可逆模型的一個例子。

變分自動編碼器:自動編碼器由一對相連的網絡組成:編碼器和解碼器。變分自動編碼器的特點是具有連續的潛在空間。這樣可以輕松進行采樣和插入,這在使用VAE探索特定方向上已有數據的變化時特別有用。這是一個變體自動編碼器的例子。

生成式對抗網絡

簡要介紹完其他生成模型之后,現在我們開始講解GAN或生成對抗網絡。

(圖像來自于Brock 2018

首先,讓我們查看一些由GAN生成的圖像,以了解過去五年中已取得的進展。上面的這些圖像是無條件生成的ImageNet樣本,該樣本來自名為BigGAN的模型,該模型由Andrew Brock在2019年國際學習代表大會(ICLR)上提出。

這些圖像樣本之所以引人注目,主要有兩個原因:清晰度和類別的多樣性。一個動物、一個蘑菇、食物、一道風景,這些都是一起生成的,而且分辨率都很高。

但并不總是這樣。

(圖片來自Goodfellow et al 2014

這是最初的GAN論文中的圖片,作者為Ian Goodfellow等人。2014年該論文發表時,一躍成為最先進的圖像生成技術。但是與BigGAN的樣本相比,可以說是天壤之別。從上圖所示的這些樣本中可以看到,圖像分辨率很低,并且容貌尚未完全解析。

(圖像案例來自 Karras et al. 2019)

現在讓我們快進大概4年,到Nvidia的StyleGAN論文發布,這些生成的人物圖像看起來已經非常真實。從2014年的模糊圖像開始,GAN所生成的面孔在短短4年內就與真人幾乎無法區分。

GAN概述

像上面我們所介紹的其他模型一樣,GAN是生成模型的一種形式。但是,與我們討論的其他模型不同,GAN是隱式生成模型。這意味著如果我們想查看模型的分布情況,就必須對其進行抽樣。

那么GAN如何工作?

GAN有兩個網絡:生成器(生成組件)和鑒別器(對抗組件)。

鑒別器經過訓練可以識別生成的示例,并將其與實際示例區分開。我們通過采用一組真實的示例和一組生成的示例,并讓鑒別器嘗試對真實示例進行分類,以此來訓練辨別器。通過訓練,我們希望鑒別器能夠識別樣本是來自于真實的分布還是生成的分布。

與鑒別器相對應的是生成器,它可以吸收隨機噪聲,并學會將隨機噪聲轉換為看起來逼真的樣本,逼真到足以欺騙鑒別器。

隨著時間的流逝,這種情況會發生,因為生成器在生成看起來像真實示例的樣本方面變得越來越好,而鑒別器甚至會隨機猜測樣本是真實的還是生成的。我們可以將其想象成一個兩人的極大極小博弈,而鑒別器進行隨機猜測的這個點就是它的納什均衡。

訓練GAN生成器

生成器將如何學習將隨機噪聲轉換為可以通過鑒別器的圖像?

生成器獲取樣本(通常來自高斯分布),并通過神經網絡對其進行轉換以創建樣本。同樣,我們的目標是讓這個示例看起來盡可能真實。

最初,這些轉換是完全沒有意義的。把隨機噪聲通過發生器,另一邊得到的結果就會很像隨機噪聲。

(說明噪聲向圖像的轉換過程。噪音來自Adobe Stock,面容來自Karras et al. 2018)

現在,當您生成一個灰度點的圖像并將其傳遞給鑒別器時,大多數情況下鑒別器會將其識別為一個并不真實的例子。使用反向傳播,您將獲得一個通過生成器發送的信號,該信號告訴生成器中的各層,根據剛發送給鑒別器的樣本的不良性能來更新其權重。

經過這些調整后,更多的隨機噪聲會通過生成器創建一個新圖像發送給鑒別器。這次,鑒別器可能會被我們的樣本所欺騙了,因為——這主要是由于訓練初期的隨機性——圖像中的某些特征類似于真實數據集。然后,生成器得到一個信號,表明最后一個樣本表現良好,并再次相應地更新其權重。

通過許多次迭代并生成大量圖像,生成器權重將根據它們在欺騙鑒別器方面的表現而繼續更新。如果訓練順利,生成器可以獲取隨機噪聲并將其轉換為逼真的圖像。

生成器和鑒別器都可以使用此過程完全不受監督地進行訓練,并且由于損失函數產生的動態特性,可以創建大量樣本。

GAN中的損失函數

在GAN中,生成器和鑒別器都有各自的損失函數。盡管這兩種不同的損失函數允許我們通過GAN進行無監督學習,但它們也給訓練帶來了一些挑戰。

鑒別器的代價是希望將真實樣本正確標識為真實樣本,并且希望將生成的樣本正確標識為已生成(等式1)。

(等式1)

您可以在此等式的左側看到,第一項表示將真實樣本標識為真實,而右邊項表示將生成的樣本標識為生成。

有趣的是,生成器的成本只是該函數的負數(等式2)。

(等式2)

您可以在這里看到一個常數,其中方程式是指鑒別器將真實示例識別為真實示例,因為生成器與過程中的這一部分沒有直接關系。但是人們發現,如果像上面的方程式那樣使用生成器的損失函數,損失就會飽和。因此,我們要做的就是稍微改變一下公式(公式3)。

(等式3)

使用此版本的損失函數,如果生成器創建可被鑒別器很輕松地識別為生成,那么生成器將獲得非常強的信號。通過使用第二個等式,它不再完全是一個由兩人組成的極大極小博弈,而是使訓練按照我們希望的那樣進行,而且訓練比以前更加穩定。

GAN的應用

現在我們已經掌握了GAN訓練的知識,讓我們深入講解一些關于應用程序的知識。

GANs最早的應用之一來自Goodfellow的原始論文,該論文顯示了MNIST數字1和5之間的插值。這是一種表示學習,因為通過訓練生成器和鑒別器,我們可以學習原始數據集的潛在表示。

(圖片來自Karras et al.2019

你可以在上面的StyleGAN論文和其他GAN論文的圖片中看到同樣的應用。

在這個特定示例中,我們看到的是采用源A的樣式并將其應用于源B的結構。在左上角,我們將眼鏡應用于不同的圖像,或者讓左邊的人們看起來像小孩子。

(圖像示例來自Zhu et al. 2017Isola et al. 2016

GAN的另一個應用是圖像翻譯——在某些情況下,它是圖像風格轉換的一種更通用的方法。

在左邊(Zhu),我們看到CycleGAN正在進行一些圖像增強,而在右邊,Pix2Pix論文(Isola)中,我們正在將圖像從一種風格轉換為另一種風格。

所以我們有左側的街景視圖的分割圖像,以及右側的實景圖像。然后是衛星圖像和類似的地圖的圖像。

使用Pix2Pix模型訓練這種風格的轉換,您可以實現從衛星圖到地圖,以及從地圖到衛星圖的變換。因此,如果您要對一組圖像進行樣式轉換,這些模型是最有效的。

GAN的挑戰

但是,GAN的所有進步并非沒有挑戰。

從理論上講,GAN就像這個有序的兩人極大極小博弈一樣,逐漸達到其納什均衡。我們讓噪聲通過生成器,生成器學會欺騙鑒別器,然后從理論上講,鑒別器不再善于檢測差異并開始隨機猜測。

作為該博弈的運作方式,GAN面臨三個主要挑戰:

  ·模式崩潰

  ·過分講究的訓練

  ·GAN的評估

模式崩潰

(模式崩潰的圖像,來自Goodfellow 2016

對于模式崩潰,模型只學習多模式數據集的一個或幾個模式。我們訓練GAN的數據通常有非常多的模式,這使得模式崩潰存在一定的問題。

過分講究的訓練

然后是訓練的問題。之前,我們提到了生成器和鑒別器的成本函數。由于此模型中有兩個不同的成本函數,因此在平衡這兩者方面您可能遇到更多的挑戰。

評估GAN

在評估GAN時,有幾個問題需要考慮。

首先,來自生成器的好樣本并不一定意味著您已經很好地了解了分布。

其次,估算可能性是很難的,也就很難衡量對分布學習的好壞。這就引出了第三個問題:很難知道從分布中到底學習到了多少。

最后,評估GAN是一個活躍的研究領域,目前并沒有通用的評估方法。許多論文提出了新的評估指標,但在后來的出版物中并沒有受到關注。

GAN的未來

在本篇概述中,我們主要介紹了GAN在生成圖像方面的應用,但這并不是GAN的唯一應用——無論是今天已經看到的,還是未來即將出現的。

GAN也正在飛躍發展,例如為語音模擬生成音頻,開發新藥品,為建筑物設計平面圖,為結構生成組件,創建圖形設計布局,生成表格數據等等。

隨著這類機器學習模型在不同行業和應用中的不斷發展,人們對GAN的概念越來越滿意,他們將繼續尋找更多的領域來利用這一技術。因此,從2014年到今天、到未來,在我們用盡這種對抗網絡所帶來的所有機遇之前,GAN仍有很長的路要走。

原文作者:Andrew Martin

我還沒有學會寫個人說明!

漫畫 | 面試的我 VS 真實的我

上一篇

看,那個35歲的程序員好像一條”狗“...

下一篇

你也可能喜歡

一篇文章讀懂“GAN”——生成式對抗網絡

長按儲存圖像,分享給朋友

ITPUB 每周精要將以郵件的形式發放至您的郵箱


微信掃一掃

微信掃一掃
重庆百变王牌开奖结果 神机策配资 股巢网配资 炒股大赛 股票涨跌幅度计算公式 萬赢在线配资 买股票指数期货 华金配资 asg游戏理财平台 2019股票配资平台网址 配多多配资 炒股的app 金元配资 理财产品排行哪个好 中国石油股票行情分析 私募基金配资是什么 什么叫理财如何理财