生成對抗網(wǎng)絡(luò)綜述:從架構(gòu)到訓(xùn)練技巧,看這篇論文就夠了

大數(shù)據(jù)

作者:路雪

近日,帝國理工學(xué)院、蒙特利爾大學(xué)等研究機(jī)構(gòu)共同發(fā)表論文并梳理了生成對抗網(wǎng)絡(luò),該論文從最基本的 GAN 架構(gòu)及其變體到訓(xùn)練過程和訓(xùn)練技巧全面概述了生成對抗網(wǎng)絡(luò)的概念、問題和解決方案。下面,我們將為各位讀者介紹該綜述論文。

大數(shù)據(jù)

生成對抗網(wǎng)絡(luò)(GAN)提供了一種不需要大量標(biāo)注訓(xùn)練數(shù)據(jù)就能學(xué)習(xí)深度表征的方式。它們通過反向傳播算法分別更新兩個網(wǎng)絡(luò)以執(zhí)行競爭性學(xué)習(xí)而達(dá)到訓(xùn)練目的。GAN 學(xué)習(xí)的表征可用于多種應(yīng)用,包括圖像合成、語義圖像編輯、風(fēng)格遷移、圖像超分辨率技術(shù)和分類。這篇論文的目的是為信號處理社區(qū)做一個 GAN 的綜述。除了介紹訓(xùn)練和構(gòu)建 GAN 的不同方法以外,我們還討論了其理論和應(yīng)用中尚存在的挑戰(zhàn)。

1. 引言

生成器和判別器通常由包含卷積和(或)全連接層的多層網(wǎng)絡(luò)構(gòu)成。生成器和判別器必須是可微的,但并不必要是直接可逆的(理論分析上必須可逆)。如果生成網(wǎng)絡(luò)由某些表征空間映射得到,即映射一個隱空間到數(shù)據(jù)空間中(我們需要把注意力集中在圖像上),用更加形式化的表示為:G : G(z) → R^|x|,其中 z ∈ R^|z|是隱空間中的一個樣本,x ∈ R^|x|是一張圖像,| · |表示維數(shù)。

原始 GAN 的判別網(wǎng)絡(luò) D 可以看成是將圖像數(shù)據(jù)映射到(該圖像是來自真實(shí)數(shù)據(jù)分布,而不是生成器分布)判別概率的函數(shù) D : D(x) → (0, 1)。對于一個固定的生成器 G,判別器 D 可能被訓(xùn)練用于分辨圖像是來自訓(xùn)練數(shù)據(jù)(真,概率接近 1)還是來自生成器(假,概率接近 0)。若判別器已經(jīng)是最好的,它將變得無法被欺騙,而這時生成器 G 需要繼續(xù)訓(xùn)練以降低判別器的準(zhǔn)確率。如果生成器分布足以完美匹配真實(shí)數(shù)據(jù)分布,那么判別器將會被最大地迷惑而對所有輸入給出 0.5 的概率值。在實(shí)踐中,判別器可能無法訓(xùn)練到理想狀態(tài),我們將在第 4 節(jié)更深入地探索訓(xùn)練過程。

大數(shù)據(jù)

圖 1. 這張圖分別展示了 GAN 中的判別器 D 和生成器 G 的訓(xùn)練流程。通常利用神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn),但實(shí)際上它們可以用任意形式的(將數(shù)據(jù)從一個空間映射到另一個的)可微系統(tǒng)實(shí)現(xiàn)。

3.GAN 架構(gòu)

大數(shù)據(jù)

圖 2. 在 GAN 的訓(xùn)練過程中,生成器可以生成一個樣本分布 p_g(x)以匹配真實(shí)數(shù)據(jù) p_data(x)。通過適當(dāng)參數(shù)化并訓(xùn)練 GAN,這些分布將變得難以區(qū)分。GAN 的表征分布可以通過生成網(wǎng)絡(luò)和判別網(wǎng)絡(luò)的學(xué)習(xí)參數(shù)(權(quán)重)而構(gòu)建。

A. 全連接 GAN

首個 GAN 架構(gòu)在生成器與鑒別器上皆使用全連接神經(jīng)網(wǎng)絡(luò)。這種架構(gòu)類型被應(yīng)用于相對簡單的圖像數(shù)據(jù)庫,即 MNIST(手寫數(shù)字)、CIFAR-10(自然圖像)和多倫多人臉數(shù)據(jù)集(TFD)。

B. 卷積 GAN

因?yàn)?CNN 非常適合處理圖像數(shù)據(jù),所以從全連接到卷積神經(jīng)網(wǎng)絡(luò)是一個自然的擴(kuò)展。早期在 CIFAR-10 上進(jìn)行的試驗(yàn)表明,用監(jiān)督學(xué)習(xí)相同水平和表征能力的 CNN 訓(xùn)練生成器和鑒別器網(wǎng)絡(luò)會更加困難。

