本系列博文為深度學習/計算機視覺論文筆記,轉載請注明出處
標題:Large Scale GAN Training for High Fidelity Natural Image Synthesis
鏈接:[1809.11096] Large Scale GAN Training for High Fidelity Natural Image Synthesis (arxiv.org)
摘要
盡管在生成圖像建模方面取得了近期的進展,但成功地從諸如ImageNet之類的復雜數(shù)據集中生成高分辨率且多樣化的樣本仍然是一個難以捉摸的目標。為了實現(xiàn)這一目標,我們嘗試以迄今為止最大的規(guī)模訓練生成對抗網絡,并研究了與這種規(guī)模特定的不穩(wěn)定性。我們發(fā)現(xiàn),向生成器應用正交正則化使其適應一個簡單的“截斷技巧”,通過減少生成器輸入的方差,從而在樣本保真度和多樣性之間實現(xiàn)精細的控制。我們的修改導致了在類條件圖像合成方面刷新了最新技術水平的模型。在以128×128分辨率訓練的ImageNet上,我們的模型(BigGANs)實現(xiàn)了166.5的Inception分數(shù)(IS)和7.4的Fréchet Inception 距離(FID),相比之前最佳IS的52.52和FID的18.65有所提高。
圖1:展示了我們模型生成的類別條件樣本。
1. 引言
在近年來,生成圖像建模領域取得了巨大的進步,生成對抗網絡(GANs,Goodfellow等人,2014)處于直接從數(shù)據中學習生成高保真度、多樣化圖像的努力前沿。GAN的訓練是動態(tài)的,幾乎涉及其設置的每個方面(從優(yōu)化參數(shù)到模型架構),但大量的研究已經產生了實證和理論上的見解,使得在各種環(huán)境下實現(xiàn)穩(wěn)定訓練成為可能。盡管取得了這些進展,目前在條件下的ImageNet建模(Zhang等人,2018)的最新技術水平在Inception分數(shù)(Salimans等人,2016)方面達到52.5,而真實數(shù)據則為233。
在本研究中,我們旨在縮小GAN生成圖像與ImageNet數(shù)據集中真實圖像之間的保真度和多樣性差距。我們?yōu)閷崿F(xiàn)這一目標做出了以下三方面的貢獻:
- 我們證明GAN在規(guī)模上能夠取得巨大的收益,訓練的模型參數(shù)是之前方法的兩倍到四倍,批量大小是之前的八倍。我們引入了兩個簡單的、通用的架構變化,提高了可擴展性,并修改了正則化方案以改善條件,從而明顯提升了性能。
- 由于我們的修改,我們的模型適用于“截斷技巧”,這是一種簡單的采樣技術,允許明確、精細地控制樣本多樣性和保真度之間的權衡。
- 我們發(fā)現(xiàn)了大規(guī)模GAN特有的不穩(wěn)定性,并進行了實證表征。借助于這一分析的見解,我們展示了一種新穎和現(xiàn)有技術的組合可以減少這些不穩(wěn)定性,但要實現(xiàn)完全的訓練穩(wěn)定性只能以性能的顯著代價為代價。
我們的修改顯著改進了類條件GAN。在以128×128分辨率訓練的ImageNet上,我們的模型(BigGANs)將最新的Inception分數(shù)(IS)和Fréchet Inception 距離(FID)從52.52和18.65提高到分別為166.5和7.4。我們還成功地在256×256和512×512分辨率的ImageNet上訓練了BigGANs,分別在256×256分辨率下實現(xiàn)了IS和FID為232.5和8.1,在512×512分辨率下實現(xiàn)了IS和FID為241.5和11.5。最后,我們在一個更大的數(shù)據集JFT-300M上訓練了我們的模型,并展示了我們的設計選擇在ImageNet上的良好轉移性。我們預訓練生成器的代碼和權重已公開提供1。
2. 背景
生成對抗網絡(GAN)涉及生成器(G)和判別器(D)網絡,它們的目的分別是將隨機噪聲映射到樣本并區(qū)分真實和生成的樣本。形式上,GAN的目標,在其原始形式下(Goodfellow等人,2014),涉及尋找以下兩個玩家的極小-極大問題的納什均衡:
min
?
G
max
?
D
E
x
~
q
data
(
x
)
[
log
?
D
(
x
)
]
+
E
z
~
p
(
z
)
[
log
?
(
1
?
D
(
G
(
z
)
)
)
]
(1)
\min_G \max_D \mathbb{E}_{x \sim q_{\text{data}}(x)}[\log D(x)] + \mathbb{E}_{z \sim p(z)}[\log(1 - D(G(z)))] \quad \tag{1}
Gmin?Dmax?Ex~qdata?(x)?[logD(x)]+Ez~p(z)?[log(1?D(G(z)))](1)
其中
z
∈
R
d
z
z \in \mathbb{R}^{d_z}
z∈Rdz? 是從分布
p
(
z
)
p(z)
p(z)(例如
N
(
0
,
I
)
N(0, I)
N(0,I) 或
U
[
?
1
,
1
]
U[-1, 1]
U[?1,1])中抽取的潛變量。
當應用于圖像時,G和D通常是卷積神經網絡(Radford等人,2016)。在沒有輔助穩(wěn)定技術的情況下,這種訓練過程通常非常脆弱,需要精細調整的超參數(shù)和架構選擇才能正常工作。
因此,最近的許多研究都集中在對傳統(tǒng)GAN方法的修改上,以實現(xiàn)穩(wěn)定性,并利用越來越多的實證和理論見解(Nowozin等人,2016;S?nderby等人,2017;Fedus等人,2018)。其中一個研究方向是改變目標函數(shù)(Arjovsky等人,2017;Mao等人,2016;Lim和Ye,2017;Bellemare等人,2017;Salimans等人,2018),以鼓勵收斂。另一個研究方向是通過梯度懲罰(Gulrajani等人,2017;Kodali等人,2017;Mescheder等人,2018)或標準化(Miyato等人,2018)來約束D,以抵消無界損失函數(shù)的使用,并確保D在所有地方都提供梯度給G。
與我們的工作特別相關的是譜標準化(Miyato等人,2018),它通過使用參數(shù)的第一個奇異值的運行估計進行歸一化,從而在D上強制實現(xiàn)Lipschitz連續(xù)性,引入了自適應地正則化頂部奇異方向的向后動態(tài)。相關地,Odena等人(2018)分析了G的雅可比矩陣的條件數(shù),并發(fā)現(xiàn)性能取決于G的條件。Zhang等人(2018)發(fā)現(xiàn)在G中應用譜標準化可以改善穩(wěn)定性,允許每次迭代中減少D的步驟。我們對這些分析進行了擴展,以進一步了解GAN訓練的病態(tài)現(xiàn)象。
其他研究關注架構的選擇,例如SA-GAN(Zhang等人,2018),它從(Wang等人,2018)中添加自注意塊,以提高G和D對全局結構的建模能力。ProGAN(Karras等人,2018)通過在一系列逐漸增加分辨率的情況下訓練單一模型,從而在單類別設置下訓練高分辨率GAN。
在條件GAN中(Mirza和Osindero,2014),類別信息可以以多種方式輸入模型。在(Odena等人,2017)中,它通過將1-hot類向量與噪聲向量串聯(lián)來提供給G,并修改目標函數(shù)以鼓勵條件樣本最大化輔助分類器預測的相應類別概率。de Vries等人(2017)和Dumoulin等人(2017)通過在BatchNorm(Ioffe和Szegedy,2015)層中提供類別條件的增益和偏置來修改類別條件傳遞給G的方式。在Miyato和Koyama(2018)中,D通過使用其特征與一組學習的類別嵌入之間的余弦相似性作為區(qū)分真實和生成樣本的附加證據,有效地鼓勵生成與學習類別原型的特征匹配的樣本。
客觀評估隱式生成模型很困難(Theis等人,2015)。許多研究提出了在沒有可計算似然的情況下測量模型樣本質量的啟發(fā)式方法(Salimans等人,2016;Heusel等人,2017;Bińkowski等人,2018;Wu等人,2017)。其中,Inception分數(shù)(IS,Salimans等人,2016)和Fréchet Inception距離(FID,Heusel等人,2017)盡管存在明顯的缺陷(Barratt和Sharma,2018),但已經變得流行。我們將它們用作樣本質量的近似度量,并用于與先前工作進行比較。
3. 擴展GAN
在本節(jié)中,我們探討了將GAN訓練擴展到更大的模型和更大的批次以獲得更好性能的方法。作為基準,我們使用了Zhang等人(2018)的SA-GAN架構,該架構使用了鉸鏈損失(Lim和Ye,2017;Tran等人,2017)的GAN目標。我們使用類別條件的BatchNorm(Dumoulin等人,2017;de Vries等人,2017)向 G G G提供類別信息,使用投影(Miyato和Koyama,2018)向 D D D提供類別信息。優(yōu)化設置遵循Zhang等人(2018)(特別是在 G G G中使用譜歸一化),但我們將學習率減半,并使每次 G G G步驟執(zhí)行兩次 D D D步驟。在評估方面,我們使用了 G G G的權重的移動平均,這是根據Karras等人(2018)、Mescheder等人(2018)和Yazc等人(2018)的方法進行的,衰減系數(shù)為0.9999。我們使用正交初始化(Saxe等人,2014),而之前的工作使用的是 N ( 0 , 0.02 I ) N(0,0.02I) N(0,0.02I)(Radford等人,2016)或Xavier初始化(Glorot和Bengio,2010)。每個模型在Google TPUv3 Pod(Google,2018)的128到512個核心上進行訓練,并在所有設備上計算 G G G中的BatchNorm統(tǒng)計量,而不是每個設備分別計算。我們發(fā)現(xiàn)即使對于我們的512×512模型,漸進增長(Karras等人,2018)也是不必要的。附錄C中提供了更多的細節(jié)。
我們首先通過增加基線模型的批量大小,立即發(fā)現(xiàn)這樣做有巨大的好處。表1的第1-4行顯示,將批量大小增加8倍僅僅通過增加批次覆蓋更多模式,為兩個網絡提供更好的梯度,從而將最新的Inception分數(shù)提高了46%。我們猜測這是因為每個批次涵蓋了更多模式,為兩個網絡提供了更好的梯度。這種縮放的一個顯著副作用是,我們的模型在更少的迭代次數(shù)內達到更好的最終性能,但變得不穩(wěn)定并經歷完全的訓練崩潰。我們在第4節(jié)中討論了這種情況的原因和影響。對于這些實驗,我們報告了在崩潰之前保存的檢查點的分數(shù)。
表1:我們提出的修改方法的FID(Fréchet Inception Distance,值越低越好)和IS(Inception Score,值越高越好)的消融結果。Batch表示批次大小,Param表示總參數(shù)數(shù)量,Ch.表示通道乘數(shù),代表每層單元數(shù),Shared表示使用共享嵌入,Skip-z表示使用從潛變量到多個層的跳躍連接,Ortho.表示正交正則化,Itr表示該設置是否在1000000次迭代時穩(wěn)定,或在給定迭代次數(shù)時崩潰。除1-4行外,結果基于8個隨機初始化計算得出。
然后,我們將每個層中的寬度(通道數(shù))增加了50%,大約使兩個模型的參數(shù)數(shù)量增加了一倍。這導致了進一步的Inception分數(shù)提高了21%,我們認為這是由于模型的容量相對于數(shù)據集的復雜性增加了。將深度加倍最初沒有帶來改進 - 我們在稍后的BigGAN-deep模型中解決了這個問題,該模型使用了不同的殘差塊結構。
我們注意到,用于 G G G中條件BatchNorm層的類別嵌入 c c c包含大量權重。與其為每個嵌入使用單獨的層(Miyato等人,2018;Zhang等人,2018),我們選擇使用一個共享的嵌入,該嵌入被線性投影到每個層的增益和偏置上(Perez等人,2018)。這減少了計算和內存成本,并通過37%的訓練速度(達到給定性能所需的迭代次數(shù))的提高來改進訓練速度。接下來,我們添加了直接的從噪聲向量 z z z到 G G G的多個層的跳過連接(skip-z),而不僅僅是初始層。這個設計背后的直覺是允許 G G G使用潛在空間直接影響不同分辨率和層次的特征。在BigGAN中,這是通過將 z z z分成每個分辨率一個塊,并將每個塊連接到條件向量 c c c,該向量被投影到BatchNorm的增益和偏置中。在BigGAN-deep中,我們使用了一個更簡單的設計,將整個 z z z與條件向量連接起來,而不將其分成塊。以前的工作(Goodfellow等人,2014;Denton等人,2015)已經考慮過這個概念的變體;我們的實現(xiàn)是對這個設計的輕微修改。Skip-z使性能略有提高,大約提高了4%,并進一步提高了18%的訓練速度。
3.1 在保真度和多樣性之間平衡:截斷技巧
圖2:(a)增加截斷的效果。從左到右,閾值設置為2、1、0.5、0.04。(b)將截斷應用于條件較差的模型時產生的飽和偽影。
不像需要通過其潛變量進行反向傳播的模型,GAN可以使用任意的先驗分布 p ( z ) p(z) p(z),然而絕大多數(shù)以前的工作選擇了從 N ( 0 , I ) N(0,I) N(0,I)或 U [ ? 1 , 1 ] U[-1,1] U[?1,1]中抽取 z z z。我們質疑了這種選擇的最優(yōu)性,并在附錄 E E E中探索了替代方案。值得注意的是,我們的最佳結果是通過在采樣時使用與訓練中不同的潛變量分布獲得的。采用 z ~ N ( 0 , I ) z \sim N(0, I) z~N(0,I)進行訓練的模型,如果從被截斷的正態(tài)分布中采樣 z z z(將落在某個范圍內的值重新采樣為該范圍內的值),立即提高了IS和FID。我們稱之為截斷技巧:通過重新采樣值的幅度超過所選閾值的 z z z向量,可以在個體樣本質量方面提高,但會減少整體樣本的多樣性。圖2(a)演示了這一點:隨著閾值的降低, z z z的元素被截斷為接近零(潛變量分布的模態(tài))的位置,個體樣本趨向于 G G G的輸出分布的模態(tài)。與此相關的觀察在(Marchesi,2016;Pieters和Wiering,2014)中也有提到。
這種技術允許根據給定的
G
G
G對樣本質量和多樣性之間的權衡進行精細選擇。值得注意的是,我們可以計算一系列閾值的FID和IS,得到類似于精度-召回曲線的多樣性-保真度曲線(圖17)。由于IS不懲罰類別條件模型中的多樣性不足,因此降低截斷閾值會直接增加IS(類似于精度)。FID懲罰多樣性不足(類似于召回),但也獎勵精度,因此我們最初看到FID有適度的改進,但隨著截斷接近零,多樣性減少,F(xiàn)ID急劇下降。使用與訓練中看到的不同潛變量進行采樣引起的分布偏移對許多模型來說是有問題的。一些較大的模型不適合截斷,當輸入被截斷的噪聲時會產生飽和偽影(圖2(b))。為了抵消這一點,我們試圖通過使
G
G
G平滑來實現(xiàn)適應截斷的性質,以便整個
z
z
z的空間將映射為良好的輸出樣本。為此,我們轉向正交正則化(Brock等人,2017),它直接強制執(zhí)行正交條件:
R
β
(
W
)
=
β
∥
W
T
W
?
I
∥
F
2
(2)
R_{\beta}(W) = \beta \left\| W^T W - I \right\| ^2_F \tag{2}
Rβ?(W)=β∥∥?WTW?I∥∥?F2?(2)
其中 W W W是權重矩陣, β \beta β是超參數(shù)。已知這種正則化通常太限制性(Miyato等人,2018),因此我們探索了幾個設計,旨在放松約束,但仍能實現(xiàn)所需的模型平滑性。我們發(fā)現(xiàn)效果最好的版本是從正則化中去除對角線項,并旨在最小化濾波器之間的成對余弦相似性,但不限制其范數(shù):
R β ( W ) = β ∥ W T W ⊙ ( 1 ? I ) ∥ F 2 (3) R_{\beta}(W) = \beta \left\| W^T W \odot (1 - I) \right\| ^2_F \tag{3} Rβ?(W)=β∥∥?WTW⊙(1?I)∥∥?F2?(3)
其中1表示所有元素均設置為1的矩陣。我們掃描 β \beta β值并選擇 1 0 ? 4 10^{-4} 10?4,發(fā)現(xiàn)這個小的額外懲罰足以提高我們的模型適應截斷的可能性。在表1的不同運行中,我們觀察到,沒有正交正則化,只有16%的模型適用于截斷,而在使用正交正則化進行訓練時,適用于截斷的模型比例達到了60%。
3.2 小結
我們發(fā)現(xiàn),當前的GAN技術足以實現(xiàn)模型的大規(guī)模擴展和分布式大批量訓練。我們發(fā)現(xiàn),我們可以顯著改進現(xiàn)有技術水平,并在512×512的分辨率下訓練模型,無需像Karras等人(2018)那樣明確使用多尺度方法。盡管有了這些改進,我們的模型仍然會經歷訓練崩潰,在實際中需要提前停止。在接下來的兩個部分中,我們將調查為什么在以往的工作中穩(wěn)定的設置在應用到大規(guī)模情況下會變得不穩(wěn)定。
4. 分析
4.1 衡量不穩(wěn)定性:生成器
圖3:G(a)和D(b)層中第一個奇異值σ0的典型圖表,在應用譜歸一化之前。G的大多數(shù)層具有良好的譜,但在沒有約束的情況下,一小部分子集會在訓練過程中增長并在崩潰時爆炸。D的譜噪聲較大,但在其他方面表現(xiàn)良好。從紅色到紫色的顏色表示深度逐漸增加。
過去的許多研究從各種分析角度和玩具問題上調查了GAN的穩(wěn)定性,但我們觀察到的不穩(wěn)定性出現(xiàn)在小尺度下是穩(wěn)定的設置中,因此需要在大尺度下進行直接分析。我們在訓練過程中監(jiān)測了一系列權重、梯度和損失統(tǒng)計量,尋找可能預示著訓練崩潰開始的度量標準,類似于(Odena等人,2018)。我們發(fā)現(xiàn)每個權重矩陣的前三個奇異值 σ 0 σ_0 σ0?、 σ 1 σ_1 σ1?和 σ 2 σ_2 σ2?是最具信息的。它們可以使用Arnoldi迭代方法(Golub和der Vorst,2000)高效地計算,該方法擴展了Miyato等人(2018)中使用的冪迭代方法,以估計附加的奇異向量和值。一個明確的模式出現(xiàn)了,如圖3(a)和附錄F所示:大多數(shù) G G G層具有良好的譜范數(shù),但一些層(通常是 G G G中的第一層,該層是過完備且非卷積的)的譜范數(shù)在訓練期間逐漸增長,并在崩潰時爆炸。
為了確定這種病理是崩潰的原因還是僅僅是癥狀,我們研究了對
G
G
G施加額外條件的效果,以明確地抵消譜爆炸。首先,我們直接對每個權重的前三個奇異值
σ
0
σ_0
σ0?進行正則化,要么朝著固定值
σ
r
e
g
σ_{reg}
σreg?,要么朝著第二個奇異值的某個比率
r
r
r,
r
?
s
g
(
σ
1
)
r \cdot sg(σ_1)
r?sg(σ1?)(其中
s
g
sg
sg是阻止正則化增加
σ
1
σ_1
σ1?的停梯度操作)。或者,我們使用部分奇異值分解來代替將
σ
0
σ_0
σ0?夾緊。對于給定的權重
W
W
W,它的前三個奇異向量
u
0
u_0
u0?和
v
0
v_0
v0?,以及
σ
c
l
a
m
p
σ_{clamp}
σclamp?是將
σ
0
σ_0
σ0?夾緊到的值,我們的權重變?yōu)椋?br>
W
=
W
?
max
?
(
0
,
σ
0
?
σ
c
l
a
m
p
)
v
0
u
0
T
(4)
W = W - \max(0, σ_0 - σ_{clamp})v_0u_0^T \tag{4}
W=W?max(0,σ0??σclamp?)v0?u0T?(4)
其中
σ
c
l
a
m
p
σ_{clamp}
σclamp?設置為
σ
r
e
g
σ_{reg}
σreg?或
r
?
s
g
(
σ
1
)
r \cdot sg(σ_1)
r?sg(σ1?)。我們觀察到,無論是否使用譜歸一化,這些技術都會防止
σ
0
σ_0
σ0?或
σ
0
/
σ
1
σ_0 / σ_1
σ0?/σ1?逐漸增加和爆炸,但即使在某些情況下,它們稍微改善了性能,也沒有任何組合可以防止訓練崩潰。這些證據表明,雖然對
G
G
G進行調整可能會改善穩(wěn)定性,但這還不足以確保穩(wěn)定性。因此,我們將注意力轉向
D
D
D。
4.2 衡量不穩(wěn)定性:判別器
與
G
G
G類似,我們分析
D
D
D的權重譜以獲取關于其行為的見解,然后通過施加額外的約束來尋求穩(wěn)定訓練。圖
3
(
b
)
3(b)
3(b)顯示了
D
D
D的
σ
0
σ_0
σ0?的典型情況(附錄
F
F
F中還有更多的圖表)。與
G
G
G不同,我們看到譜是嘈雜的,
σ
0
/
σ
1
σ_0 / σ_1
σ0?/σ1?是良好的,奇異值在訓練過程中逐漸增長,但只在崩潰時跳躍,而不是爆炸。
D
D
D譜中的峰可能表明它周期性地接收非常大的梯度,但我們觀察到弗羅貝尼烏斯范數(shù)是平滑的(附錄F),這表明這種效應主要集中在前幾個奇異方向上。我們假設這種噪聲是通過對抗訓練過程的優(yōu)化產生的,其中
G
G
G周期性地產生強烈擾動
D
D
D的批次。如果這種譜噪聲與不穩(wěn)定性有因果關系,那么一個自然的對策就是使用梯度懲罰,這會明確地規(guī)范
D
D
D的雅可比變化。我們探索了Mescheder等人(2018)的
R
1
R1
R1零中心梯度懲罰:
R
1
:
=
γ
2
E
p
D
(
x
)
[
∥
?
D
(
x
)
∥
F
2
]
(5)
R1 := \frac{\gamma}{2} \mathbb{E}_{p_D(x)} \left[ \left\| \nabla D(x) \right\|_F^2 \right] \tag{5}
R1:=2γ?EpD?(x)?[∥?D(x)∥F2?](5)
使用默認建議的
γ
\gamma
γ強度為
10
10
10,訓練變得穩(wěn)定,改善了
G
G
G和
D
D
D中譜的平滑性和有界性,但性能嚴重下降,IS減少了45%。減小懲罰部分地減輕了這種退化,但導致譜變得越來越不穩(wěn)定。即使將懲罰強度降低到1(在此強度下不會突然崩潰),IS也減少了20%。對各種強度的正交正則化、DropOut(Srivastava等人,2014)和L2進行重復實驗(詳見附錄I),發(fā)現(xiàn)這些正則化策略的行為類似:通過對
D
D
D施加足夠大的懲罰,可以實現(xiàn)訓練的穩(wěn)定性,但代價是嚴重的性能損失。
我們還觀察到,在訓練過程中, D D D的損失接近零,但在崩潰時出現(xiàn)急劇上升(附錄F)。對于這種行為,一個可能的解釋是 D D D對訓練集進行了過擬合,記憶了訓練樣本,而不是學習真實圖像和生成圖像之間的有意義的邊界。作為對 D D D記憶性的簡單測試(與Gulrajani等人(2017)相關),我們在ImageNet的訓練和驗證集上評估了未崩潰的判別器,并測量了多少百分比的樣本被分類為真實圖像或生成圖像。盡管訓練精度始終在98%以上,但驗證精度在50-55%的范圍內,不比隨機猜測更好(無論正則化策略如何)。這證實了 D D D確實在記憶訓練集;我們認為這與 D D D的角色一致,其不是明確進行泛化,而是提取訓練數(shù)據并為 G G G提供有用的學習信號。附錄 G G G中提供了額外的實驗和討論。
4.3 小結
我們發(fā)現(xiàn),穩(wěn)定性不僅僅來自 G G G或 D D D,而是來自它們通過對抗性訓練過程的相互作用。盡管可以使用它們的條件的癥狀來跟蹤和識別不穩(wěn)定性,但確保合理的條件對于訓練是必要的,但不足以防止最終的訓練崩潰。通過強烈約束 D D D可以實現(xiàn)穩(wěn)定性,但這會導致性能的顯著損失。使用當前的技術,可以通過放寬這種條件并允許在訓練的后期階段發(fā)生崩潰,到那時模型已經足夠訓練以實現(xiàn)良好的結果。
5 實驗
5.1 在ImageNet上的評估
表2:不同分辨率下模型的評估。我們報告沒有截斷的分數(shù)(第3列),最佳FID的分數(shù)(第4列),驗證數(shù)據IS的分數(shù)(第5列)以及最大IS的分數(shù)(第6列)。標準差是基于至少三個隨機初始化計算的。
我們在ImageNet ILSVRC 2012(Russakovsky等人,2015)的128×128、256×256和512×512分辨率上評估了我們的模型,使用表格1中的設置,第8行。我們在圖4中展示了我們的模型生成的樣本,附錄A中還有額外的樣本,在線2上也有展示。我們在表2中報告了IS和FID。由于我們的模型能夠在樣本質量和多樣性之間進行權衡,因此不清楚如何最好地與之前的方法進行比較;因此,我們根據三個設置報告值,在附錄D中有完整的曲線。首先,我們報告在達到最佳FID的截斷設置下的FID/IS值。其次,我們報告在截斷設置下的FID,其中我們的模型的IS與真實驗證數(shù)據達到的IS相同,理由是這是在仍然達到良好的“物體性”水平的情況下實現(xiàn)最大樣本多樣性的可接受度量。第三,我們報告每個模型實現(xiàn)的最大IS處的FID,以展示在最大化質量時必須進行多少樣本多樣性的權衡。在這三種情況下,我們的模型在IS和FID分數(shù)上均超過了Miyato等人(2018)和Zhang等人(2018)達到的之前的最先進的分數(shù)。
圖4:我們的BigGAN模型生成的截斷閾值為0.5的樣本(a-c),以及部分訓練模型中出現(xiàn)的類別泄漏示例(d)。
除了在論文第一版中引入并在大多數(shù)實驗中使用的BigGAN模型(除非另有說明),我們還展示了一個4x更深的模型(BigGAN-deep),它使用了不同的殘差塊配置。正如從表2中可以看出的,BigGAN-deep在所有分辨率和指標上都明顯優(yōu)于BigGAN。這證實了我們的發(fā)現(xiàn)適用于其他架構,并且增加深度可以改善樣本質量。BigGAN和BigGAN-deep架構的詳細描述在附錄B中。
我們對 D D D對訓練集的過度擬合以及我們模型的樣本質量的觀察,引發(fā)了一個明顯的問題,即 G G G是否僅僅記憶訓練點。為了測試這一點,我們在像素空間和預訓練分類器網絡的特征空間中執(zhí)行逐類最近鄰分析(附錄A)。此外,在圖8和9中,我們展示了樣本之間和類別之間(保持 z z z不變)的插值。我們的模型在不同的樣本之間進行插值,并且其樣本的最近鄰在視覺上是明顯不同的,這表明我們的模型不僅僅記憶訓練數(shù)據。
我們注意到,我們部分訓練的模型的一些失效模式與先前觀察到的失效模式不同。大多數(shù)先前的失敗涉及局部偽影(Odena等人,2016),由紋理斑點組成的圖像而不是對象(Salimans等人,2016),或經典的模式坍塌。我們觀察到類泄漏,其中一類圖像包含另一類的屬性,如圖4(d)所示。我們還發(fā)現(xiàn),在ImageNet上,許多類對于我們的模型來說更加困難;我們的模型在生成狗(占數(shù)據集的大部分,主要由紋理來區(qū)分)方面比生成人群(占數(shù)據集的一小部分,具有更多的大尺度結構)更成功。附錄A中有進一步的討論。
5.2 在JFT-300M上的額外評估
為了確認我們的設計選擇對更大、更復雜和更多樣化的數(shù)據集是否有效,我們還在JFT-300M(Sun等人,2017)的子集上展示了我們系統(tǒng)的結果。完整的JFT-300M數(shù)據集包含300M個帶有18K個類別標簽的真實世界圖像。由于類別分布嚴重呈長尾分布,我們對數(shù)據集進行了子采樣,只保留具有8.5K個最常見標簽的圖像。結果數(shù)據集包含292M個圖像,比ImageNet大兩個數(shù)量級。對于具有多個標簽的圖像,我們在采樣圖像時隨機且獨立地選擇一個標簽。為了計算在該數(shù)據集上訓練的GAN的IS和FID,我們使用在該數(shù)據集上訓練的Inception v2分類器(Szegedy等人,2016)。定量結果在表3中呈現(xiàn)。所有模型均以批量大小2048進行訓練。我們比較了我們模型的一個消融版本——與SA-GAN(Zhang等人,2018)類似,但使用了更大的批量大小——與一個“完整”的BigGAN模型,該模型使用了在ImageNet上獲得最佳結果的所有技術(共享嵌入、skip-z和正交正則化)。我們的結果表明,即使在相同的模型容量下(64個基礎通道),這些技術在這個規(guī)模更大的數(shù)據集上也能夠顯著提高性能。我們進一步展示,對于這種規(guī)模的數(shù)據集,通過將我們模型的容量擴展到128個基礎通道,我們可以看到顯著的額外改進,而在ImageNet上,這種額外的容量并沒有帶來益處。
表3:在256×256分辨率下對JFT-300M的BigGAN結果。FID和IS列報告了由JFT-300M訓練的Inception v2分類器給出的這些得分,其中噪聲分布為 z ~ N ( 0 , I ) z ~ N (0, I) z~N(0,I)(非截斷)。(min FID) / IS和FID / (max IS)列報告了在從 σ = 0 σ = 0 σ=0到 σ = 2 σ = 2 σ=2的范圍內對截斷噪聲分布進行掃描后得到的最佳FID和IS得分。來自JFT-300M驗證集的圖像具有50.88的IS和1.94的FID。
在圖19(附錄D)中,我們呈現(xiàn)了在該數(shù)據集上訓練的模型的截斷圖。與ImageNet不同,對于ImageNet,截斷極限 σ ≈ 0 \sigma \approx 0 σ≈0傾向于產生最高的保真度分數(shù),而對于我們的JFT-300M模型來說,IS通常在截斷值 σ \sigma σ從0.5到1范圍內達到最大。我們懷疑,這至少部分是由于JFT-300M標簽的內部類變異性,以及圖像分布的相對復雜性,其中包括具有多個尺度上多個對象的圖像。有趣的是,與在ImageNet上訓練的模型不同(在第4節(jié)中,訓練傾向于在沒有大量正則化的情況下崩潰),在JFT-300M上訓練的模型在許多數(shù)十萬次迭代中保持穩(wěn)定。這表明,從ImageNet擴展到更大的數(shù)據集可能會部分緩解GAN的穩(wěn)定性問題。
我們在不對基礎模型、訓練和正則化技術(除了擴展容量之外)進行更改的情況下,在該數(shù)據集上實現(xiàn)的改進超過了基線GAN模型,這些結果展示了我們的發(fā)現(xiàn)從ImageNet擴展到數(shù)據集,其規(guī)模和復雜性迄今為止在圖像生成模型中是前所未有的。
6 結論
我們已經證明,生成對抗網絡在對多個類別的自然圖像進行建模時,在提高生成樣本的保真度和多樣性方面受益匪淺。因此,我們的模型在ImageNet GAN模型中設定了新的性能水平,大幅改善了現(xiàn)有技術水平。我們還對大規(guī)模GAN的訓練行為進行了分析,表征了其權重的奇異值方面的穩(wěn)定性,并討論了穩(wěn)定性與性能之間的相互關系。
致謝
我們要感謝Kai Arulkumaran、Matthias Bauer、Peter Buchlovsky、Jeffrey Defauw、Sander Dieleman、Ian Goodfellow、Ariel Gordon、Karol Gregor、Dominik Grewe、Chris Jones、Jacob Menick、Augustus Odena、Suman Ravuri、Ali Razavi、Mihaela Rosca和Jeff Stanway。
參考文獻
(……)
附錄 A:來自ImageNet模型的額外樣本、插值和最近鄰
圖5:我們的256×256分辨率下BigGAN模型生成的樣本。
圖6:我們的512×512分辨率下BigGAN模型生成的樣本。
圖7:在512×512分辨率下比較容易類別(a)與困難類別(b)。像狗這樣在數(shù)據集中普遍存在且主要基于紋理的類別,比涉及未對齊的人臉或人群的類別要容易建模得多。這些類別更具有動態(tài)性和結構性,通常具有人類觀察者更為敏感的細節(jié)。即使使用非局部塊,在生成高分辨率圖像時,建模全局結構的難度會進一步增加。
圖8:z、c對之間的插值。
圖9:在保持z恒定的情況下,c之間的插值。姿勢語義經常在端點之間保持不變(尤其是在最后一行)。第二行演示了灰度是在聯(lián)合z、c空間中編碼的,而不是在z中編碼的。
圖10:VGG-16-fc7(Simonyan&Zisserman,2015)特征空間中的最近鄰。生成的圖像位于左上角。
圖11:ResNet-50-avgpool(He et al.,2016)特征空間中的最近鄰。生成的圖像位于左上角。
圖12:像素空間中的最近鄰。生成的圖像位于左上角。
圖13:在VGG-16-fc7(Simonyan&Zisserman,2015)特征空間中的最近鄰。生成的圖像位于左上角。
圖14:在ResNet-50-avgpool(He等,2016)特征空間中的最近鄰。生成的圖像位于左上角。
附錄 B:架構細節(jié)
在BigGAN模型(圖15)中,我們使用了(Zhang et al.,2018)中的ResNet(He et al.,2016) GAN架構,該架構與(Miyato et al.,2018)相同,但在D中的通道模式被修改,以便每個塊的第一個卷積層中的濾波器數(shù)量等于輸出濾波器的數(shù)量(而不是輸入濾波器的數(shù)量,如Miyato et al.(2018)和Gulrajani et al.(2017)中所述)。我們在G中使用單個共享的類嵌入,并為潛在向量z(skip-z)添加了跳躍連接。特別地,我們使用分層潛在空間,以便將潛在向量z沿其通道維度分割成相等大小的塊(在我們的情況下為20維),并且將每個塊連接到共享的類嵌入上,并將其作為一個條件向量傳遞到相應的殘差塊。每個塊的條件被線性投影,以產生塊的BatchNorm層的每個樣本增益和偏差。偏差投影是以零為中心的,而增益投影的中心在1處。由于殘差塊的數(shù)量取決于圖像分辨率,所以z的完整維度為128×128的圖像為120,256×256的圖像為140,512×512的圖像為160。
BigGAN-deep模型(圖16)與BigGAN在幾個方面不同。它使用了一個更簡單的skip-z條件變體:不再首先將z分成塊,而是將整個z與類嵌入進行連接,并通過跳躍連接將生成的向量傳遞到每個殘差塊中。BigGAN-deep基于帶瓶頸的殘差塊(He et al.,2016),其中包括兩個額外的1×1卷積:第一個在更昂貴的3×3卷積之前將通道數(shù)減少4倍;第二個產生所需數(shù)量的輸出通道。雖然BigGAN依賴于1×1卷積,但在通道數(shù)量需要更改的情況下,我們使用了不同的策略,旨在在整個跳躍連接中保持身份。在G中,需要減少通道數(shù),我們只是保留第一組通道,然后舍棄其余通道,以產生所需數(shù)量的通道。在D中,應增加通道數(shù),我們將輸入通道傳遞,然后與由1×1卷積產生的其余通道進行連接。就網絡配置而言,鑒別器與發(fā)生器完全相同。每個分辨率有兩個塊(BigGAN只使用一個),因此BigGAN-deep比BigGAN深四倍。盡管BigGAN-deep模型更深,但由于其殘差塊的瓶頸結構,其參數(shù)明顯更少。例如,128×128的BigGAN-deep G和D分別具有50.4M和34.6M個參數(shù),而相應的原始BigGAN模型具有70.4M和88.0M個參數(shù)。所有BigGAN-deep模型在64×64分辨率下使用注意機制,通道寬度乘數(shù) c h = 128 ch = 128 ch=128, z ∈ R 128 z ∈ R^{128} z∈R128。
圖15:(a)BigGAN的G的典型架構布局;詳細信息在接下來的表格中。 (b)BigGAN的G中的殘差塊(ResBlock up)。 (c)BigGAN的D中的殘差塊(ResBlock down)。
圖16:(a)BigGAN-deep的G的典型架構布局;詳細信息在接下來的表格中。 (b)BigGAN-deep的G中的殘差塊(ResBlock up)。 (c)BigGAN-deep的D中的殘差塊(ResBlock down)。在BigGAN-deep中,沒有包含上采樣(up)或下采樣(down)的ResBlock也沒有包括上采樣(up)或下采樣(down)的ResBlock,其具有身份跳連。
表4:用于128×128像素圖像的BigGAN架構。ch代表來自表1中的每個網絡的通道寬度乘數(shù)。
表5:用于256×256像素圖像的BigGAN架構。相對于128×128的架構,在16×16分辨率處每個網絡中增加了一個額外的ResBlock,并將G中的非局部塊移動到128×128的分辨率。由于內存限制,我們無法將D中的非局部塊移動。
表6:用于512×512像素圖像的BigGAN架構。相對于256×256的架構,在512×512分辨率處增加了一個額外的ResBlock。由于內存限制,我們不得不將兩個網絡中的非局部塊都移回到64×64的分辨率,就像在128×128像素設置中一樣。
表7:128×128像素圖像的BigGAN-deep架構。
表8:256×256像素圖像的BigGAN-deep架構。
表9:512×512像素圖像的BigGAN-deep架構。
附錄 C:實驗細節(jié)
我們的基本設置遵循SA-GAN(Zhang et al.,2018),并且使用TensorFlow(Abadi et al.,2016)實現(xiàn)。我們采用附錄 B 中詳細介紹的架構,在每個網絡中的單個階段插入非局部塊。G和D網絡都使用正交初始化(Saxe et al.,2014)進行初始化。我們使用Adam優(yōu)化器(Kingma & Ba,2014),其中 β 1 = 0 β_1 = 0 β1?=0, β 2 = 0.999 β_2 = 0.999 β2?=0.999,和一個恒定的學習率。對于所有分辨率的BigGAN模型,我們在D中使用 2 ? 1 0 ? 4 2 \cdot 10^{-4} 2?10?4,而在G中使用 5 ? 1 0 ? 5 5 \cdot 10^{-5} 5?10?5。對于BigGAN-deep,我們對128×128模型在D中使用 2 ? 1 0 ? 4 2 \cdot 10^{-4} 2?10?4,在G中使用 5 ? 1 0 ? 5 5 \cdot 10^{-5} 5?10?5,對256×256和512×512模型在D和G中分別使用 2.5 ? 1 0 ? 5 2.5 \cdot 10^{-5} 2.5?10?5。我們嘗試了每個G步驟的D步驟數(shù)量(將其從1變化到6),發(fā)現(xiàn)每個G步驟兩個D步驟產生了最好的結果。
我們在采樣時使用G的權重的指數(shù)移動平均,衰減率設置為0.9999。我們在G中使用跨副本BatchNorm(Ioffe & Szegedy,2015),其中批量統(tǒng)計數(shù)據在所有設備上聚合,而不是在標準實現(xiàn)中的單個設備上。在G和D中都使用了譜歸一化(Miyato et al.,2018),遵循SA-GAN(Zhang et al.,2018)的方法。我們使用Google TPU v3 Pod進行訓練,核心數(shù)量與分辨率成比例:128用于128×128,256用于256×256,512用于512×512。大多數(shù)模型的訓練需要24至48小時。我們將BatchNorm和Spectral Norm中的ε從默認的 1 0 ? 8 10^{-8} 10?8增加到 1 0 ? 4 10^{-4} 10?4,以減輕低精度數(shù)值問題。我們通過沿著長邊進行裁剪并進行區(qū)域采樣來預處理數(shù)據。
C.1 BatchNorm統(tǒng)計和采樣
默認情況下,使用批量歸一化的分類器網絡在測試時使用激活矩時的運行平均值。以前的研究(Radford et al.,2016)反而在采樣圖像時使用批量統(tǒng)計數(shù)據。雖然這在技術上不是一種無效的采樣方式,但它意味著結果依賴于測試批量大?。ㄒ约八殖啥嗌僭O備),并進一步增加了可重現(xiàn)性的復雜性。我們發(fā)現(xiàn)這個細節(jié)非常重要,測試批量大小的變化會產生巨大的性能變化。當使用G的權重的指數(shù)移動平均值進行采樣時,情況會進一步惡化,因為BatchNorm的運行平均值是使用未平均的權重計算的,不是對平均權重的激活統(tǒng)計的良好估計。
為了對抗這兩個問題,我們使用“固定統(tǒng)計量”(standing statistics),在采樣時通過將G運行多次前向傳遞(通常是100次),每次使用不同的隨機噪聲批量,并存儲在所有前向傳遞中聚合的均值和方差來計算激活統(tǒng)計量。類似于使用運行統(tǒng)計,這使得G的輸出對于批量大小和設備數(shù)量變得不變,即使只產生一個樣本。
C.2 CIFAR-10
我們在CIFAR-10(Krizhevsky & Hinton,2009)上運行我們的網絡,使用表1,行8中的設置,在沒有截斷的情況下實現(xiàn)了IS為9.22和FID為14.73。
C.3 IMAGENET圖像的Inception分數(shù)
我們計算了ImageNet的訓練和驗證集的IS。在128×128的分辨率下,訓練數(shù)據的IS為233,驗證數(shù)據的IS為166。在256×256的分辨率下,訓練數(shù)據的IS為377,驗證數(shù)據的IS為234。在512×512的分辨率下,訓練數(shù)據的IS為348,驗證數(shù)據的IS為241。訓練和驗證分數(shù)之間的差異是因為Inception分類器已經在訓練數(shù)據上進行了訓練,導致高置信度輸出在Inception分數(shù)中得到了優(yōu)先考慮。
附錄 D:附加圖表
圖17:在128×128分辨率下的IS與FID對比。得分是基于三個隨機種子的平均值。
圖18:256像素和512像素下的IS與FID對比。256像素的得分是基于三個隨機種子的平均值。
圖19:256×256的JFT-300M IS與FID對比。我們展示了從 σ = 0 σ = 0 σ=0到 σ = 2 σ = 2 σ=2的截斷值(頂部)和從 σ = 0.5 σ = 0.5 σ=0.5到 σ = 1.5 σ = 1.5 σ=1.5的截斷值(底部)。每條曲線對應表格3中的一行。標記為baseline的曲線對應第一行(沒有正交正則化和其他技術),其余的曲線對應第2-4行,即不同容量(Ch)下的相同架構。
附錄 E:選擇潛在空間
在本附錄中,我們探討了選擇不同潛在分布的影響。盡管我們的主要實驗結果使用了截斷技巧(Truncation Trick),但是我們仍然考慮了其他潛在分布的可能性。我們在下面介紹了一些可能的潛在分布設計,并提供了每個潛在分布的直覺背后的設計原理,以及在SA-GAN基線中替代z ~ N(0, I)時的性能表現(xiàn)。由于截斷技巧表現(xiàn)更好,我們并未進行完整的消融研究,而是選擇將z ~ N(0, I)作為主要結果,以充分利用截斷技巧。在沒有截斷技巧的情況下,我們發(fā)現(xiàn)最好的兩種潛在分布是伯努利分布{0, 1}和截尾正態(tài)分布max (N(0, I), 0),它們可以提高訓練速度并輕微提升最終性能,但不太適合進行截斷技巧。
潛在分布
- N(0, I):標準的潛在分布,在主要實驗中使用。
- U[-1, 1]:另一個常見的選擇,表現(xiàn)與N(0, I)類似。
- 伯努利{0, 1}:離散的潛在分布,可以反映自然圖像的潛在變化因素不是連續(xù)的,而是離散的(某個特征存在,另一個特征不存在)。這個潛在分布在IS方面比N(0, I)表現(xiàn)更好,性能提升了8%,并且所需的迭代次數(shù)減少了60%。
- 截尾正態(tài)max (N(0, I), 0):這個潛在分布的設計目的是在潛在空間引入稀疏性(反映了某些潛在特征有時存在,有時不存在),同時還允許這些潛在特征連續(xù)變化,表現(xiàn)出不同程度的激活強度。這個潛在分布在IS方面比N(0, I)表現(xiàn)更好,性能提升了15-20%,并且通常需要較少的迭代次數(shù)。
- 伯努利{-1, 1}:這個潛在分布的設計是離散但不是稀疏的(因為網絡可以學會對負輸入進行激活)。這個潛在分布的性能與N(0, I)幾乎相同。
- 獨立的分類分布{-1, 0, 1},各類別的概率相等:這個分布被選擇為離散且具有稀疏性,但也允許潛在特征取正值和負值。這個潛在分布的性能與N(0, I)幾乎相同。
- N(0, I)與伯努利{0, 1}相乘:這個分布被選擇為具有連續(xù)的潛在特征,同時也具有稀疏性(在零點處有一個峰值),類似于截尾正態(tài)分布,但不限于正值。這個潛在分布的性能與N(0, I)幾乎相同。
- 將N(0, I)和伯努利{0, 1}連接起來,各自占據一半的潛在維度:這個設計受到Chen等人(2016)的啟發(fā),旨在使某些變化因素離散,同時讓其他因素連續(xù)。這個潛在分布的性能比N(0, I)提高了約5%。
- 方差退火:從N(0, σI)中采樣,其中σ允許在訓練過程中變化。我們比較了各種分段的方案,發(fā)現(xiàn)從σ = 2開始,逐漸退火到σ = 1的方案在一定程度上改善了性能??赡苡懈嗟姆椒▉磉x擇σ的退火策略,但我們沒有深入研究。我們懷疑更有原則或更好調整的方案可能會更大程度地影響性能。
- 每個樣本的變量方差:N(0, σiI),其中σi獨立地從U[σl, σh]中采樣,對于批次中的每個樣本i獨立地進行采樣,(σl, σh)是超參數(shù)。這個分布被選擇為通過給網絡輸入具有非恒定方差的噪聲樣本來改善對截斷技巧的適應性。然而,這似乎并沒有影響性能,我們沒有深入研究。還可以考慮調整(σl, σh),類似于方差退火的策略。
附錄 F:監(jiān)測的訓練統(tǒng)計數(shù)據
圖20:典型模型的訓練統(tǒng)計數(shù)據,沒有特殊修改。在200000次迭代后發(fā)生了崩潰。
圖21:G的訓練統(tǒng)計數(shù)據,其中σ0在G中被規(guī)范化為1。在125000次迭代后發(fā)生了崩潰。
圖22:D的訓練統(tǒng)計數(shù)據,其中G中的σ0被規(guī)范化為1。在125000次迭代后發(fā)生了崩潰。
圖23:G的訓練統(tǒng)計數(shù)據,其中對D施加了強度為10的R1梯度懲罰。該模型沒有崩潰,但最大IS僅為55。
圖24:D的訓練統(tǒng)計數(shù)據,其中對D施加了強度為10的R1梯度懲罰。該模型沒有崩潰,但最大IS僅為55。
圖25:G的訓練統(tǒng)計數(shù)據,其中在D的最后一層特征層應用了Dropout(保留概率為0.8)。該模型沒有崩潰,但最大IS僅為70。
圖26:D的訓練統(tǒng)計數(shù)據,其中在D的最后一層特征層應用了Dropout(保留概率為0.8)。該模型沒有崩潰,但最大IS僅為70。
圖27:典型模型的額外訓練統(tǒng)計數(shù)據,沒有特殊修改。在200000次迭代后發(fā)生崩潰。
圖28:使用R1梯度懲罰(D的懲罰強度為10)的額外訓練統(tǒng)計數(shù)據。該模型不會崩潰,但最大IS僅為55。
附錄 G:額外討論:穩(wěn)定性和崩潰
在本節(jié)中,我們展示并討論了我們模型穩(wěn)定性的更多調查,擴展了第4節(jié)中的討論。
G.1 在崩潰前進行干預
崩潰的癥狀是突然而急劇的,樣本質量從其峰值迅速降至最低值,過程僅在幾百次迭代內完成。我們可以通過監(jiān)測G的奇異值是否爆炸來檢測到這種崩潰,但是盡管(非標準化的)奇異值在整個訓練過程中不斷增長,但沒有一種一致的閾值可以確定崩潰發(fā)生的時間。這引發(fā)了一個問題,是否可能在崩潰之前數(shù)千次迭代中的模型檢查點,然后在一些超參數(shù)進行修改的情況下繼續(xù)訓練(例如,學習率)。
我們進行了一系列的干預實驗,其中我們在崩潰之前的一萬或兩萬次迭代中獲取了模型的檢查點,改變了訓練設置的某些方面,然后觀察崩潰是否發(fā)生,相對于原始崩潰發(fā)生的時間以及在崩潰時達到的最終性能。
我們發(fā)現(xiàn)增加生成器(G)或判別器(D)中的學習率(相對于初始值)會導致立即崩潰。即使將學習率從D中的2·10-4和G中的5·10-5加倍到D中的4·10-4和G中的1·10-4,這種設置通常在初始學習率下不會不穩(wěn)定,但依然導致了崩潰。我們還嘗試了改變動量項(Adam的β1和β2),或將動量向量重置為零,但這往往要么沒有產生任何效果,要么在增加動量時立即崩潰。
我們發(fā)現(xiàn)在G中減小學習率,但保持D中的學習率不變可以延遲崩潰(在某些情況下可以延遲超過十萬次迭代),但也削弱了訓練 - 一旦G的學習率被減小,性能要么保持不變,要么慢慢下降。相反,在保持G的學習率不變的情況下降低D的學習率會立即導致崩潰。
我們假設這是因為D必須始終針對G保持最佳狀態(tài),無論是為了穩(wěn)定性還是為了提供有用的梯度信息(正如Miyato等人,2018年;Gulrajani等人,2017年;Zhang等人,2018年所指出的那樣)。允許G獲勝的后果是訓練過程的完全崩潰,無論G的調節(jié)或優(yōu)化設置如何。
其次,即使在D良好的條件下,仍然無法確保穩(wěn)定性,即使通過以較大的學習率或更多的步驟來訓練D優(yōu)于G。這表明,實際上,一個最優(yōu)的D是必要但不充分的訓練穩(wěn)定性,或者系統(tǒng)的某個方面導致D不能朝著最佳狀態(tài)進行訓練??紤]到后一種可能性,我們在下一節(jié)中更詳細地觀察了D頻譜中的噪聲。
G.2 判別器頻譜中的峰值
圖29:D的頻譜在噪聲尖峰處的近景。
如果D的某個元素的訓練過程中存在不良動態(tài),那么D的頻譜行為可能會透露出是什么元素。與G的前三個奇異值不同,D的前三個奇異值具有很大的噪聲成分,趨向于在整個訓練過程中增長,但僅對崩潰顯示出小的響應,并且前兩個奇異值的比率趨向于圍繞一個居中,這表明D的頻譜具有緩慢的衰減。從近距離觀察(圖29)可知,噪聲峰值類似于沖擊響應:在每個峰值處,頻譜跳躍上升,然后緩慢減小,帶有一些振蕩。
一個可能的解釋是,這種行為是D記住訓練數(shù)據的結果,正如第4.2節(jié)中的實驗所建議的那樣。當它接近完美的記憶時,它從真實數(shù)據中獲得的信號越來越少,因為當D為給定的示例輸出自信且正確的預測時,原始的GAN損失和鉸鏈損失都會提供零梯度。如果來自真實數(shù)據的梯度信號減弱為零,這可能導致D最終變得偏向于由于僅接收鼓勵其輸出為負的梯度而產生的負偏見。如果這種偏見超過某個閾值,D最終將錯誤分類大量的真實示例,并接收鼓勵輸出為正的大梯度,導致觀察到的沖擊響應。
這個論點提出了一些修復方法。首先,可以考慮無界損失(例如Wasserstein損失(Arjovsky等人,2017)),這種損失不會受到這種梯度衰減的影響。我們發(fā)現(xiàn),即使通過梯度懲罰和對優(yōu)化器超參數(shù)的簡短重新調整,我們的模型在使用這種損失時也不能穩(wěn)定地訓練超過幾千次迭代。相反,我們探索了更改鉸鏈損失的邊距作為部分折中方案:對于給定的模型和數(shù)據小批量,增加邊距將導致更多示例落入邊距內,從而導致?lián)p失3。盡管通過減小邊距(減小一半)進行訓練可以測量性能,但通過增加邊距(最多增加3倍)進行訓練既不能防止崩潰也不能減少D頻譜中的噪聲。將邊距增加到3以上會導致類似于使用Wasserstein損失的不穩(wěn)定訓練。最后,記憶論點可能表明使用更小的D或在D中使用dropout會通過降低其記憶容量來改進訓練,但實際上這會降低訓練的質量。
附錄 H:對于未能產生積極影響的嘗試
我們探索了一系列新穎的和已有的技術,最終發(fā)現(xiàn)這些技術在我們的設置下會降低性能或者沒有產生明顯影響。在這里我們報告這些結果;雖然這一部分的評估沒有我們主要架構選擇的評估那么詳盡,但我們的目的是為了節(jié)省未來的研究時間,并為讀者提供一個更全面的情況,讓他們能夠更好地了解我們?yōu)榱烁纳菩阅芑蚍€(wěn)定性而嘗試過的方法。需要注意的是,這些結果必須理解為特定于我們使用的具體設置,而不是適用于其他情況下的通用結論。報告負面結果的一個潛在問題是,我們可能會得出某個特定技術無效的結論,但實際上,這個技術在特定問題特定方式應用下可能會產生不同效果。因此,我們應該謹慎地對待這些結果,避免過于概括地否定某種方法的潛在價值。
以下是我們在研究中嘗試過但未能達到期望效果的技術:
-
我們發(fā)現(xiàn)將模型的深度翻倍(在每個上采樣或下采樣塊后插入一個額外的殘差塊)會降低性能。
-
我們嘗試過在G和D之間共享類別嵌入(而不僅限于在G內部共享)。這可以通過將D的類別嵌入替換為從G的嵌入進行投影來實現(xiàn),類似于G的BatchNorm層中的做法。在初期的實驗中,這似乎有助于加速訓練,但我們發(fā)現(xiàn)這種方法的可擴展性較差,并且對優(yōu)化超參數(shù),特別是D步驟數(shù)的選擇非常敏感。
-
我們嘗試過將G中的BatchNorm替換為WeightNorm,但結果導致訓練崩潰。我們還嘗試過移除BatchNorm,只使用Spectral Normalization,但也會導致訓練崩潰。
-
我們嘗試過在D中添加BatchNorm(無論是類別條件的還是非類別條件的),并進行Spectral Normalization,但這也會導致訓練崩潰。
-
我們嘗試過在G和D中嘗試不同的位置使用注意力塊(甚至在不同分辨率上插入多個注意力塊),但發(fā)現(xiàn)在128×128的情況下沒有明顯的好處,而且計算和內存成本顯著增加。當切換到256×256時,我們發(fā)現(xiàn)將注意力塊上移一個階段會有所幫助,這與我們的預期相符,因為分辨率增加了。
-
我們嘗試在G和D中使用濾波器尺寸為5或7,而不是3。我們發(fā)現(xiàn)在G中使用濾波器尺寸為5只會略微提高基線,但計算成本不可接受。其他所有設置都會降低性能。
-
我們嘗試在128×128的情況下改變卷積濾波器的膨脹系數(shù),但發(fā)現(xiàn)即使是很小的膨脹系數(shù)也會降低性能。
-
我們嘗試在G中使用雙線性上采樣代替最近鄰上采樣,但這也會降低性能。
-
在一些模型中,我們觀察到類別條件的模式崩潰,其中模型只為一些子類別生成一個或兩個樣本,但仍然能夠為所有其他類別生成樣本。我們注意到崩潰的類別的嵌入與其他嵌入相比已經變得非常大,因此嘗試通過對共享嵌入應用權重衰減來緩解這個問題。我們發(fā)現(xiàn)小量的權重衰減( 1 0 ? 6 10^{-6} 10?6)會降低性能,而只有更小的值( 1 0 ? 8 10^{-8} 10?8)不會降低性能,但這些值對于防止類別向量爆炸來說也太小了。更高分辨率的模型似乎更能抵御這種問題,我們的最終模型中似乎沒有出現(xiàn)這種類型的崩潰。
-
我們嘗試使用MLP替代從G的類別嵌入到其BatchNorm增益和偏差的線性投影,但并沒有發(fā)現(xiàn)任何好處。我們還嘗試了對這些MLP進行Spectrally Normalizing,并在其輸出處提供偏差,但沒有看到任何好處。
-
我們嘗試過梯度范數(shù)裁剪(全局版本通常用于循環(huán)網絡的裁剪和每個參數(shù)基礎上的局部版本),但發(fā)現(xiàn)這不能緩解不穩(wěn)定性。
附錄 I:超參數(shù)
在這項工作中,我們進行了多種超參數(shù)的調優(yōu):
- 我們對每個網絡的學習率進行了掃描,范圍包括 [ 1 0 ? 5 , 5 × 1 0 ? 5 , 1 0 ? 4 , 2 × 1 0 ? 4 , 4 × 1 0 ? 4 , 8 × 1 0 ? 4 , 1 0 ? 3 ] [10^{-5}, 5 \times 10^{-5}, 10^{-4}, 2 \times 10^{-4}, 4 \times 10^{-4}, 8 \times 10^{-4}, 10^{-3}] [10?5,5×10?5,10?4,2×10?4,4×10?4,8×10?4,10?3] 的笛卡爾積。最初發(fā)現(xiàn)在較小的批次大小下,SA-GAN 設置(G 的學習率 1 0 ? 4 10^{-4} 10?4, D 的學習率 4 × 1 0 ? 4 4 \times 10^{-4} 4×10?4)在較低的批次大小下效果最佳。我們沒有在較大的批次大小下重復此掃描,但是嘗試了減半和翻倍學習率的設置,最終使用了減半的設置進行實驗。
- 我們對 R1 梯度懲罰的強度進行了掃描,范圍包括 [ 1 0 ? 3 , 1 0 ? 2 , 1 0 ? 1 , 0.5 , 1 , 2 , 3 , 5 , 10 ] [10^{-3}, 10^{-2}, 10^{-1}, 0.5, 1, 2, 3, 5, 10] [10?3,10?2,10?1,0.5,1,2,3,5,10]。我們發(fā)現(xiàn)懲罰的強度與性能呈負相關,但是設置在 0.5 以上可以提供訓練的穩(wěn)定性。
- 我們對 D 的最后一層 DropOut 的保留概率進行了掃描,范圍包括 [ 0.5 , 0.6 , 0.7 , 0.8 , 0.9 , 0.95 ] [0.5, 0.6, 0.7, 0.8, 0.9, 0.95] [0.5,0.6,0.7,0.8,0.9,0.95]。我們發(fā)現(xiàn) DropOut 具有與 R1 類似的穩(wěn)定效果,但也會降低性能。
- 我們對 D 的 Adam 的 β1 參數(shù)進行了掃描,范圍包括
[
0.1
,
0.2
,
0.3
,
0.4
,
0.5
]
[0.1, 0.2, 0.3, 0.4, 0.5]
[0.1,0.2,0.3,0.4,0.5],發(fā)現(xiàn)它具有輕微的正則化效果,類似于 DropOut,但并沒有顯著改善結果。在任何網絡中,較高的 β1 值都會使訓練崩潰。
嘗試了減半和翻倍學習率的設置,最終使用了減半的設置進行實驗。 - 我們對 R1 梯度懲罰的強度進行了掃描,范圍包括 [ 1 0 ? 3 , 1 0 ? 2 , 1 0 ? 1 , 0.5 , 1 , 2 , 3 , 5 , 10 ] [10^{-3}, 10^{-2}, 10^{-1}, 0.5, 1, 2, 3, 5, 10] [10?3,10?2,10?1,0.5,1,2,3,5,10]。我們發(fā)現(xiàn)懲罰的強度與性能呈負相關,但是設置在 0.5 以上可以提供訓練的穩(wěn)定性。
- 我們對 D 的最后一層 DropOut 的保留概率進行了掃描,范圍包括 [ 0.5 , 0.6 , 0.7 , 0.8 , 0.9 , 0.95 ] [0.5, 0.6, 0.7, 0.8, 0.9, 0.95] [0.5,0.6,0.7,0.8,0.9,0.95]。我們發(fā)現(xiàn) DropOut 具有與 R1 類似的穩(wěn)定效果,但也會降低性能。
- 我們對 D 的 Adam 的 β1 參數(shù)進行了掃描,范圍包括 [ 0.1 , 0.2 , 0.3 , 0.4 , 0.5 ] [0.1, 0.2, 0.3, 0.4, 0.5] [0.1,0.2,0.3,0.4,0.5],發(fā)現(xiàn)它具有輕微的正則化效果,類似于 DropOut,但并沒有顯著改善結果。在任何網絡中,較高的 β1 值都會使訓練崩潰。
- 我們對 G 中修改的正交正則化懲罰的強度進行了掃描,范圍包括 [ 1 0 ? 5 , 5 × 1 0 ? 5 , 1 0 ? 4 , 5 × 1 0 ? 4 , 1 0 ? 3 , 1 0 ? 2 ] [10^{-5}, 5 \times 10^{-5}, 10^{-4}, 5 \times 10^{-4}, 10^{-3}, 10^{-2}] [10?5,5×10?5,10?4,5×10?4,10?3,10?2],并選擇了 1 0 ? 4 10^{-4} 10?4。
-
https://tfhub.dev/s?q=biggan ??
-
https://drive.google.com/drive/folders/1lWC6XEPD0LT5KUnPXeve_kWeY-FxH002 ??文章來源:http://www.zghlxwxcb.cn/news/detail-670028.html
-
未受限制的模型可以輕松地學習不同的輸出尺度來適應這個邊距,但使用譜歸一化對我們的模型進行了限制,使得特定邊距的選擇具有意義。 ??文章來源地址http://www.zghlxwxcb.cn/news/detail-670028.html
到了這里,關于【計算機視覺|生成對抗】用于高保真自然圖像合成的大規(guī)模GAN訓練用于高保真自然圖像合成的大規(guī)模GAN訓練(BigGAN)的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!