【閱讀筆記】Unsupervised Discovery of Interpretable Directions in the GAN Latent Space

論文名稱:Unsupervised Discovery of Interpretable Directions in the GAN Latent Space

論文作者:Andrey V oynov, Artem Babenko

發行時間:Submitted on 10 Feb 2020, last revised 18 Feb 2020

論文地址:https://arxiv.org/abs/2002.03754

代碼開源:https://github.com/anvoynov/GanLatentDiscovery



一. 概要

本文首次提出使用無監督的方法來研究預先訓練好的 GAN 中潛在空間的可解釋性。這不同於其他如需要人爲標籤、預先訓練的處理模型或某種形式的自我監督方法,無需花費較昂貴的代價就能有效地發現潛在編碼的有效的可解釋性移動方向。此外,提出的方法還能發現之前監督方法難以發現的方向:背景的去除。這說明可以用提出的方法來生成大規模的顯著性實例檢測的數據集,大大節省了人工力。

具體來說作者通過設置兩組一定範圍內的隨機數來分別決定潛在編碼的移動方向移動幅度,然後用訓練完畢的 GAN 模型中的生成器來生成原始潛在編碼生成的圖像和由沿着隨機數確定的方向和位移移動了潛碼生成的圖像,然後通過一個重構組件得到預測的潛碼移動方向和移動幅度。這樣我們可以對其他圖像的潛在編碼進行預測到的移動,得到屬性的操控。如 圖1 所示,由無監督的方法在幾個數據集上發現的可解釋的方向。可見生成效果還是很不錯的。

image-20200610101417283

二. 實現方法

2.1. 方法闡述

image-20200610101708404