通過使用多尺度分解生成過程的形式,拉普拉斯金字塔形對抗網(wǎng)絡(luò)(LAPGAN)[13] 為這一問題貢獻(xiàn)了一個方案:真值圖像本身被分解成拉普拉斯金字塔(Laplacian pyramid),并且條件性卷積 GAN 被訓(xùn)練在給定上一層的情況下生成每一層。

此外,Radford et al.[5](為「深度卷積 GAN」)提出了一種稱之為 DCGAN 的網(wǎng)絡(luò)架構(gòu)族,它允許訓(xùn)練一對深度卷積生成器和判別器網(wǎng)絡(luò)。DCGAN 在訓(xùn)練中使用帶步長的卷積(strided convolution)和小步長卷積(fractionally-strided convolution),并在訓(xùn)練中學(xué)習(xí)空間下采樣和上采樣算子。這些算子處理采樣率和位置的變化,這是圖像空間到低維潛在空間、從圖像空間到判別器映射的重要要求。Section IV-B 將詳細(xì)介紹 DCGAN 架構(gòu)和訓(xùn)練。

作為 2D 圖像合成的擴(kuò)展,Wu et al. [14] 展示了使用體積卷積(volumetric convolution)合成 3D 數(shù)據(jù)樣本的 GAN。Wu et al. [14] 合成包括新物體,如椅子、桌子和汽車;此外,他們還展示了一種從 2D 圖像映射到 3D 圖像的方法。

C. 條件 GAN

Mirza 等人通過將生成器和判別器改造成條件類(class-conditional)而將(2D)GAN 框架擴(kuò)展成條件設(shè)置。條件 GNN 的優(yōu)勢在于可以對多形式的數(shù)據(jù)生成提供更好的表征。條件 GAN 和 InfoGAN[16] 是平行的,它可以將噪聲源分解為不可壓縮源和一個「隱編碼」(latent code),并可以通過最大化隱編碼和生成器之間的交互信息而發(fā)現(xiàn)變化的隱藏因子。這個隱編碼可用于在完全無監(jiān)督的數(shù)據(jù)中發(fā)現(xiàn)目標(biāo)類,即使這個隱編碼是不明確的。由 InfoGAN 學(xué)到的表征看起來像是具備語義特征的,可以處理圖貌中的復(fù)雜糾纏因素(包括姿勢變化、光照和面部圖像的情緒內(nèi)容)。

D.GAN 推斷模型

GAN 的初始形式無法將給定的輸入 x 映射為隱空間中的向量(在 GAN 的文獻(xiàn)中,這通常被稱為一種推斷機(jī)制)。人們提出了幾種反轉(zhuǎn)預(yù)訓(xùn)練 GAN 的生成器的技術(shù),比如各自獨(dú)立提出的對抗性學(xué)習(xí)推斷(Adversarially Learned Inference,ALI)和雙向 GAN(Bidirectional GANs),它們能提供簡單而有效的擴(kuò)展,通過加入一個推斷網(wǎng)絡(luò),使判別器共同測試數(shù)據(jù)空間和隱空間。

這種形式下的生成器由兩個網(wǎng)絡(luò)組成:即編碼器(推斷網(wǎng)絡(luò))和解碼器。它們同時被訓(xùn)練用于欺騙判別器。而判別器將接收到一個向量對(x,z)(見圖 4 所示),并決定其是否包含一個真實(shí)圖像以及其編碼,或者一個生成的圖像樣本以及相關(guān)的生成器的隱空間輸入。

理想情況下,在一個編碼-解碼模型中的輸出(作為輸入的重構(gòu))應(yīng)該和輸入相似。通常情況下,使用 ALI/BiGAN 合成的重構(gòu)數(shù)據(jù)樣本的保真度都很低。通過額外添加(數(shù)據(jù)樣本和它們的重構(gòu)的)對抗代價函數(shù)可以提高樣本的保真度。

E. 對抗自編碼器(AAE)

自編碼器是由編碼器和解碼器組成的網(wǎng)絡(luò),學(xué)習(xí)將數(shù)據(jù)映射到內(nèi)部隱表征中,再映射出來,即從數(shù)據(jù)空間中學(xué)習(xí)將圖像(或其它)通過編碼映射到隱空間中,再通過解碼從隱空間映射回數(shù)據(jù)空間。這兩個映射形成了一種重構(gòu)運(yùn)算,而這兩個映射將被訓(xùn)練直到重構(gòu)圖像盡可能的接近初始圖像。

大數(shù)據(jù)

圖 3. 圖左,條件 GAN(Conditional GAN),由 Mirza 等人提出,可以根據(jù)條件(class-condition)合成圖像;判別器根據(jù)條件類判定圖像為真或假。圖右,InfoGAN,其判別器還可以估計類別標(biāo)簽。

