Closed-Form Factorization of Latent Semantics in GANs
Abstract
在經過訓練的用於合成圖像的生成對抗網絡(GANs)的潛在空間中,出現了豐富的語義屬性。為了識別這些用於圖像操縱的潛在語義,以往的方法首先對一組合成樣本進行注釋,然后在潛在空間中訓練監督分類器。但是,它們需要明確的目標屬性定義以及相應的手工注釋,這嚴重限制了它們在實踐中的應用。在這項工作中,我們檢查了GANs學習的內部表征,以無監督的方式揭示潛在的變量因素。通過研究將潛在編碼作為GANs生成器輸入的全連接層的本質作用,我們提出了一種用於潛在語義發現的Closed-Form Factorization方法。進一步從理論和實證兩方面分析了所識別的語義的性質。通過快速高效的實現,我們的方法不僅能夠像最先進的監督方法那樣精確地發現潛在語義,而且還能夠在多個訓練在廣泛的數據集的GAN模型上產生更加通用的語義類。
1 Introduction
生成對抗網絡(GANs)[8]在圖像合成方面取得了巨大的成功。最近的研究[7,14,23,21,25]發現,在學習合成圖像時,GANs會自發地在潛在空間中表示多個可解釋屬性,如人臉合成[23]的性別,場景合成[25]的光照條件。通過正確地識別這些語義,我們可以重用GANs學習到的知識來合理地控制圖像生成過程,從而實現廣泛的編輯應用,如人臉處理[23,9]和場景編輯[25,27]。
解釋GANs的潛在空間的關鍵是找到與人類可理解屬性[7,14,23,21,25]對應的有意義子空間。通過這種方法,將潛在編碼向某個子空間的方向移動,可以相應地改變合成圖像中出現的語義。然而,由於潛在空間的高維性和圖像語義的多樣性,在潛在空間中尋找有效的方向是極具挑戰性的。現有的基於監督學習的方法通常首先隨機抽取大量的潛在代碼,然后合成一組圖像,並在這些圖像上標注一些預定義的標簽,最后利用這些標記的樣本在潛在空間中學習一個分離邊界。為了得到用於訓練邊界的標簽,他們要么引入預先訓練好的語義預測器[7,23],要么利用圖像的一些簡單統計信息(如物體位置和色調)[14,21]。
以前的語義發現方法在很大程度上依賴於預定義的語義和注釋樣例的准備,從而產生了一些關鍵性的限制。一方面,依賴於預定義的語義會阻礙算法應用於語義預測器缺失的情況。另一方面,采樣是不穩定的,因此不同的綜合集合可能導致不同的邊界搜索。此外,為了識別一些罕見的屬性,需要生成相當大數量的樣本,以確保獲得足夠多的正例進行邊界訓練,這可能非常耗時,而且會有偏差。因此,我們沒有利用合成的樣本作為中間步驟,而是直接研究GANs的生成機制來解釋其內部表示。更具體地說,對於所有基於神經網絡的GAN架構,總是采用全連接層作為第一步,將輸入的潛在代碼帶入生成器。它提供了將潛在空間投射到轉換空間的驅動力。這種變換實際上濾掉了潛在空間中一些可以忽略的方向,突出了對圖像合成至關重要的方向。如果我們能夠識別出這些重要的潛在方向,我們就能夠控制圖像生成過程,即編輯合成圖像的語義。
為此,我們提供了一種新的、簡單的closed-form方法,稱為SeFa,用於GANs中的潛在語義分解。與現有方法中常用的三步流水線(即采樣、標記和邊界搜索)不同,我們的算法僅使用GAN模型的學習權重進行語義發現。廣泛的實驗表明,我們的方法能夠以極其快速和有效的實現(即不到1秒)來識別通用的潛在語義。圖1展示了一些操作示例,我們可以在不知道其底層3D模型或姿態標簽的情況下旋轉圖像中的對象。與現有的監督方法和一些最近的無監督基線相比,我們的方法能夠在更大范圍內更准確地識別可解釋的維度。此外,我們的方法是通用的和靈活的,因此它可以很好地支持在多個GAN模型(例如,PGGAN [15], StyleGAN [16], BigGAN[4],和StyleGAN2[17])中發現可理解的語義,這些模型在廣泛的數據集上訓練,如圖1所示。
1.1 Related Work
Generative Adversarial Networks. 近年來,GAN[8]在圖像合成方面取得了顯著進展[22,2,15,4,16,17]。GANs中的生成器能夠以隨機采樣的潛碼作為輸入輸出高保真圖像。現有的GAN模型通常建立在深度卷積神經網絡[22]上。為了將潛碼帶入生成器,我們使用全連接層從卷積層開始的地方將潛碼映射為初始特征映射[22,2,15]。最近,基於風格的生成器對這一思想進行了改進[16,17],其中潛碼被映射成分層風格代碼,然后通過自適應實例歸一化(AdaIN)[13]饋入每個卷積層。在本例中,將完全連接層轉換為樣式映射仍然是生成器處理潛在代碼的第一步。
Latent Semantic Interpretation. 生成模型顯示了從數據中以無監督的方式學習變化因素的巨大潛力。Chen et al. [5] 和 Higgins et al. [12] 提出添加正則化器到訓練過程中顯式地學習表示一個可解釋的因素表征,但因素的數量應該是在訓練前預定義的,且如果他們適用於最近的高保真圖像合成模型,像StyleGAN[16],該因素數量是未知的,。最近的研究發現無條件GANs在中間特征映射[3]和初始潛在空間中自動編碼各種語義[7,14,23,25]。通過正確地識別這些語義,我們能夠忠實地控制圖像生成過程。然而,現有的方法需要准備一組合成圖像,對這些圖像進行語義評分,然后使用圖像-評分對進行監督語義搜索,這受到現有語義預測器的嚴重限制。一些並行工作研究了GANs中的無監督語義發現。Voynov和Babenko[24]將InfoGAN[5]提出的正則化器引入到語義搜索過程中,但需要預定義的語義數量。Harkonen等人[10]提出跳過標記過程,對采樣數據進行主成分分析,尋找潛在空間中的主要方向。但是,這兩種方法都是基於大量的數據抽樣。不同的是,我們提出了一種潛在語義解釋的Closed-Form Factorization方法,它獨立於抽樣,也不需要任何預先監督的信息,如語義標簽或分類器。
2 Methodology
2.1 Problem Statement
在GAN中的生成器G(.)學習將d維的潛在編碼映射到一個高維的圖像空間
。這里
分別表示輸入潛在編碼和輸出圖像。這里有兩種常見的方法去輸入一個向量z到生成器中,如圖2所示。
一種是將z映射為一個卷積層開始的特征映射[22,15],另一種是將z映射為基於layer的風格編碼,通過AdaIN[16,17]控制每個卷積層的輸出特征映射。這兩種方法都需要由全連接層(FC)實現的線性投影來實現映射。因此,我們將生成過程重新表示為:
其中G'(.)表示生成器除了一開始的可學習FC層的剩下部分。
GANs的潛在空間已經被證明可以用向量算術性質[22]來編碼豐富的語義知識[7,14,23,25]。這種矢量運算特性通常是通過將潛碼向一定方向移動來實現的
其中表示對應於某個屬性的方向,α即移動步長。之后,出現在輸出圖像
中的寓意將會相應地有所不同。在這項工作中,我們的目標是在無監督的方式下找到語義上有意義的方向n。
2.2 Unsupervised Semantic Factorization
從等式(2)中我們觀察到語義實際上是由潛在方向n決定的,它獨立於采樣編碼z,換句話說,我們希望找到能最大程度引起 I 移位的n,而不是z。根據等式(1),G'(·)是固定的,所以 I 的變化取決於y。在這里,我們做一個假設,一個大y的變化將導致 I 大量內容的變化。從這個角度來看,我們的目標變成尋找會導致y的重大變化的方向n。
為了更好地模擬n和y之間的關系,我們重新討論了由連接潛在編碼和生成器的完全連接層實現的線性投影。分別表示權重和偏差,其中m是投射空間的維度。然后,我們有
。在使用等式(2)調試潛在編碼后,我們可以計算潛在編碼的變化:
從等式(3)中可以看出,要使y發生較大的變化,需要找到一個方向,使這個方向在A的“投影”后產生較大的范數。直觀上,全連接層(A)中的這種轉換起到了本質的“語義選擇器”作用。對於在潛在空間中編碼的任何語義(n),它都必須經過這個選擇器才能在最終的合成(I)中反映出來。因此,我們通過解決下面的優化問題,將這個投影分解作為探索潛在語義的指導:
其中|| · ||2表示L2范數。這里設置α=1,對所有方向使用單位向量來保證他們是可比較的
上面是只尋找一個語義方向,如果變成尋找k個最重要的語義方向{n1, n2, ... , nk},等式(4)變為:
其中N= {n1, n2, ... , nk}表示top-k的語義
為了解決該問題,這里介紹Lagrange Multiplier(拉格朗日乘數法):
通過對每個ni求偏導,我們得到:
從等式(7)可見所有可能的解決方案應該是矩陣ATA的特征向量。因此,為了得到最大的目標函數值,並讓互相之間是可區分的,我們選擇N的列作為與k個最高特征值有關的ATA的特征向量
2.3 Property of the Discovered Semantics
在這一部分中,我們將討論已發現語義的一些重要性質。如2.2節所述,所有語義方向都是矩陣ATA的特征向量,A為正半定。因此,我們總是有特征分解:
其中Λ是對角矩陣,表示特征值,Q為正交矩陣,包含所有的特征向量。
很明顯,每個ni都是Q的列。因此有NTN = Ik,其中 Ik表示k維恆等矩陣。其意味着我們的算法找到的所有語義方向在編碼空間中互相都是正交的。所以有:
這意味着FC的輸出在不同方向上的變化也是相互正交的。基於這兩個觀察,我們希望與相關的語義互相之間是解耦合的
3 Experiments
在本節中,我們對所提出的方法的有效性進行了實證評估。在進入細節之前,我們首先介紹在這項工作中使用的模型和數據集以及實現細節。
Models and Datasets. 我們對最先進的GAN模型進行了廣泛的實驗,包括PGGAN[15]、StyleGAN[16]、BigGAN[4]和StyleGAN2[17]。他們在不同的數據集上接受訓練,包括人臉(CelebA-HQ[15]和FF-HQ[16])、動畫人臉[1]、場景和物體(LSUN[26])、街景[19]和ImageNet[6]。為了對人臉進行定量分析,我們使用ResNet-50[11]在CelebA數據集[18]上訓練一個屬性預測器,遵循之前的工作[23]。
Implementation Details. 對於PGGAN,我們將算法應用到FC的第一層。對於使用基於樣式生成器的StyleGAN和StyleGAN2,我們選擇每個卷積塊的樣式映射層。我們的算法可以靈活地解釋所有或任何特定的層。具體地說,我們將所有目標層的權重矩陣沿第一個軸連接起來,從而得到一個更大的矩陣。注意,除了潛在空間Z,styleGAN引入了一個更解耦合的空間W[16]。我們在StyleGAN和StyleGAN2的W空間上做實驗,因為w∈W是輸入生成器的代碼,而不是z∈Z。BigGAN將潛在代碼映射到初始特征映射和分層樣式,我們選擇將所有這些全連接層的權重組合在一起。由於BigGAN使用了一個擴展到潛碼的嵌入向量,用於條件合成,我們只使用與潛碼部分(即前半列)相關的權重參數。在進行特征分解之前,我們對權矩陣A的每一行進行歸一化,因為我們更關注方向而不是距離。
3.1 Comparison with Unsupervised Baselines
Post-Annotation of the Discovered Semantics. 在獲得潛在的語義方向之后,我們需要通過賦予它們可解釋的含義來使它們與人類的感知相一致。這里,我們使用現有的監督方法,即InterFaceGAN[23]找到的語義方向作為“ground truth”。對於一個特定的屬性,我們將算法中的所有特征方向與“ground-truth”方向進行比較,並選擇余弦距離最小的方向。表1顯示了結果,我們可以看到,使用我們的方法,在傳統生成器(PGGAN[15])和基於風格的生成器(StyleGAN[16])上,姿勢、年齡和性別都作為主要方向出現。微笑語義不會引起圖像的明顯變化(即只有嘴部變化),因此不具有高特征值。但是我們的方法仍然可以發現這種變化。
Comparison with Sampling-based Unsupervised Baseline. 然后,我們將我們的方法與基於采樣的無監督基線進行比較,后者是首先對一組潛在代碼進行采樣,然后對這些樣本進行PCA(主成分分析),以找到主要方向[10]。這里,我們使用500K樣本進行PCA。從表1可以看出,基於采樣的方法在傳統的生成器上是失敗的,因為潛碼只是服從正態分布。對正態分布的數據進行PCA不能給出有意義的方向。同時,我們的方法在StyleGAN的W空間上也取得了較好的結果。例如,姿態pose在PCA中被識別為第9個方向,而在我們的算法中被識別為第1個方向。此外,我們的方法顯示了一個與“ground truth”較小的距離。值得一提的是,我們的方法不依賴於采樣數據,因此更加穩定。我們還在圖3中顯示了一些定性結果。我們可以看到,我們的結果(行(b))更接近那些由監督方法InterFaceGAN(行(c))取得的結果。例如,當使用StyleGAN上的PCA編輯pose時,身份和發型會發生變化(row (a))。
Comparison with Learning-based Unsupervised Baseline. InfoGAN[5]提出了以無監督的方式顯式地學習因數分解表示。我們將我們的方法與通過添加正則化器使互信息[20]最大化的PGGAN模型進行比較,如圖4所示。我們有兩個主要優勢。首先,InfoGAN要求在訓練過程之前知道factor的數量。如果我們想要添加更多的語義,模型應該從頭開始重新訓練。其次,我們的算法識別由GANs自動學習的語義,它比附加的正則化器學習的語義更准確。以圖4中的姿態操作為例,使用Info-PGGAN進行編輯時,頭發顏色會發生變化。
3.2 Comparison with Supervised Approach & Semantic Property Analysis
我們將我們的算法與用於發現潛在語義的最先進的監督方法(InterFaceGAN[23])進行比較,從(a)的視角查看不同的語義如何互相解耦合,以及(b)的視角看如何識別語義的多樣性。
Disentanglement Comparison. 我們執行重評分分析,以定量地評估不同語義之間的解耦性。具體來說,我們首先隨機抽取2000幅圖像,然后按照一定的語義方向對它們進行操作,最后使用預先訓練好的屬性預測器來檢查在操作過程中不同屬性對應的分數有何變化。表2為比較結果。我們可以看到,我們的非監督發現的語義顯示了類似於監督方法的解耦屬性。例如,姿勢和微笑幾乎獨立於其他三個屬性,而性別,年齡,眼鏡是高度相互糾纏的。一個有趣的觀察是,當使用InterFaceGAN操作年齡和性別時(表2(a)),性別得分總是增加。然而,使用我們的方法(表2(b)),性別得分在操縱性別時增加,而在操縱年齡時減少。這是因為即使我們的算法也不能完美地將年齡和性別分離(這可能是由於數據偏差[23]造成的),邊界本身就被分離了,正如2.3節所證明的那樣。例如,“男性化+老齡化”和“女性化+老齡化”在潛在空間中也是兩個正交的方向。此外,我們的方法識別的方向的標簽是使用InterFaceGAN分配的(見第3.1節),它不是100%准確的。比如,性別和眼鏡被分配到同一個方向。如果我們手工標記這些方向,可能會導致更好的解耦性。
Diversity Comparison. 監督方法高度依賴於可用的屬性預測器。相比之下,我們的方法更通用,能夠找到更多樣化的語義。如圖5(a)所示,我們成功地識別出了發色、發型、膚色對應的方向。由於這些屬性的預測器在實踐中是不容易獲得的,這就超越了TnterFaceGAN方法。此外,監督方法通常受到訓練目標的限制。例如,InterFaceGAN被提出來處理二進制屬性。相比之下,我們的方法可以識別更復雜的屬性(例如多個特征方向控制同一個屬性),如圖5(b)中的不同發型。
Real Image Manipulation. 在InterFaceGAN[23]之后,我們將GAN反演[9,27]方法引入到這項工作中,以實現真實的圖像處理。更具體地說,給定一個要編輯的目標圖像,我們首先將其投影回潛在代碼,然后使用發現的潛在語義來調整反向代碼。圖6給出了一些例子。我們可以看出,通過我們的closed-form方法找到的語義足夠精確,可以操縱真實的圖像。例如,我們設法在輸入圖像(圖6第四列)中添加眼鏡或刪除眼鏡。
3.3 Generalization to Other GAN Models
在這一部分中,我們通過將我們的算法應用於在不同數據集上訓練的各種最先進的GAN模型來驗證我們算法的泛化能力。
Layer-wise Interpretation on StyleGAN and StyleGAN2. 我們的算法是通用的和靈活的,這樣它可以用來解釋新型基於風格生成器[16,17]的部分層。從動畫人臉、貓、汽車、教堂和街景中識別出的層次語義如圖7所示。回想一下,我們沒有與這些語義對應的屬性預測器。我們還進行了一項用戶研究,通過在每個層次上操作前50個特征方向的圖像,詢問人們有多少方向會導致明顯的內容變化,以及有多少方向是有語義意義的。表3表明,我們的closed-form解決方案確實可以找到解釋因素,甚至可以從GAN模型的某些特定層中找到解釋因素。
Results on Conditional BigGAN. 我們還解釋了大型BigGAN[4]模型,該模型在ImageNet[6]的1000個類上有條件地進行了訓練。注意BigGAN將一個類別衍生的嵌入向量與潛在代碼連接起來,以實現條件合成。在這里,我們只關注語義發現的潛在代碼部分。從圖8可以看出,我們的閉型算法發現的語義可以忠實地應用於不同類別的圖像處理。這驗證了該方法的泛化能力。
4 Conclusion
在這項工作中,我們提出了一個closed-form的解決方案SeFa,分解GANs所學習的潛在語義。大量的實驗證明了我們的算法的有效性,它顯示了強大的識別功能,從不同類型的GAN模型在無監督的方式。