從泛化性到Mode Collapse:關於GAN的一些思考

從泛化性到Mode Collapse:關於GAN的一些思考

來自專欄 生成對抗網路前沿研究

這篇文章是我對我們MAPLE實驗室(MAPLE),最近一年半來和GAN相關研究的一個簡要的總結。本來是回答一個知乎上的問題的,現在做個簡單的整理,做為一篇獨立的文章發在這裡。

(我們今後會持續分享更多的技術和理論,敢興趣的朋友可以關注這個知乎帳號)

GAN的研究在最近1-2年內吸引了大量的工作,特別是和應用相關的研究。但相關的理論相對來說還比較少。主要集中在:GAN是否能生成新的樣本(泛化性)、如何去評價、比較和量化這種泛化性?以及造成GAN的mode collapse的原因是什麼?怎麼解?

進一步來說,泛化性和mode collapse這兩個問題是獨立,還是有本質的聯繫?

首先,前一個問題「泛化性」是個非常重要的問題,這關係到GAN這類生成模型本身是不是有意義的 -- 它能不能生成和發現的樣本和變化模式,而不僅僅是記住已有的樣本和模式。

同時,這種泛化能力對提高基於GAN的半監督模型的性能也是非常重要的,因為只要具有泛化能力的模型,才能產生有價值的新樣本來增強訓練集,並幫助模型通過挖掘出更有信息的類內和類間變化來提高小樣本情況下的分類準確度。

第二個問題mode collapse,是在實際應用中真實發生的現象,如何去刻畫這個現象的本質,並找出應對之道,也是我們重點關注的。另外,找出mode collapse 和泛化性的關係,通過現象去認識本質,也是今後需要重點關注的方向。

===================================

以下是原文。

目錄

一、理論

二、評價指標論

三、基於GAN的流型分析和半監督學習中的應用

四、從幾何角度研究Mode collapse問題

五、泛化性和mode collapse 的關係

====================================

一、理論

關於GAN的理論,可以把GAN模型按照正則化、非正則化模型分成兩大類。

非正則化包括經典GAN模型以及大部分變種,如f-GAN,Least Square GAN,EBGAN等等。這些模型的共同特點是不對要生成的樣本的分布做任何先驗假設,嘗試去解決一般性的數據樣本生成問題。然而,由於缺少正則化的先驗條件,其模型的泛化性是存疑的。

換句話來說,泛化性說的是:所有模型都是需要先用有限的訓練樣本來訓練的,那麼由這些有限樣本訓練得到的模型可不可以從這些有限訓練樣本中生成出新的樣本,而非簡單地記著訓練集

目前看來,無論從理論上還是實踐上,非正則化的模型都無法證明他們的泛化能力。

這時候,如果我們給要生成的數據加入一些先驗的條件,比如這些「數據的分布密度在空間中變化速度是有限」的這樣的條件,是不是就可以解決泛化性的問題。這就是構建正則化GAN的動機。

目前看來,正則化模型的從理論上是成功的,已經從理論上證明了他們的泛化性能。這些模型包括Loss-Sensitive GAN, WGAN等。他們都是基於Lipschitz正則條件。對嚴格證明感興趣的朋友可以參看論文 Loss-Sensitive Generative Adversarial Networks on Lipschitz Densities [pdf] 和我們的系列分享

齊國君:條條大路通羅馬LS-GAN:把GAN建立在Lipschitz密度上?

zhuanlan.zhihu.com圖標齊國君:廣義LS-GAN(GLS-GAN) :現在 LS-GAN和WGAN都是這個超模型的特例了?

zhuanlan.zhihu.com圖標

隨之而來的可以進一步研究的問題是:除了Lipschitz正則化條件,還有沒有其他的正則化先驗條件,可以從理論上保證泛化性?這個問題比較理論,但對深入理解GAN模型可以做什麼和不可以做什麼具有非常重要的意義。這點就像很多物理定理一樣,都有其適用範圍。宣稱適用一切條件的方法肯定是不存在的。理解演算法的適用範圍就是 GAN理論要回答的問題。

二、評價指標

當然,僅僅從理論上分析GAN模型的泛化性是不夠的。我們還需要實驗去驗證他們。很遺憾的是,目前用來衡量不同GAN模型的實驗指標都存在很大的問題。比如Inception Score,它用來衡量生成圖片的質量,基於的假設是:高質量的圖片,用一個分類網路(inception)對它進行分類後得到的類別應該是明確的。遺憾的是,任何一個分類器都很難覆蓋所有可能的圖片類別、而它的分類準確度也不可能是完美的。而且,即便有這麼一個分類器,高inception score從邏輯上也只是個高質量圖片的必要非充分條件。

