11.06 GAN:「太難的部分我就不生成了,在下告退」

選自 arXiv

作者:David Bau, Jun-Yan Zhu等

機器之心編譯

參與:Panda W

生成對抗網絡(GAN)現在已經能合成極具真實感的圖像了,但 MIT、IBM 和香港中文大學的一項研究表明 GAN 在合成圖像時會遺漏目標分佈中的一些細節。未來的 GAN 設計者如果能夠充分考慮這種遺漏情況,應該能夠打造出更加高質量的圖像生成器。研究者已經公佈了相關論文、代碼和數據。

論文:https://arxiv.org/abs/1910.11626v1

項目:https://ganseeing.csail.mit.edu

生成對抗網絡(GAN)在合成逼真的圖像方面能力出色,但我們不禁要問:怎樣才能知道 GAN 無法生成的東西呢?模式丟失或模式崩塌被視為 GAN 所面臨的最大難題之一,此時 GAN 會忽視目標分佈中的某些部分,然而對於 GAN 中的這一現象,當前的分析工具所能提供的見解非常少。 MIT 的這項研究在分佈層面和實例層面對模式崩塌進行了可視化。 首先,作者部署了一個語義分割網絡,以比較生成的圖像與訓練集的目標分佈中經過分割的目標的分佈。統計數據的差異能夠揭示 GAN 忽視的目標類別。 圖 1a 展示了在一個教堂 GAN 模型中,相比於訓練分佈,人、車和柵欄等目標類別在生成分佈中出現的像素更少。

GAN:「太難的部分我就不生成了,在下告退」

GAN:「太難的部分我就不生成了,在下告退」

圖 1:看 GAN 不能生成什麼:(a)作者比較了 LSUN 教堂訓練集中的目標分割分佈與生成結果的分佈:生成器丟棄了人、車和柵欄等目標。(b)一張真實圖像及其重建圖像的比較,其中一個人和柵欄的實例無法生成。每組圖中,左上角的是真實照片,右上角的是生成的重建圖像,下面兩張是各自的分割映射圖。 然後,給定識別出的省略過的目標類別,作者對 GAN 的遺漏情況直接進行了可視化。具體來說,作者比較了各張照片與 GAN 逆推出的相近圖像之間的具體差異。為了做到這一點,作者放寬了逆推問題的限制,並且求解的是易於解決的逆推 GAN 一個層(而非整個生成器)的問題。 在實驗中,作者應用這種框架分析了在不同場景數據集上訓練的幾種近期的 GAN。作者驚訝地發現,丟失的目標類別並沒有發生畸變、渲染得質量很差或渲染成了噪聲。相反,它們實際上完全沒有渲染,就好像這個物體不是該場景的一部分一樣。圖 1b 給出了一個示例,可以看到,較大的人像被完全跳過了,柵欄的平行線條也被完全忽略。因此,GAN 可能忽視太難處理的類別,同時又能得到平均視覺質量較高的輸出。相關代碼、數據和其它信息參見:ganseeing.csail.mit.edu.

方法

量化分佈層面的模式崩塌 GAN 的系統誤差可通過利用場景圖像的層次結構來分析。每個場景都可以自然地分解為目標(object),這樣可以通過估計組成目標統計數據的偏差來估計與真實場景分佈的偏差。舉個例子,渲染臥室的 GAN 也應該渲染一些窗簾。如果窗簾的統計數據與真實照片的統計數據存在偏差,那麼我們就知道可以通過檢查窗簾來查看 GAN 的具體缺陷。 為了實現這一想法,作者使用了 [44] 提出的統一感知解析網絡來分割所有圖像,這會用 336 個目標類別中的一個類別來標記圖像的每個像素。對於每個圖像樣本,作者收集了每個目標類別的總像素區域,並收集了所有被分割目標類別的均值和協方差統計數據。作者在一個大型生成圖像集以及訓練集圖像上採樣了這些統計數據。作者將所有目標分割的統計數據稱為「生成圖像分割統計數據(Generated Image Segmentation Statistics)」。
圖 2 可視化了兩個網絡的平均統計信息。在每張圖中,每個生成目標類別的平均分割頻率都與真實分佈的情況進行了比較。