圖2 所示,作者僅僅使用預訓練好的 GAN 的生成器 G:zIG:z\to I 來將潛在編碼生成圖片(不使用其辨別器), 這個生成器是不可訓練的,其參數在作者方法的處理階段是固定的。同時作者還提出了兩個可訓練的組件 AARR

  • 數組 ARd×KA \in \mathbb{R}^{d\times K},其中 dd 等於 GG 中潛在空間的維度,KK 等於作者提出的方法試圖解決的方向的數量(這取決於網絡模型的選擇和訓練的數據集)。
    z+A(εek) z+A(\varepsilon e_k)

  • 重構器 RR,其輸入是圖像對 (G(z),G(z+A(εek))(G(z),G(z+A(\varepsilon e_k)),其中 zN(0,I)z \sim \mathcal{N}(0,I)z+A(εek)z+A(\varepsilon e_k) 是移動了的潛在編碼,eke_k 表示軸對齊單位向量 (0,,1k,,0)(0,\cdots,1_k,\cdots,0)ε\varepsilon 是一個標量;輸出是一個標量對 (k^,ε^)(\hat{k},\hat{\varepsilon}),其中 k^\hat{k} 表示預測的方向的索引,ε^\hat{\varepsilon} 表示預測的移動幅度。RR 的目標是: 讓潛碼 zzAA 的第 kk 行決定的方向上移動 ε\varepsilon 實現了圖像轉換,然後 RR 試圖重現這種在潛在空間上的偏移
    R(G(z),G(z+A(εek))=(k^,ε^) R(G(z),G(z+A(\varepsilon e_k))=(\hat{k},\hat{\varepsilon})

作者選擇的優化目標的表達式如下:
minA,REz,k,εL(A,R)=minA,REz,k,ε[Lcl(k,k^)+λLr(ε,ε^)] \mathop{\min}\limits_{A,R}\mathop{\mathbb{E}}\limits_{z,k,\varepsilon}\mathcal{L}(A,R)=\mathop{\min}\limits_{A,R}\mathop{\mathbb{E}}\limits_{z,k,\varepsilon}[\mathcal{L}_{cl}(k,\hat{k})+\lambda\mathcal{L}_{r}(\varepsilon,\hat{\varepsilon})]
上式中分別使用到了分類項 Lcl(,)\mathcal{L}_{cl}(\cdot,\cdot) 交叉熵損失迴歸項 Lr(,)\mathcal{L}_{r}(\cdot,\cdot) 平均絕對誤差。這裏的 λ\lambda 取值爲 0.250.25

  • 對於分類項,作者希望通過該損失使得該方向更容易和其他方向區分開來,換句話說該特徵的解耦性可以更強。
  • 對於迴歸項,這可以使得潛在編碼沿着某方向移動產生的圖像具有連續性,不會突變。

2.2. 實現細節

作者在幾個不同類別的數據集下(手寫數據集MNIST、動漫人臉數據集AnimeFaces、真實人臉數據集CelebA-HQ和自然景觀數據集ImageNet)進行了本文方法的實驗。

2.2.1. 重構器 RR 架構

對於重構模型 RR

  • 對於 MNISTAnimeFaces 數據集,使用 LeNet 骨幹網絡
  • 對於 ImageNetCelebA-HQ 數據集,使用 ResNet-18 作爲骨幹網絡

在所有實驗中,除能 MNIST 的輸入通道爲 22 外,其他數據集的輸入通道都爲 66,因爲輸入 RR 的是圖像對。作者還往其中加上了兩個單獨的 heads 分別用於預測方向索引和位移幅度。

2.2.2. 訓練數據集的數據分佈

  • zN(0,I)z \in \mathcal{N}(0,I)
  • kU{1,K}k \in \mathcal{U}\left \{ 1,K \right \}
  • εU[6,6]\varepsilon \in \mathcal{U}[-6,6]

由於當 ε0\varepsilon \to 0 時,由於位移幅度過小,幾乎不會對位移後的生成圖像造成影響,所以在實驗中作者對 ε\varepsilon 的取值做了以下約束:
ε=sign(ε)max(ε,0.5) \varepsilon = {\rm sign}(\varepsilon)\cdot \max(|\varepsilon|,0.5)

2.2.3. KK 的取值

通常 KK 的取值要等於潛在空間的維度(Spectral Norm GAN維度是 128128BigGAN維度是120120ProgGAN維度是512512)。但是由於模型的限制和數據集的限制,需要有一定的取捨,具體取值如下所示:

  • Spectral Norm GAN 處理 MNIST 數據集時 K=64K=64,因爲若取值爲 128128 時模型很難講較簡單的數字圖形弄出過多的不同的可解釋性方向。
  • Spectral Norm GAN 處理 AnimeFaces 數據集時 K=128K=128
  • BigGAN 處理 ImageNet 數據集時 K=120K=120
  • ProgGAN 處理 CelebA-HQ 數據集時 K=200K=200,因爲若取值爲 512512 時,作者提出的方法很重構出合理的評價指標值。

2.2.4. AA 的選擇

在實驗中作者用到了兩種 AA

  • A is a linear operator with all matrix columns having a unit length:讓矩陣的所有列都是單位長度,通過讓每列除以其對應長度得到。
  • A is a linear operator with orthonormal matrix columns:讓矩陣的列都是正交的,即通過斜對稱矩陣 SSST=SS^T=-S)來參數化 AA

在實驗中觀察到,這兩種 AA 的效果都挺好,並且能發現一些相似的可解釋性方向。通常更常使用單位向量的列的 AA,因爲其能發現更多的方向。但在某些數據集中,第二種 AA 能發現一些更有趣的細節。

三. 實驗

3.1. 實驗配置

3.1.1. 數據集和生成器模型

  1. MNIST,包含 32×3232\times32 大小的圖像,使用 33 個殘差塊的 ResNet-like 生成器的 Spectral Norm GAN
  2. AnimeFaces,包含 64×6464\times64 大小的圖像,使用 44 個殘差塊的 ResNet-like 生成器的 Spectral Norm GAN
  3. CelebA-HQ,包含 1024×10241024\times1024 大小的圖像,使用預訓練好的 ProGAN 生成器 online available
  4. ImageNet,包含 128×128128\times128 大小的圖像,使用在 ILSVRC 數據集上預訓練好的 BigGAN 生成器 online available

3.1.2. 優化器

全部使用 Adam 優化器,固定學習率 0.00010.0001,除了 ProGAN 使用梯度回傳訓練了 10510^5 次外,其他都是 2×1052\times10^5 次。在 MNIST 上的 batch=128,在 AnimeFaces 上的 batch=128,在 CelebA-HQ 上的 batch=10,在 ImageNet 上的 batch=32

3.1.3. 評估參數

  • RCA越高,該方向表示的特徵和其他特徵的解耦度越低,區分性更高
  • DVN越高,該方向決定的特徵的可解釋性越強

3.1.3.1. RCA

RCA,Reconstructor Classification Accuracy,重構分類準確率。作爲重構模型中的分類頭,其處理的是一個多分類問題。因此,RCA越高,該方向表示的特徵和其他特徵的解耦度越低,區分性更高。此外,RCA的計算上還能將我們方法和隨機得到的方法(A:Random Matrix)或沿座標軸移動的方法(A:Identity Matrix)進行結果比對。

3.1.3.2. DVN

DVN,Direction Variation Naturalness,方向變化的自然度。表示在潛空間中讓隱編碼沿着特定方向變化其生成的圖像的自然性。按照常識,自然性應該是沿着某個方向移動生成的圖像和真實圖像之間的變化因子應該是相同的,於是,作者通過使用如下方法達到自然性的計算:

  1. 將我們重構模型 RR 得到的方向和位移組成的方向向量記爲 hFh_{\mathcal{F}},便可構建一個適用於二分類任務的僞標籤數據集 DF={(G(z±hF),±1)}D_{\mathcal{F}}=\left \{ (G(z \pm h_{\mathcal{F}}),\pm1) \right \}
  2. 使用 LeNet 對該數據集進行訓練,得到一個二分類模型 MF:G(z){1,1}M_{\mathcal{F}}:G(z)\to \left \{ -1,1 \right \}
  3. 再利用訓練好的 MFM_{\mathcal{F}} 對對應的真實圖像集 DD 引入僞標籤數據集 DFreal={(I,MF(I)),ID}D_{\mathcal{F}}^{real}=\left \{ (I,M_{\mathcal{F}}(I)),I \in D \right \}
  4. 重新讓這個二分類模型 MFM_{\mathcal{F}}DFrealD_{\mathcal{F}}^{real} 數據集上重新訓練,然後用新的 MFM_{\mathcal{F}}DFD_{\mathcal{F}} 進行測試,得到準確性,即 DVN。

3.2. MNIST

image-20200610225719319

圖6是提出方法在 MNIST 上的定性分析,可見圖像伴隨着潛在編碼沿着學習到的方向移動的效果還是很好的。

爲了衡量方法的解耦能力,作者設計瞭如下實驗:

  • 固定 kkzz,從訓練次數上分別從 01050\sim10^5 均分成 55 份取對應步數上的預測方向。即 A:Astep=0,,Astep=105A:A_{step=0},\cdots,A_{step=10^5}
    • Astep=0A_{step=0}:做恆等變化
    • Astep=105A_{step=10^5}:最終的預測矩陣

實驗結果如 圖7 所示,可見,隨着訓練步數逐漸接近 10510^5,往該方向的移動不再改變數字類型,僅僅改變數字的粗細,充分表明我們將數字類型和數字粗細這倆特徵解耦了

image-20200610230808786

3.3. Anime Faces

就是在這個數據集上發現將 AA 的各列正交可增強方向的多樣性。 但不提倡用這個方法到所有數據集上,因爲未必都能取得這樣的效果(作者對MNIST、CelebA上實驗效果沒這樣好)。實驗結果如 圖8 所示。

image-20200610231154570

3.4. Real Human Faces

image-20200610231259927

圖9 即爲實驗結果,這些方向爲圖像的處理提供了有用信息。

3.5. ImageNet

image-20200610231616109

圖10 便是提出的方法發現的一些方向。值得一提的是,上圖中的 背景模糊背景消除 這倆方向可爲構建顯著性實例分割任務輕鬆構建大規模的訓練數據集。而這倆方向便是正交列矩陣 AA 的功勞。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章