更重要的是,inception score完全不反應模型的泛化性,即生成正式圖片的能力。所有第二個可以研究的問題是:我們如何設計一個指標去比較不同GAN模型的泛化能力,這點也是至關重要的。

目前,已經有了一些有益的嘗試。比如,同樣地在Loss-Sensitive Generative Adversarial Networks on Lipschitz

Densities [pdf]這篇論文里,提出了一個MRE(Minimum Reconstruction

Error)的指標來度量泛化性。

它是這樣工作的。在一個數據集上,比如CIFAR-10,把它分成訓練集、驗證集和測試集三個部分。我們在訓練集上訓練一個GAN模型,在驗證集上調試超參數,這樣模型在訓練過程中就沒有用到任何測試樣本。那麼,如果GAN有泛化性,它就有能力比較好地去生成這些未見到的測試樣本。

下面這份圖給出了MRE的測試結果。可以看到,正則化的GAN,包括LS-GAN, GLS-GAN, WGAN, WGAN-GP比非正則話的結果DCGAN要好,而且訓練過程更加得穩定,不像DCGAN那裡存在不穩定地波動。

圖:隨訓練過程,在測試集上MRE的變化。

同時,如下圖結果,從數值上看,GLS-GAN (Generalized Loss-Sensitive GAN),比其他GAN模型,不管正則化的還是非正則化的,就要有更小的MRE誤差。這點不難理解,因為其他正則化模型都是它的一個特例。

圖:在tiny ImageNet上,最終在測試集上的MRE。越小泛化性越高。

換句話來說,也回到理論問題上,目前的正則化都是基於Lipschiz條件的,GLS-GAN是Lipschiz正則化里最大的一個超類。如下圖所示。

圖:正則化與非正則化GAN模型。

那麼有沒有其他的,同樣基於Lipschiz正則條件的,不包含在GLS-GAN里的模型,也是一個未解答的問題

顯然MRE的思路秉承了一般機器學習問題的評測思路,基於對訓練數據、驗證數據和測試數據集的劃分。

那麼,一個新的問題是,有沒有更加直接的指標可以不依賴於具體數據集,可以對GAN模型的泛化性進行更加直接地度量

今天先寫到這裡,後面有時間接著談一談GAN在演算法和應用方面的可能方向,特別是小訓練樣本下的思路。

三、基於GAN的流型分析和半監督學習中的作用

接著昨天的討論。

具有泛化能力GAN的一個重要作用是:我們第一次有了一個比較理想的工具,可以用來表示和描述數據流型(manifold)。之前,如果我們想表示流型,一般是藉助於一個圖模型(Graph)。在圖模型里,我們用節點表示數據點,用邊表示數據直接的相似性。有了Graph,我們可以定量計算數據點上函數的變化。比如,在分類問題中,我們感興趣的函數是分類函數,輸出的是數據點的標籤。有了基於Graph的流型,我們就可以建立一個分類模型:它輸出的分類標籤在相似樣本上具有最小的變化。這個就是一種平滑性的假設,是基於圖的半監督方法的核心假設。

圖:基於圖的流型表示和半監督分類。

儘管這種基於圖的半監督方法取得了很大的成功,但是它的缺點也是很明顯的。當數據點數量非常巨大的時候,構建這樣一個Graph的代價會非常大。為了解決這個問題, Graph為我們提供了一個很好的基礎。通過訓練得到的生成器G(z),其實就是一個非常好的流型模型。這裡z就是流型上的參數坐標,通過不斷變化z,我們就可以在高維空間中划出一個流型結構。

有了這樣一個流型和它的描述G,我們可以在數據流型上研究各種幾何結構。比如切向量空間、曲率,進而去定義在流型上,沿著各個切向量,函數會如何變化等等。好了,這裡GAN就和半監督學習聯繫起來了。以前我們是用Graph這種離散的結果去研究分類函數的變化,並通過最小化這種變化去得到平滑性假設。

現在,有了流型直接的參數化描述G(z),我們就能直接去刻畫一個函數(比如分類問題中的分類器)在流型上的變化,進而去建立一個基於這種參數化流型的半監督分類理論,而非去藉助基於圖的流型模型。

具體來說,半監督圖流型中,我們常用到Laplacian矩陣來做訓練;現在,有了參數化的流型後,我們就可以直接定義Laplace-Beltrami運算元,從而實現半監督的訓練。下面是基於這個方法在一些數據集上得到的結果。更多的結果可以參考這篇論文「Global versus Localized Generative Adversarial Networks」[pdf]。

這裡,有個比較精細的問題。通常的GAN模型,得到的是一個全局的參數話模型:我們只有一個z變數去參數化整個流型。事實上,在數學上,這種整體的參數化王是不存在的,比如我們無法用一個參數坐標去覆蓋整個球面。這時我們往往要藉助於通過若干個局部的坐標系去覆蓋整個流型。

同時,使用局部坐標系的另一個更加實際的好處是,我們給定一個目標數據點x後,整體坐標系G(z)要求我們必須知道對應的一個參數坐標z;而使用局部坐標系後,我們就直接可以在x附近去建立一個局部坐標系G(x,z)去研究流型周圍的幾何結構,而不用去解一個逆問題去去它對應的z了。這個極大地方便了我們處理流型上不同數據點。

圖:流型的局部化參數表示。(「Global versus Localized Generative Adversarial Networks」[pdf])

沿著這個思路,我們可以利用參數化的局部坐標和它表示的流型來研究一系列問題。

1. 比較理論的研究可以專註於,有了這些局部參數表示,如何去定義出一整套黎曼流型的數學結構,比如局部的曲率,黎曼度量,和如果沿著流型去算測地線和兩個數據點之間的測地距離。

2. 從應用的角度,給定了一個圖像x,用局部表示G(x,z)可以對這個x在它的局部領域中做各種編輯操作或者控制圖像的各種屬性。這個可以結合有監督的對局部參數的意義進行訓練。

當然,從幾何和流型參數化的角度還可以給出對GAN更深入的理解,比如對mode collapse問題。今天先寫到這裡,後面繼續討論如何從流型collapse 的角度來解釋和避免GAN的mode collapse

四、從幾何角度研究Mode collapse問題

當然,從幾何和流型參數化的角度還可以給出對GAN更深入的理解,比如對mode collapse問題。在GAN的相關研究中,mode collapse是一個被廣泛關注的問題。有很多相關的論文在從不同角度來研究和解決這個問題。

而基於Localized GAN所揭示的幾何方法,我們可以從流型局部崩潰的角度來

解釋和避免GAN的mode

collapse。具體來說,給定了一個z,當z發生變化的時候,對應的G(z)沒有變化,那麼在這個局部,GAN就發生了mode collapse,也就是不能產生不斷連續變化的樣本。這個現象從幾何上來看,就是對應的流型在這個局部點處,沿著不同的切向量方向不再有變化。換言之,所有切向量不再彼此相互獨立--某些切向量要麼消失,要麼相互之間變得線性相關,從而導致流型的維度在局部出現缺陷(dimension

deficient)。

為了解決這個問題,最直接的是我們可以給流型的切向量加上一個正交約束(Orthonormal

constraint),從而避免這種局部的維度缺陷。下圖是在CelebA 數據集上得到的結果。可以看到,通過對不同的切向量加上正交化的約束,我們可以在不同參數方向上成功地得到不同的變化。

上圖:在給定輸入圖像的局部坐標系下對人臉的不同屬性進行編輯。

上圖:在給定輸入圖像的局部坐標系下對人臉的不同屬性進行編輯。

值得注意的是,儘管我們是從局部GAN的角度推導和實現了對切向量的正交化約束,這個思路和方法同樣適用於傳統的整體GAN模型。我們只需要在訓練整體GAN模型的同時,在每個訓練數據樣本或者一個batch的子集上也加上這個約束來求取相應的下降梯度就同樣可以訓練整體GAN模型;這個方向可以引申出未來的相關工作。

五、泛化性和mode collapse 的關係

表面看來,這兩個問題是不同的,一個是在研究能不能生成新樣本,一個是研究生成樣本的多樣性。

但從道理上來說,有良好泛化性的模型,因為可以較好的逼近真實樣本的分布,所以應該不存在生成樣本多樣性不足的問題的。

但反之則不然:即便沒有mode collapse,也不能保證生成器模型的泛化性。所以從這點讓來看,泛化性是個更廣義的問題。

從某種意義上,泛化性可以看作是,而mode collapse是它表現出來的現象

但是不是研究mode collapse 就不重要了呢?這個也不是這樣子的。對mode collapse這個典型想像的理解,可以有助於為研究生成器的泛化性提供非常有價值的樣本。

比如,在發生mode collapse的地方,該點的密度函數顯然會存在一個很高的峰值,在這個峰附近,密度函數的Lipschitz常數會變得很大。這個提示我們,通過對生成密度做Lipschitz正則化,是有利於幫助我們解決mode collapse問題,同時提高生成器的泛化性的。LS-GAN的成功也證實了這點。

而另一方面,我們上面介紹的通過對切向量做正交約束,進而防止流型維度缺陷和mode collapse的方法, 是不是也能為我們打開一扇從幾何角度提高生成器泛化性的思路呢?這個可以留待後續的研究來揭示。

推薦閱讀:

TAG:生成對抗網路GAN | 深度學習DeepLearning | 機器學習 |