GAN:「太難的部分我就不生成了,在下告退」

圖 2:使用生成圖像分割統計數據來理解在 LSUN 臥室數據集上訓練的兩個模型的不同行為。 因為大多數類別都不會出現在大多數圖像上,所以作者按降序對類別進行了分類,然後重點關注了其中最常見的類別。這種比較可以揭示很多當前最佳模型之間的許多具體差異。分析使用的兩個模型都是在同一圖像分佈(LSUN 臥室集)上訓練的,但 WGAN-GP 與真實分佈的差距比 StyleGAN 與真實分佈的差距要大得多。 使用單個數值總結分割的統計差異也是可能的。要做到這一點,作者定義了 Frechet 分割距離(FSD),這類似於常用的 Frechet Inception 距離(FID)度量,但 FSD 是可解釋的:

GAN:「太難的部分我就不生成了,在下告退」

其中,µ_t 是一個訓練圖像樣本上每個目標類別的平均像素數,Σ_t 是這些像素數量的協方差。類似地,µ_g 和 Σ_g 反映了生成模型的分割統計情況。作者在實驗中比較了 10000 個生成樣本和 10000 張自然圖像的統計情況。 生成圖像分割統計數據衡量的是整個分佈:比如它們能夠揭示生成器忽略特定目標類別的情況。但是,它們並不單獨排除應該生成某個目標但卻沒有生成的特定圖像。為了得到進一步的見解,需要一種可視化生成器在每張圖像上的遺漏情況的方法。

