通常的圖像轉(zhuǎn)換模型(如 StarGAN、CycleGAN、IcGAN)無法實現(xiàn)同時訓(xùn)練,不同的轉(zhuǎn)換配對也不能組合。在本文中,英屬哥倫比亞大學(xué)(UBC)與騰訊 AI Lab 共同提出了一種新型的模塊化多域生成對抗網(wǎng)絡(luò)架構(gòu)——ModularGAN,生成的結(jié)果優(yōu)于以上三種基線結(jié)果。該架構(gòu)由幾個可重復(fù)利用和可組合的模塊組成。不同的模塊可以在測試時輕松組合,以便在不同的域中高效地生成/轉(zhuǎn)換圖像。研究者稱,這是首個模塊化的 GAN 架構(gòu)。
據(jù)了解,騰訊 AI Lab 共有 19 篇論文入選 ECCV 2018。
圖1:ModularGAN在多領(lǐng)域圖像到圖像轉(zhuǎn)換任務(wù)的生成結(jié)果(CelebA數(shù)據(jù)集)。
近年來,隨著變分自編碼器、生成式對抗網(wǎng)絡(luò)的引入,圖像生成變得越來越流行。許多研究致力于基于圖像生成的任務(wù),包括屬性到圖像的生成、文本到圖像的生成或圖像到圖像的轉(zhuǎn)換。這些任務(wù)在廣義上都可以歸為條件圖像生成,分別采用屬性向量、文本描述或一幅圖像作為條件輸入,并輸出一幅圖像?,F(xiàn)有的多數(shù)條件圖像生成模型都是從輸入中學(xué)習(xí)一個直接的映射,其中,輸入可能包含一幅圖像或一個隨機噪聲向量及目的條件,以使用神經(jīng)網(wǎng)絡(luò)輸出一幅包含目標(biāo)屬性的圖像。
每個條件或條件類型有效地定義了一種生成或圖像到圖像的輸出域(如人臉圖像的表情域(笑)或性別域(男/女))。對于實際任務(wù),我們希望控制數(shù)量巨大、可變的條件(如:生成微笑的人或棕色頭發(fā)微笑的人的圖像)。創(chuàng)建一個函數(shù)求解條件數(shù)目達(dá)到指數(shù)級的域非常困難。當(dāng)下很多驚艷的圖像轉(zhuǎn)換方法只能將圖像從一個域轉(zhuǎn)換到另一個域。多域設(shè)定存在很多缺陷:(1)需要學(xué)習(xí)指數(shù)級的成對轉(zhuǎn)換函數(shù),計算成本很高并且在很多實際情況下并不可行;(2)在學(xué)習(xí)一個特定的成對映射時不可能利用其它域的數(shù)據(jù);(3)成對的轉(zhuǎn)換函數(shù)可能非常復(fù)雜,以建模差異巨大的域之間的轉(zhuǎn)換。為了解決(1)和(2)中的問題,最近人們引入了多域圖像(及語言)轉(zhuǎn)換模型。代表源/目標(biāo)域信息的固定向量可以用來作為單一模型的條件,以指導(dǎo)轉(zhuǎn)換過程。然而,域間的信息分享在很大程度上是隱含的,函數(shù)映射變得極度復(fù)雜。
本文研究者假設(shè)將圖像生成的過程分為幾個較為簡單的生成步驟可以讓模型學(xué)習(xí)的過程變得更加容易、魯棒。他們訓(xùn)練的既不是成對的映射,也不是復(fù)雜的模型,而是少數(shù)幾個簡單的生成模塊,這些模塊可以組合成復(fù)雜的生成過程。試想將一幅圖像從 A 域(男性皺眉)轉(zhuǎn)換到 C 域(女性微笑):DA → DC。這一過程是可能的,首先變換原始圖像的性別為女性,相較于直接從 A 域變換到 C 域,這種做法會使微笑(DA 女性 ?????→ DB 微笑 ?????→ DC)更加魯棒,原因分為兩個方面:(1)單個變換更簡單,空間上更局域化;(2)根據(jù)定義,與女性微笑最終域相比,中間女性的數(shù)據(jù)量及微笑域更大。換句話說,在本例中,研究者利用更多數(shù)據(jù)來學(xué)習(xí)更簡單的轉(zhuǎn)換函數(shù)。這種直覺與最近介紹的模塊化網(wǎng)絡(luò)相一致,本文在概念上采用并擴展了這種網(wǎng)絡(luò),用于生成圖像任務(wù)。
為了實現(xiàn)這一增量圖像生成過程并使其定型,研究者提出了模塊化的生成對抗網(wǎng)絡(luò) ModularGAN。該網(wǎng)絡(luò)包含幾種不同的模塊,包括生成器、編碼器、重構(gòu)器、轉(zhuǎn)換器和判別器,這幾種模塊聯(lián)合訓(xùn)練。每個模塊擁有特定的功能。用在圖像生成任務(wù)中的生成器模塊從隨機噪聲中生成潛在的圖像表征及一個(最優(yōu)的)條件向量。用于圖像到圖像轉(zhuǎn)換的編碼器模塊將輸入圖像編碼為潛在表征。由生成器或編碼器生成的潛在表征由轉(zhuǎn)換器模塊根據(jù)給定的條件進(jìn)行控制。之后重構(gòu)器模塊重新構(gòu)建轉(zhuǎn)換的圖像(看起來或真或假),并分類圖像的屬性。重要的是,不同的轉(zhuǎn)換器模塊在測試時可以以任意順序動態(tài)組合,形成應(yīng)用特征轉(zhuǎn)換序列的生成網(wǎng)絡(luò),以得到更復(fù)雜的映射和生成過程。
本文的貢獻(xiàn)是多方面的:
提出了 ModularGAN——一種新型的模塊化多域生成對抗網(wǎng)絡(luò)架構(gòu)。ModularGAN 由幾個可重復(fù)利用和可組合的模塊組成。不同的模塊可以在測試時輕松組合,以便在不同的域中高效地生成/轉(zhuǎn)換圖像。據(jù)研究者稱,這是首個模塊化的 GAN 架構(gòu)。
提供了一種端到端聯(lián)合訓(xùn)練所有模塊的有效方法。新模塊可以很容易地添加到本文提出的 ModularGAN 中,現(xiàn)有模塊的子集也可以升級而不影響其它模塊。
演示了如何成功地組合不同的(轉(zhuǎn)換器)模塊,以便將圖像轉(zhuǎn)換到不同的領(lǐng)域。研究者在轉(zhuǎn)換器模塊中利用掩碼預(yù)測來確保僅變換特征圖的局部區(qū)域;保持其它區(qū)域不變。
實驗證明本文的方法在圖像生成(ColorMNIST 數(shù)據(jù)集)和圖像到圖像轉(zhuǎn)換(面部屬性轉(zhuǎn)移)任務(wù)上的有效性。與當(dāng)前最佳的 GAN 模型的定性和定量比較展示了 ModularGAN 獲得的顯著改進(jìn)。
論文:Modular Generative Adversarial Networks
論文地址:https://arxiv.org/pdf/1804.03343.pdf
摘要:已有的用于多領(lǐng)域圖像到圖像轉(zhuǎn)換(或生成)的方法通常嘗試直接將一張輸入圖像映射(隨機向量)到輸出領(lǐng)域的一張圖像。然而,大多數(shù)已有方法的可擴展性和魯棒性有限,因為它們需要為問題中的每對領(lǐng)域構(gòu)建獨立的模型。這導(dǎo)致兩個明顯的缺陷:(1)訓(xùn)練指數(shù)級配對模型的需求,以及(2)訓(xùn)練特定配對映射時,無法利用來自其它領(lǐng)域的數(shù)據(jù)。受近期模塊化網(wǎng)絡(luò)的研究啟發(fā),本文提出了用于多領(lǐng)域圖像生成和圖像到圖像變換的模塊化生成對抗網(wǎng)絡(luò) ModularGAN。ModularGAN 由幾個可重復(fù)利用和可組合的分別實現(xiàn)不同功能(例如編碼、解碼、轉(zhuǎn)換)的模塊構(gòu)成。這些模塊可以被同時訓(xùn)練,利用來自所有領(lǐng)域的數(shù)據(jù),然后在測試階段根據(jù)特定的圖像轉(zhuǎn)換任務(wù),將模塊組合起來構(gòu)建特定的 GAN。這給 ModularGAN 帶來了優(yōu)越的靈活性,可以生成任何所需領(lǐng)域的圖像。實驗結(jié)果表明我們的模型不僅有引人入勝的感知結(jié)果,還超越了當(dāng)前最佳的多領(lǐng)域臉部屬性遷移方法。
實驗
我們首先在合成的多屬性 MNIST 數(shù)據(jù)集上構(gòu)建了圖像生成實驗。接下來,我們將自己的方法與近期的圖像到圖像的臉部屬性遷移方法進(jìn)行了對比。根據(jù)用戶研究和屬性分類的結(jié)果,我們的方法同時實現(xiàn)了定性的和定量的提高。最后,我們構(gòu)建了控制變量實驗來測試模塊 T 的掩碼預(yù)測、cyclic loss 以及多模塊 T 的順序?qū)Χ囝I(lǐng)域圖像遷移的影響。
在 ColorMNIST 上的實驗結(jié)果
圖 4:圖像生成:在 ColorMNIST 數(shù)據(jù)集上的數(shù)字合成結(jié)果。注意,(n) 暗含對數(shù)字的約束,(c) 暗含顏色,(s) 暗含筆畫類型,以及 (b) 暗含背景。由多個字母標(biāo)記的列說明生成結(jié)果依賴于多個屬性。例如:(ncs) 包含數(shù)字、顏色、筆畫的約束?;叶葓D展示了由 T_i 模塊(i∈{c,s,b})內(nèi)在地生成的掩碼。
在 CelebA 上的結(jié)果
圖 5:在 CelebA 數(shù)據(jù)集上的臉部屬性遷移結(jié)果。
定性評估。圖 1 和圖 5 展示了在 CelebA 數(shù)據(jù)集上的臉部屬性遷移結(jié)果,分別使用本文提出的方法和基線方法得到。在圖 5 中,遷移過程是在一張擁有中性表情和黑色頭發(fā)的女性臉部圖像到多個屬性組合之間進(jìn)行的。結(jié)果證明 IcGAN 的表現(xiàn)最差。雖然生成的模型擁有所需的屬性,但臉部的身份特征沒有被很好地保留。此外,生成的圖像也不具備高銳度的細(xì)節(jié),這是由于把圖像編碼到低維隱向量然后又解碼為原圖像的過程中信息丟失所導(dǎo)致的。
由 CycleGAN 生成的圖像比 IcGAN 更好,但存在一些可見的瑕疵。通過使用循環(huán)一致性損失,CycleGAN 保留了輸入圖像的身份一致性,并且僅改變了臉部的特定區(qū)域。StarGAN 生成了比 CycleGAN 更好的圖像,因為它是在完整的數(shù)據(jù)集上訓(xùn)練的,并潛在地利用了來自所有屬性領(lǐng)域的圖像。我們的方法相比基線方法生成了更好的結(jié)果(例如,看看最后一列的微笑或多屬性遷移的結(jié)果)。它使用了多個轉(zhuǎn)換模塊來改變不同的屬性,并且每個轉(zhuǎn)換器模塊學(xué)習(xí)一個特定的從一個領(lǐng)域到另一個領(lǐng)域的映射。這和 StarGAN 不同,StarGAN 在一個模型中學(xué)習(xí)所有的變換。
表 1:AMT 用戶研究:更高的值表示結(jié)果更佳,并表明了偏好。
表 2:分類誤差。更低的值表示結(jié)果更佳,表明了更少的屬性誤差。
圖 6:掩碼可視化:執(zhí)行屬性遷移時的掩碼可視化。當(dāng)使用多個模塊 T 時,我們將不同的掩碼相加。
定量評估。我們訓(xùn)練了一個使用 ResNet-18 架構(gòu)的模型來對 CelebA 數(shù)據(jù)集的發(fā)色、臉部表情和性別 [30] 分類。訓(xùn)練/測試集在其它實驗中也是相同的。已訓(xùn)練的模型以 96.5%、97.9% 和 98.3% 的準(zhǔn)確率對發(fā)色、性別和微笑分類。然后我們把這個已訓(xùn)練的模型應(yīng)用到轉(zhuǎn)換的圖像上,該圖像是在測試集上通過不同方法得到的。
如表 2 所示,我們的模型可以在發(fā)色分類任務(wù)上達(dá)到和 StarGAN 相當(dāng)?shù)姆诸愓`差,并在所有其它任務(wù)上達(dá)到最低的分類誤差。表 1 展示了 AMT 實驗的結(jié)果。該模型在所有任務(wù)(除了性別分類)的最佳遷移屬性上獲得了多數(shù)投票。而且我們的性別遷移模型更好地保留了原始的發(fā)型,這從模型的角度來說是理想的,但有時候會讓挑剔的人感覺不適。
模塊化生成對抗網(wǎng)絡(luò)
網(wǎng)絡(luò)結(jié)構(gòu)
圖像轉(zhuǎn)換。我們首先介紹可執(zhí)行多領(lǐng)域圖像轉(zhuǎn)換的 ModularGAN。在這項任務(wù)中使用了四種類型的模塊:編碼器模塊(E),它把一張輸入圖像編碼為一個中間特征圖;轉(zhuǎn)換器模塊(T),可以修改特征圖的一個特定屬性;重構(gòu)模塊(R),從一個中間特征圖重構(gòu)圖像;以及判別器模塊(D),用來確定一張圖像的真假,并預(yù)測輸入圖像的屬性。
圖 2 展示了圖像轉(zhuǎn)換模塊在訓(xùn)練和測試階段的完整架構(gòu)。在訓(xùn)練階段(圖 2,左),編碼器 E 和多轉(zhuǎn)換器模塊 T_i 連接,每個 T_i 進(jìn)一步和重構(gòu)模塊 R 連接,以生成轉(zhuǎn)換后的圖像。有多個判別器模塊 D_i 連接到重構(gòu)器上,以將生成圖像從真實圖像中分辨出來,并對相應(yīng)的屬性做出預(yù)測。所有的模塊擁有相同的接口,即 E 的輸出、R 的輸入、T_i 的輸入和輸出有相同的形狀和維度。這允許模塊進(jìn)行集成,以在測試時構(gòu)建更復(fù)雜的架構(gòu),如圖 2 所示。
圖 2:ModularGAN 架構(gòu):測試和訓(xùn)練階段的多領(lǐng)域圖像轉(zhuǎn)換架構(gòu)。ModularGAN 有四種不同的模塊構(gòu)成:編碼器模塊 E、轉(zhuǎn)換器模塊 T、重構(gòu)器模塊 R 以及判別器 D。這些模塊可以同時進(jìn)行訓(xùn)練,并根據(jù)測試階段的生成任務(wù)用于構(gòu)建不同的生成網(wǎng)絡(luò)。
在訓(xùn)練階段,一張輸入圖像首先由 E 編碼,得到中間表征 E(x)。然后不同的轉(zhuǎn)換器模塊 T_i 根據(jù)預(yù)指定的屬性 a_i 被用于修改 E(x),得到 T_i(E(x),a_i)。T_i 被設(shè)計用來將特定屬性 a_i 轉(zhuǎn)換成不同的屬性值。例如,將發(fā)色從金色變?yōu)楹稚?,或?qū)⑿詣e從女性變?yōu)槟行?。重?gòu)器模塊 R 重構(gòu)轉(zhuǎn)換后的特征圖為輸出圖像 y=R(T_i(E(x),a_i))。判別器模塊 D 被設(shè)計用來分辨生成圖像 y 和真實圖像 x。它還預(yù)測了圖像 x 或 y 的屬性。
在測試階段(圖 2 右),不同的轉(zhuǎn)換器模塊可以被動態(tài)地組合來構(gòu)建網(wǎng)絡(luò),以按任意的順序控制任意數(shù)量的屬性。
圖像生成。圖像生成任務(wù)的模型架構(gòu)和圖像轉(zhuǎn)換任務(wù)的架構(gòu)基本相同。僅有的不同之處在于,編碼器模塊 E 由一個生成器模塊 G 替換,后者從一個隨機噪聲向量 z 和一個條件向量 a_0(表示輔助信息)生成中間特征圖 G(z,a_0)。條件向量 a_0 可以決定圖像的整體內(nèi)容。例如,如果目標(biāo)是生成數(shù)字的圖像,a_0 可以被用于控制生成哪個數(shù)字,例如數(shù)字 7。模塊 R 可以類似地重構(gòu)初始圖像 x=R(G(z,a_0)),這是擁有任意屬性的數(shù)字 7 的圖像。剩下的架構(gòu)部分和圖像轉(zhuǎn)換任務(wù)中的相同,后者使用一個轉(zhuǎn)換器模塊 T_i 的序列來轉(zhuǎn)換初始圖像,以更改特定的屬性(例如,數(shù)字的顏色、筆畫類型或背景)。
模塊
轉(zhuǎn)換器模塊 (T) 是該模型的核心模塊。它根據(jù)輸入條件 a_i 將輸入特征表示轉(zhuǎn)換成新的特征表示。轉(zhuǎn)換器模塊接收大小為 C×H×W 的特征圖 f 和長度為 c_i 的條件向量 a_i。它的輸出是大小為 C×H×W 的特征圖 f_t。下圖展示了模塊 T 的結(jié)構(gòu)。長度為 c_i 的條件向量 a_i 被復(fù)制到大小為 c_i×H×W 的張量,然后該張量與輸入特征圖 f 拼接。首先使用卷積層將通道數(shù)量從 C + c_i 減少到 C。之后,依次應(yīng)用幾個殘差塊,其輸出用 f' 表示。使用變換后的特征圖 f' 和具有 Tanh 激活函數(shù)的附加卷積層來生成尺寸為 H×W 的單通道特征圖 g。隨后該特征圖 g 根據(jù) g' = ( 1 + g ) / 2 的比例被重新縮放到范圍 (0,1)。預(yù)測的 g' 就像 alpha 掩碼或注意力層:它鼓勵模塊 T 只變換特征圖中與特定屬性變換相關(guān)的區(qū)域。最后,使用掩碼 g'將變換后的特征圖 f'與輸入特征圖 f 相結(jié)合,得到輸出 f_t = g'×f' + ( 1-g' )×f。
圖 3:轉(zhuǎn)換器模塊。