大數(shù)據(jù)

圖 4. ALI/BiGAN 的結(jié)構(gòu),由三個網(wǎng)絡(luò)構(gòu)成。其中一個是判別器,還有一個網(wǎng)絡(luò)將噪聲向量從隱空間映射到圖像空間(解碼器,以 G 表示),最后一個網(wǎng)絡(luò)(編碼器,以 E 表示)將真實(shí)圖像從圖像空間映射到隱空間。

4. 訓(xùn)練 GAN

A. 引言

GAN 的訓(xùn)練目標(biāo)是獲得令判別器分類準(zhǔn)確率最大化的參數(shù),以及獲得最大化欺騙判別器的生成器參數(shù)。訓(xùn)練過程已在圖 5 中總結(jié)。

訓(xùn)練的代價由一個價值函數(shù) V(G,D) 評估,其包含了生成器和判別器的參數(shù)。

訓(xùn)練過程可表示如下:

大數(shù)據(jù)

訓(xùn)練過程中,其中一個模型的參數(shù)被更新,同時另一個模型的參數(shù)固定不變。Goodfellow 等人證明對于一個固定的生成器存在唯一的最優(yōu)判別器 D? (x) = p_data(x) /(p_data(x)+p_g(x))。他們還證明了生成器 G 在 pg(x) = pdata(x) 的時候是最優(yōu)的,這等價于最優(yōu)判別器對所有的樣本 x 都給出 0.5 的概率值。換個說法就是當(dāng)判別器 D 被最大化迷惑而無法區(qū)分真假樣本的時候,生成器 G 是最優(yōu)的。

理想情況下,判別器將被訓(xùn)練到對當(dāng)前生成器為最優(yōu);然后生成器再次被更新。然而實(shí)際情況下,判別器可能無法訓(xùn)練到最優(yōu),因此常用的策略是,判別器只會經(jīng)過少量的迭代訓(xùn)練,而且生成器和判別器同步更新。此外,生成器通常使用一種交替的、非飽和的訓(xùn)練規(guī)范,即使用 max_G log D(G(z)),而不使用 min_G log(1 ? D(G(z)))。

盡管理論上存在唯一的解,GAN 的訓(xùn)練還是存在著挑戰(zhàn),經(jīng)常出現(xiàn)不穩(wěn)定的狀況,原因有好幾個。一種提升 GAN 訓(xùn)練效率的辦法是追蹤訓(xùn)練過程中可能遇到的經(jīng)驗(yàn)癥狀,這包括:

兩個模型(生成器、判別器)無法收斂 [5];生成器「崩潰」,即用不同的輸入生成相似的樣本 [25];判別器的損失很快收斂為零,從而沒有足夠強(qiáng)的梯度路徑可以繼續(xù)更新生成器。

大數(shù)據(jù)

圖 5. GAN 訓(xùn)練的主要循環(huán)。新型數(shù)據(jù)樣本 x’ 可以通過傳遞隨機(jī)樣本得出,z 為抽取的隨機(jī)噪聲并作為生成器網(wǎng)絡(luò)的輸入。生成器更新一次之前,判別器可能需要更新 k 次。

B. 訓(xùn)練技巧

用于圖像生成的 GAN 訓(xùn)練的第一個重大改進(jìn)是 Radford et al. [5] 提出的 DCGAN 架構(gòu)。該研究是計算機(jī)視覺領(lǐng)域之前使用的 CNN 架構(gòu)的進(jìn)一步探索,并且?guī)砹艘幌盗袠?gòu)建和訓(xùn)練生成器、判別器的準(zhǔn)則。在 Section III-B 中,我們提到帶步長的卷積和小步長卷積的重要性 [27],它們是架構(gòu)設(shè)計的重要組件。這允許生成器和判別器學(xué)習(xí)優(yōu)秀的上采樣和下采樣操作,這些操作可能提升圖像合成的質(zhì)量。具體到訓(xùn)練中,研究者推薦在兩種網(wǎng)絡(luò)中使用批量歸一化 [28],以穩(wěn)定深層模型中的訓(xùn)練。另一個建議是最小化用于提升深層模型訓(xùn)練可行性的全連接層的數(shù)量。最后,Radford et al. [5] 認(rèn)為在判別器中間層使用 leaky ReLU 激活函數(shù)的性能優(yōu)于使用常規(guī)的 ReLU 函數(shù)。