量化實例層面的模式崩塌 為了解決上述問題,作者比較了圖像對 (x, x'),其中 x 是真實圖像(包含 GAN 生成器 G 遺漏的特定目標類別),x' 是在可由 GAN 模型層生成的所有圖像的空間上的投射。

  • 定義一個可解決的逆推問題

在理想情況下,能夠找到由生成器 G 完美合成的圖像,並使之與真實圖像 x 保持較近的距離。用數學語言來說,目標是找到

GAN:「太難的部分我就不生成了,在下告退」

,其中

GAN:「太難的部分我就不生成了,在下告退」

,l 是圖像特徵空間中的距離度量。不幸的是,由於 G 中層數較多,之前的方法都無法解決生成器的這個完全逆推問題。因此,作者轉而求解這個完全逆推問題的一個可解決的子問題。作者將生成器 G 分解成了層:

GAN:「太難的部分我就不生成了,在下告退」

其中 g_1, ..., g_n 是生成器的幾個早期層,G_f 是將 G 的所有後期層組合到一起。 任何可由 G 生成的圖像都可由 G_f 生成。也就是說,如果用 range(G) 表示可由 G 輸出的所有圖像的集合,那麼有 range(G) ⊂ range(G_f )。也就是說,G 無法生成任何 G_f 不能生成的圖像。因此,在 range(G_f ) 中可以確定的任何遺漏情況也都是 range(G) 遺漏的地方。 因此,對於層逆推而言,作者通過更簡單地逆推 G_f 的後期層實現了對遺漏情況的可視化:

GAN:「太難的部分我就不生成了,在下告退」

作者表示,儘管最終要找的是中間表徵 r,但從估計的 z 開始能提供很多幫助:對 z 有個初始估計能有助於對更好的 r 值的搜索,這些值更有可能由 z 生成。因此,求解這個逆推問題的過程分為兩步:首先,構建一個近似逆推整個 G 的神經網絡 E,並計算一個估計結果 z_0 = E(x)。之後,求解一個優化問題,以確定一箇中間表徵

GAN:「太難的部分我就不生成了,在下告退」

,其可生成一個重建的圖像

GAN:「太難的部分我就不生成了,在下告退」

,以非常相近地恢復 x。圖 3 展示了這種層逆推方法。

GAN:「太難的部分我就不生成了,在下告退」

圖 3:層逆推方法概況。首先,訓練一個逆轉 G 的網絡 E;這可用於獲取對隱含的 z_0 = E(x) 的初始估計及其中間表徵

GAN:「太難的部分我就不生成了,在下告退」

。然後將 r_0 用於初始化對 r* 的搜索,以得到接近目標 x 的重建 x'。

  • 逐層網絡逆推

通過在更小的問題上預訓練各個層,可以更輕鬆地訓練深度網絡。因此,為了學習逆推神經網絡 E,作者選擇了逐層執行的方法。對於每一層 g_i ∈ {g_1, ..., g_n, G_f },訓練一個小網絡 e_i 以近似地逆推 g_i。也就是說,定義 r_i = g_i(r_i−1),目標是學習一個網絡 e_i,使其能近似計算 r_{i−1} ≈ e_i(r_i)。作者也希望網絡 e_i 的預測能夠很好地保留層 g_i 的輸出,因此需要 r_i ≈ g_i(e_i(r_i))。作者通過最小化左逆推和右逆推損失來訓練 e_i:

GAN:「太難的部分我就不生成了,在下告退」


為了將訓練集中在生成器所得到的表徵的流形附近,作者對 z 進行了採樣,並使用層 g_i 計算了 r_{i−1} 和 r_i 的樣本,因此 r_{i−1} = g_{i−1}(· ·· g_1(z)· ··)。這裡 ||·||_1 表示 L1 損失,作者將 λ_R 設為 0.01 以強調 r_{i−1} 的重建。 一旦所有層都完成逆推後,可為整個 G 組建一個逆推網絡:

GAN:「太難的部分我就不生成了,在下告退」

通過聯合微調這個為以整體逆推 G 而組建的網絡 E*,結果還可得到進一步的優化。作者將經過微調的結果記為 E。

結果 圖 2 和圖 5 展示了在 LSUM 臥室集上訓練的 WGAN-GP、StyleGAN、Progressive GAN 的生成圖像分割統計數據。

GAN:「太難的部分我就不生成了,在下告退」

圖 5:一個臥室生成器的省略情況可視化;這裡測試了基於 lSUM 臥室集的 Progressive GAN。 直方圖表明,對於多種不同的分割目標類別,StyleGAN 能比 Progressive GAN 更好地匹配這些目標的真實分佈,而 WGAN-GP 的匹配最差。 表 1 用 Frechet 分割距離總結了這些差異,證實更好的模型整體上的分割統計情況與真實分佈更加匹配。

GAN:「太難的部分我就不生成了,在下告退」

表 1:用 FSD 總結的生成圖像分割統計數據。
圖 4 在 10000 張圖像的有限樣本集上測量了生成圖像分割統計情況的敏感度。

GAN:「太難的部分我就不生成了,在下告退」

圖 4:生成圖像分割統計情況的敏感度測試結果。
圖 1 和圖 5 給出了使用新提出的方法在教堂和臥室數據集上分析所生成的分割統計情況的結果。這些直方圖表明生成器會部分地跳過困難的子任務。 圖 6 的前 3 列比較了新的逆推方法與之前的逆推方法。圖 6 的後 3 列比較了完整的新方法(f)與兩種消融實驗版本。

GAN:「太難的部分我就不生成了,在下告退」

圖 6:在 LSUN 教堂圖像上比較逆推 Progressive GAN 的生成器的幾種方法

作者應用了上述逆推工具來測試各種生成器合成訓練集之外的圖像的能力。圖 7 使用在 LSUN 臥室集上訓練的 Progressive GAN 展示了應用方法(f)來逆推和重建不同場景的自然照片的定性結果。

GAN:「太難的部分我就不生成了,在下告退」

圖 7:Progressive GAN 臥室圖像生成器的逆推層。

圖 8 展示了在 LSUN 教堂外數據集上訓練的 Progressive GAN 得到的類似定性結果。

GAN:「太難的部分我就不生成了,在下告退」

圖 8:Progressive GAN 教堂外生成器的逆推層。


分享到:


相關文章: