如果不解釋 Wasserstein GAN (wGAN),那關於機器學習的最優傳輸的介紹便不完整。在本系列的第一篇文章中,作者通過原始形式和對偶形式解釋了最優傳輸問題。作者將證明 Kantorovich-Rubinstein 對偶性作為上篇文章結尾,為 wGAN 提供了理論基礎。在這篇文章中,作者將對 wGAN 背後的概念做一個直觀解釋,並討論其動機和含義。
此外,作者使用的是一種更接近於原 Wasserstein 損失的新的正則化形式,而不是像 wGAN 論文中那樣使用 weight clipping。讀完這篇文章後,使用深度學習框架實現這種方法會相對容易些。
簡單的 Chainer 實現連結如下:https://github.com/lucaambrogioni/wasserstein - gans -on- mnist。
讓我們開始吧!
使用 Wasserstein 散度的理由
原 wGAN 論文開篇詳細解釋了 Wasserstein 度量相較其他常用統計散度的優勢。雖然解釋得很有技術性,但要傳達的資訊很簡單:Wasserstein 度量可以用來比較完全不同的概率分佈。這個不同是什麼意思?最常見的例子是兩個分佈支撐集(函式的非零部分子集)不同,即它們分配零概率的集合組是不同的。假設 P(x) 是由概率密度定義的二維空間上的概率分佈。在這個空間中,所有零體積的集合(例如單個點和曲線)在 p 下的概率為零。而 Q(x) 是一種更奇怪的分佈,它將所有概率質量集中在一條曲線上。所有不包含該曲線的集合在 Q 下的概率為零,而對於一些具有零體積的集合,只要它們和該曲線有交集,那就會具有非零概率。具體可理解為下圖:
這兩個分佈之間非常不同,很難比較。例如,為了計算它們的 KL 散度,我們需要計算所有點的密度比 p(x)/q(x)。但是對於外圍空間,Q 甚至沒有密度可言!然而,我們仍然可以使用在上一篇文章中介紹的最優傳輸形式將一個分佈傳輸到另一個分佈!兩個分佈之間的 Wasserstein 距離為:
讓我們詳細分析一下這個表示式。括號裡的積分是在傳輸對映為γ(x_2|x_1) 的情況下,將曲線的點 x_1 傳輸到的外圍空間的點 x_2 的平均成本。外邊的積分是曲線上定義的分佈 Q 下的期望成本平均值。我們可以通過以下四個步驟來總結:(1)從曲線α中選取一個點 x_1,(2)在概率為γ(x_2|x_1) 下從 x_1 到 x_2 傳輸一個粒子,(3)計算從 x_1 到 x_2 傳輸粒子的成本,(4)重複多次並求出成本的平均值。當然,為了確保將 Q 傳輸到目標分佈 P,需要檢查邊緣約束是否滿足:
這意味著從 Q 取樣粒子後進行傳輸時,相當於直接從 P 取樣粒子。注意,該過程並不關心分佈 P 和 Q 是否具有相同的支撐集。因此,我們可以使用 Wasserstein 距離來比較這些極不相同的分佈。
但這和實際應用相關嗎?絕對相關。實際上,我們在概率機器學習中執行的大多數優化都涉及具有不同支撐集的分佈。例如,通常假設自然影像的空間嵌在畫素空間中的低維(超)表面中。如果這個假設成立,自然影像的分佈就類似於我們奇怪的分佈 Q。訓練生成模型需要最小化模型與資料的真實分佈間的散度。在這種情況下,使用 KL 散度並不是最佳的,因為它僅可以定義用密度表示的分佈。這可能是變分自編碼器在自然影像上比 GAN 表現差的原因之一。
Wasserstein 距離的對偶表示
這個變換理解起來比較困難,但我認為正確理解 wGAN 背後的機制非常重要。正如我在上一篇文章中所解釋的,wGAN 的出發點是最優傳輸問題的對偶表示。(1-)Wasserstein 距離的對偶形式由下式表示:
其中 L 是 Lipschitz 連續函式的集合:
Wasserstein 距離的對偶表達具有非常直觀的解釋。函式 f 具有非線性特徵對映,最大限度地增強了兩個分佈的樣本之間的差異。例如,如果 p 和 q 分別是男性和女性面部影像的分佈,則 f 將為具有男性特徵的影像分配正值,並且隨著輸入逐漸接近超級男性的影像,這些值將變得越來越高。換句話說,最優特徵對映 f 將在男性氣質/女性氣質譜上分配連續分數。Lipschitz 約束的作用是阻止 f 任意擴大這些差異。該約束保證瞭如果兩個輸入影像相似,則 f 的輸出也相似。在前面的例子中,髮型的微小差異不應該對男性/女性圖譜產生巨大影響。如果沒有這個約束,當 p 等於 q 和∞時結果將為零,否則通過適當的特徵對映,任何微小的差異都可以被任意放大。
Wasserstein GAN
wGAN 背後的基本思想是最小化資料 p(x) 的取樣分佈與使用深度生成器合成的影像分佈之間的 Wasserstein 距離。影像通過由權重φ引數化的深度生成模型 g 的潛變數 z 來獲得。由此產生的損失具有以下形式:
其中 q(z) 是潛在空間上的分佈。正如我們在上一節中看到的,對偶公式已經包含了非線性特徵對映 f 形式的鑑別器的概念。但無法解析地獲得最優的 f。不過我們可以使用深度網路對 f 進行引數化,並通過隨機梯度下降來學習引數θ。這會導致極小-極大問題:
理論上,每當我們在生成器中進行優化時,鑑別器也要進行全面優化。在實踐中我們同時更新φ和θ。簡直完美!然後便可從最小化 Wasserstein 距離的抽象概念以及一些明顯的近似中得到對抗性訓練。
最後要做的是在我們的學習演算法中強制執行 Lipschitz 約束。在原始的 GAN 論文中,如果權重大於預設常數,則要重新修正它們。在我看來,更規範的方法是放寬約束併為損失函式附加一個隨機正則化項:
當滿足約束時,該項為零,而當約束不滿足時,該項為正值。原始嚴格約束通過將λ趨於無窮大來獲得。在實踐中,我們可以使用有限值λ來優化這個損失。
Wasserstein GAN 真的最小化了最優傳輸散度嗎?
Wasserstein GAN 顯然是一種非常有效的演算法,它遵循一個簡潔的理論原則。但它真的通過最小化生成器和資料分佈之間的 Wasserstein 距離來實現嗎?Wasserstein 距離的對偶形式關鍵取決於在所有可能的 Lipschitz 連續函式下使用最優非線性特徵對映 f 這一事實。約束的使用造成了巨大差異。例如,如果我們使用相同的期望損失差異,但用值在-1 和 1 之間的連續函式替換 Lipschitz 函式,我們會得到總變異散度(total variation divergence)。
在訓練 wGAN 時,我們實際上將 f 限制為某種具有固定架構的深度神經網路。這種約束極大地限制了唯一的 Lipschitz 約束,並且會導致完全不同的散度。從影像到實數的 Lipschitz 函式集的靈活性令人難以置信,且不會引起任何相關的歸納偏置。理論上最優的 f 可以檢測人眼不可見的差異,並且不會特別側重對於人類而言非常明顯的差異。相反,深度卷積網路具有非常特殊的歸納偏置,這種偏置在某種程度上與人類視覺系統的偏置相匹配。因此,有可能 wGAN 的成功並非真的由於 Wasserstein 距離的數學特性,而是由於特徵對映(鑑別器)的引數化所產生的偏置。
好論文感想
最初的 Wasserstein GAN 論文是一個完美的機器學習寫作範例,所有機器學習研究人員都應該努力寫作。論文的出發點是一個簡單而優雅的數學思想,其靈感是對實際資料分佈的觀察。論文的演算法很自然遵循了最優傳輸理論,其中對抗性方案從損失表示中自然湧現。最後,實驗部分設計考究,結果最佳。重要的是,論文中沒出現太大困難,我們大多數人通過初步的直覺和艱苦的工作實現了它。我覺得在我們的領域仍然有許多幾乎唾手可得的成果,掌握它們的關鍵是像本篇論文一樣去遵循優秀論文的思想和理論。