Salimans et al. [25] 進(jìn)一步提出穩(wěn)定 GAN 訓(xùn)練的啟發(fā)式方法。首先,特征匹配稍稍改變生成器的目標(biāo),以增加可獲取的信息量。具體來說,判別器仍然需要訓(xùn)練來區(qū)分真樣本和假樣本,但是生成器的訓(xùn)練目標(biāo)是匹配判別器中假樣本和真樣本的期望中間激活值(特征)。第二,小批量判別(mini-batch discrimination)向判別器額外添加輸入,該特征對小批量中的給定樣本和其他樣本的距離進(jìn)行編碼。目的在于防止模式崩潰(mode collapse),因?yàn)榕袆e器能夠輕易判斷生成器是否生成同樣的輸出。

第三個啟發(fā)式技巧是啟發(fā)式平均(heuristic averaging),如果網(wǎng)絡(luò)參數(shù)偏離之前值的運(yùn)行平均值,則會受到懲罰,這有助于收斂到平衡態(tài)。第四個技巧是虛擬批量歸一化(virtual batch normalization),它可減少小批量內(nèi)樣本對其他樣本的依賴性,方法是使用訓(xùn)練開始就確定的固定參考小批量(reference mini-batch)樣本計算歸一化的批量統(tǒng)計(batch statistics)。

最后,單邊標(biāo)簽平滑(one-sided label smoothing)將判別器的目標(biāo)從 1 替換為 0.9,使判別器的分類邊界變得平滑,從而阻止判別器過于自信,為生成器提供較差的梯度。S?nderby et al. [29] 改進(jìn)了這個想法,他在將樣本饋送至判別器之前向樣本中添加噪聲來挑戰(zhàn)判別器。S?nderby et al. [29] 認(rèn)為單邊標(biāo)簽平滑偏向最佳判別器,而他們的技術(shù)——樣本噪聲(instance noise)使真樣本和假樣本的流形(manifold)更加接近,同時防止判別器輕易找到完全分離真假樣本的判別器邊界。該技巧在實(shí)踐中可以通過向合成圖像和真實(shí)圖像中添加高斯噪聲來實(shí)現(xiàn),使標(biāo)準(zhǔn)差隨著時間逐漸減小。后來 Arjovsky et al. [26] 把向數(shù)據(jù)樣本添加噪聲來穩(wěn)定訓(xùn)練的過程形式化。

C. 成本函數(shù)的修正

1)GAN 成本函數(shù)的泛化:Nowozin et al. [30] 認(rèn)為 GAN 訓(xùn)練可以泛化至不僅最小化 JS 散度(Jensen-Shannon divergence),同時還最小化 f 散度的估計值。這些可以稱為 f-GAN。

2)防止梯度消失的其他成本函數(shù):Arjovsky et al. [32] 提出 WGAN,一種帶有其他成本函數(shù)的 GAN 網(wǎng)絡(luò),該函數(shù)從近似 Wasserstein 距離中推導(dǎo)出。

7. 討論

A. 開放性問題

Mode Collapse:如第四章所述,GAN 的普遍問題是生成器崩潰(generator collapsing),只能輸出一小類類似樣本(部分崩潰),最壞的情況是僅能生成一個簡單樣本(完全崩潰)[26], [48]。訓(xùn)練不穩(wěn)定——鞍點(diǎn):在 GAN 中,損失函數(shù)的海森矩陣(Hessian)變得非正定。因此,二階矩陣非正定只能找到一個鞍點(diǎn)而不是局部極小值。

B. 結(jié)論

對 GAN 的研究興趣不只是因?yàn)樗鼈兛梢詮臐撛诳臻g和數(shù)據(jù)空間之間的映射和逆映射中學(xué)習(xí)深度、高度非線性的映射,還因?yàn)樗鼈兛梢岳么罅糠菢?biāo)注圖像數(shù)據(jù),這種操作類似深度表征學(xué)習(xí)。在 GAN 訓(xùn)練中,存在很多理論和算法的發(fā)展機(jī)會。有了深度網(wǎng)絡(luò)的幫助,新應(yīng)用存在大量機(jī)會。

極客網(wǎng)企業(yè)會員

免責(zé)聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請進(jìn)一步核實(shí),并對任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對有關(guān)資料所引致的錯誤、不確或遺漏,概不負(fù)任何法律責(zé)任。任何單位或個人認(rèn)為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識產(chǎn)權(quán)或存在不實(shí)內(nèi)容時,應(yīng)及時向本網(wǎng)站提出書面權(quán)利通知或不實(shí)情況說明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。

2017-10-24
生成對抗網(wǎng)絡(luò)綜述:從架構(gòu)到訓(xùn)練技巧,看這篇論文就夠了
作者:路雪 近日,帝國理工學(xué)院、蒙特利爾大學(xué)等研究機(jī)構(gòu)共同發(fā)表論文并梳理了生成對抗網(wǎng)絡(luò),該論文從最基本的 GAN 架構(gòu)及其變體到訓(xùn)練過程和訓(xùn)練技巧全面概述了生

長按掃碼 閱讀全文