Abstract
在這篇論文中,我們提出了自注意生成對抗網絡(SAGAN),它是用於圖像生成任務的允許注意力驅動的、長距離依賴的建模。傳統的卷積GANs只根據低分辨率圖上的空間局部點生成高分辨率細節。在SAGAN中,可以使用來自所有特征位置的線索生成細節。此外,判別器可以檢查圖像中較遠部分的細節特征是否一致。此外,最近的研究表明,生成器條件會影響GAN的性能。利用這一觀點,我們將光譜歸一化應用到GAN生成器上,發現這改善了訓練的動態。提出的SAGAN比以前的研究的效果更好,在ImageNet數據集的挑戰中,將最好的Inception分數從36.8提高到52.52,將Fréchet初始距離從27.62減少到18.65。對注意力層的可視化顯示,生成器利用了與目標形狀對應的鄰域,而不是固定形狀的局部區域。
1. Introduction
圖像合成是計算機視覺中的一個重要問題。隨着生成式對抗網絡(GANs)的出現,這方面已經取得了顯著的進展(Goodfellow et al., 2014),盡管仍存在許多開放問題(Odena, 2019)。基於深度卷積網絡的GANs(Radford et al., 2016; Karras et al., 2018; Zhang et al.) 尤其成功。然而,通過仔細檢查這些模型生成的樣本,我們可以觀察到卷積GANs (Odena et al., 2017; Miyato et al., 2018; Miyato & Koyama, 2018)在多類數據集上訓練時,某些圖像類的建模比其他類的建模困難得多(例如,ImageNet (Russakovsky et al., 2015))。例如,當先進的ImageNet GAN模型(Miyato & Koyama, 2018) 擅長合成圖像類和一些結構性限制(如海洋、天空和景觀類等更易通過紋理區分而不是通過幾何結構),不能捕捉幾何或在一些類持續發生的結構模式(例如,在繪制狗時往往帶着真實的皮毛紋理,但沒有明確定義分開的腳)。一種可能的解釋是,以前的模型嚴重依賴於卷積來對不同圖像區域之間的相關性進行建模。由於卷積操作符有一個局部接受域,長距離的依賴關系必須經過幾個卷積層才能處理。因為各種各樣的原因,這都將防止學習長距離依賴,缺點有:
- 一個小模型可能無法表示該長距離依賴
- 優化算法可能難以發現能夠仔細協調多層,並能捕獲這些依賴的參數值, 而且當這些參數化被應用於之前的不可見的輸入時,可能是統計脆弱的且容易失敗
- 增加卷積核的大小可以增加網絡的表示能力,但是這樣做也會損失使用局部卷積結構獲得的計算和統計效率
從另一方面來說,自注意(Cheng et al., 2016; Parikh et al., 2016; Vaswani et al., 2017)在構建長期依賴關系的能力與計算和統計效率之間表現出更好的平衡。自注意模塊計算一個位置的響應,作為所有位置特征的加權和,其中的權重 —— 或注意力向量 —— 只需要很小的計算成本就可以計算出來。
在這項工作中,我們提出了自注意生成對抗網絡(SAGANs),它將一種自注意機制引入到卷積GANs中。
它的好處有:
- 自注意模塊是卷積的補充,幫助建模跨圖像區域的長距離、多層次的依賴關系。
- 有了自注意的配備,生成器可以繪制每個位置的精細細節都與圖像遠處部分的精細細節仔細協調的圖像。
- 此外,該判別器還可以更准確地對全局圖像結構執行復雜的幾何約束。
除了自注意,我們還結合了用於GAN性能的網絡調節的最新研究成果。(Odena et al., 2018)的研究表明,狀態良好的生成器往往性能更好。我們建議使用之前僅應用於判別器的光譜歸一化技術來加強GAN生成器的良好條件(Miyato et al., 2018)。
我們在ImageNet數據集上進行了大量的實驗,以驗證所提出的自注意機制和穩定技術的有效性。通過將最好的Inception分數從36.8提高到52.52,將Fréchet初始距離從27.62減少到18.65說明SAGAN顯著優於之前在圖像合成的工作。對注意力層的可視化顯示,生成器利用了與目標形狀對應的鄰域,而不是固定形狀的局部區域。我們的代碼可以在https://github.com/ brain-research/self-attention-gan找到。
2. Related Work
生成對抗網絡. GANs在各種圖像生成任務中取得了巨大成功,包括圖像到圖像的轉換(Isola et al., 2017; Zhu et al., 2017; Taigman et al., 2017; Liu & Tuzel, 2016; Xue et al., 2018; Park et al., 2019),圖像超分辨率(Ledig et al., 2017; Snderby et al., 2017) 和文本-圖像合成(Reed et al., 2016b;a; Zhang et al., 2017; Hong et al., 2018)。盡管取得了這樣的成功,但是GANs的訓練是不穩定的,並且對超參數的選擇非常敏感。一些工作試圖通過設計新的網絡架構來穩定GAN的訓練動態和提高樣本多樣性(Radford et al., 2016; Zhang et al., 2017; Karras et al., 2018; 2019),修改學習目標和動態 (Arjovsky et al., 2017; Salimans et al., 2018; Metz et al., 2017; Che et al., 2017; Zhao et al., 2017; Jolicoeur-Martineau, 2019)添加正則化方法(Gulrajani et al., 2017; Miyato et al., 2018) 和引入啟發式技巧(Salimans et al., 2016; Odena et al., 2017; Azadi et al., 2018)。最近,Miyato等人 (Miyato et al., 2018) 為了約束判別器函數的Lipschitz常數,提出了限制判別器中權重矩陣的譜范數。結合基於項目的判別器(Miyato和Koyama, 2018),該光譜標准化模型極大地改進了ImageNet上的類條件圖像生成。
注意模型. 最近,注意力機制已經成為捕獲全局依賴關系的模型的一個組成部分 (Bahdanau et al., 2014; Xu et al., 2015; Yang et al., 2016; Gregor et al., 2015; Chen et al., 2018)。特別是自注意 (Cheng et al., 2016; Parikh et al., 2016),也稱為內注意,通過關注同一序列中的所有位置來計算序列中某個位置的響應。Vaswani等人(Vaswani et al., 2017)證明了機器轉換模型僅通過使用自注意模型就可以達到最先進的結果。Parmar等人(Parmar et al., 2018)提出了一種圖像轉換器模型,將自注意添加到自回歸模型中進行圖像生成。Wang等人(Wang et al., 2018)將自注意作為一種非局部操作來對視頻序列的時空依賴性進行建模。盡管有了這些進展,自注意還沒有在GANs的背景下被探索。(AttnGAN (Xu et al., 2018)對輸入序列中的詞嵌入使用注意機制,而對內部模型狀態不使用自注意)。SAGAN學會了在圖像的內部表示中有效地找到全局的、長距離的依賴關系。
3. Self-Attention Generative Adversarial Networks
大多數基於GAN的模型(Radford et al., 2016; Salimans et al., 2016; Karras et al., 2018)使用卷積層構建圖像生成。卷積處理一個局部鄰域內的信息,因此單獨使用卷積層對圖像的長期依賴關系建模在計算上是低效的。在本節中,我們采用了(Wang et al., 2018)的非局部模型來介紹GAN框架中的自注意機制,使得生成器和判別器能夠有效地對廣泛分離的空間區域之間的關系進行建模。因為它的自我注意模塊(參見圖2),我們將提出的方法稱為自注意生成對抗網絡(SAGAN)。
將前一隱含層x∈RC×N的圖像特征先變換成兩個特征空間f,g來計算注意,其中f (x) = Wfx, g(x) = Wgx:
βj,i表示模型在合成第j個區域時對第i個位置的關注程度。其中,C為通道數,N為前一隱含層特征的特征位置數。注意層的輸出為o = (o1,o2,…,oj,…,oN)∈RC×N,其中:
在上述公式中,Wg∈RC̄ ×C、Wf∈RC̄ ×C、Wh∈RC̄ ×C和Wv∈RC̄ ×C是可學習的權重矩陣,用來實現1×1的矩陣。在ImageNet的一些迭代后將通道數量從C̄ 減少到C / k, k = 1, 2, 4, 8時,我們沒有注意到任何顯著的性能下降的。為了提高內存效率,我們選擇在我們所有的實驗中設置k = 8(即C̄ = C / 8)。
總結一下,CxN = Cx( WxH ),為了進行矩陣相乘所以轉換成這個樣子,即進行flat操作。通過f(x)、g(x)操作后的輸出是[C/8, N],然后對f(x)的結果轉置后兩者相乘,得到[N, N]大小的s矩陣,表示每個像素點之間的相互關系,可以看成是一個相關性矩陣。h(x)的操作稍微有點不同,輸出是[C, N]
然后再使用softmax對s矩陣歸一化后得到β矩陣,βj,i表示模型在合成第j像素點時對第i個位置的關注程度,即一個attention map
然后將得到的attention map應用到一個h(x)輸出的特征圖上,將會對生成的第j個像素造成影響的h(xi)與其對應的影響程度βj,i相乘,然后求和,這就能根據影響程度來生成j像素,將這個結果在進行一層卷積即得到添加上注意的特征圖的結果o
此外,我們還將注意力層的輸出與比例參數相乘,並將輸入的特征圖添加回來。因此,最終輸出為:
這樣得到的結果就是將原來的特征圖x加上增加上注意機制的o后的結果
γ是可學習的標量,它初始化為0。首先介紹可學習的γ允許網絡依賴在局部領域的線索——因為這更容易,然后逐漸學習分配更多的權重給非局部的證據。我們這樣做的直覺很簡單:我們想先學習簡單的任務,然后逐步增加任務的復雜性。在SAGAN中,提出的注意模塊已應用於生成器和判別器,通過最小化鉸鏈式的對抗損失以交替方式進行訓練(Lim & Ye, 2017; Tran et al., 2017; Miyato et al., 2018)
4. Techniques to Stabilize the Training of GANs
我們還研究了兩種技術去對具有挑戰性的數據集穩定的訓練GANs。首先,我們在生成器和判別器使用光譜歸一化(Miyato et al., 2018)。其次,我們證實了雙時間尺度更新規則(TTUR) (Heusel et al., 2017)是有效的,我們主張在正則化判別器中專門使用它來解決慢速學習問題。
4.1. Spectral normalization for both generator and discriminator
Miyato 等人 (Miyato et al., 2018)最初提出通過將光譜歸一化應用於判別器網絡來穩定GANs的訓練。這樣做通過限制每一層的譜范數來約束判別器的Lipschitz常數。與其他歸一化技術相比,光譜歸一化不需要額外的超參數調整(將所有權層的光譜范數設置為1在實踐中表現良好)。此外,計算成本也相對較小。
我們認為,生成器也可以從光譜歸一化中受益,基於最近的證據表明,生成器的調節是影響GANs性能的一個重要因素(Odena et al., 2018)。譜歸一化可以防止參數幅度的增大,避免異常梯度。我們的經驗發現,譜歸一化的生成器和判別器使它可能使用較少的判別器更新每次生成器的更新,從而大大降低了訓練的計算成本。該方法也顯示出更穩定的訓練行為。
4.2. Imbalanced learning rate for generator and discriminator updates
在之前的工作中,判別器的正則化(Miyato et al., 2018; Gulrajani et al., 2017) 經常減慢GANs的學習過程。在實踐中,使用正則化判別器的方法在訓練期間通常需要經過多個(例如,5個)判別器更新steps后,才更新每個生成器的一個step。Heusel等人(Heusel et al., 2017)主張對生成器和判別器使用單獨的學習速率(TTUR)。我們建議使用TTUR來彌補正則化判別器中學習速度慢的問題,使得每個生成器步驟使用更少的判別器步驟成為可能。使用這種方法,我們能夠在相同的壁鍾時間下得到更好的結果。
5. Experiments
為了評估提出的方法,我們在LSVRC2012 (ImageNet)數據集上進行了大量的實驗(Russakovsky et al., 2015)。首先,在5.1節中,我們設計了一些實驗來評估這兩種提出的技術對於穩定GANs訓練的有效性。接下來,在5.2節中研究了所提出的自注意機制。最后,我們將SAGAN與最先進的方法(Odena et al., 2017; Miyato & Koyama, 2018) ,即5.3節中的圖像生成任務進行比較 。模型使用同步SGD(眾所周知,異步SGD存在一些困難,如(Odena, 2016)),使用4個gpu,在每個上進行大約2周的訓練。
評價指標。我們選擇Inception分數(IS)(Salimans et al ., 2016)和Fréchet初始距離(FID) (Heusel et al ., 2017)進行定量評價。盡管存在可替代的選擇(Zhou et al., 2019; Khrulkov & Oseledets, 2018; Olsson et al., 2018),但是它們沒有被廣泛使用。Inception分數(Salimans et al., 2016)計算了條件類分布和邊緣類分布之間的KL散度。更高的Inception分數意味着更好的圖像質量。我們包含了Inception分數,因為它被廣泛使用,因此可以將我們的結果與之前的工作進行比較。然而,重要的是要明白,Inception分數有嚴重的局限性—— 其主要目的是確保模型生成的樣本,可以明確地被識別為是屬於一個特定的類的,然而模型生成來自許多類的樣本,不是非要評估細節的真實性或內部類的多樣性的。FID是一個更有原則和更全面的度量標准,在評估生成樣本的真實性和變化方面,它已被證明與人類評估更一致(Heusel et al., 2017)。FID計算生成的圖像與Inception-v3網絡特征空間中的真實圖像之間的Wasserstein-2距離。此外,FID計算了整個數據分布(即在ImageNet中的1000個類的圖像) ,我們還計算每個類中生成的圖像和數據集圖像之間的FID(稱為intra FID (Miyato & Koyama, 2018))。較低的FID和內部FID值意味着合成數據分布和實際數據分布之間的距離更近。在我們所有的實驗中,每個模型隨機生成50k個樣本來計算Inception分數,FID和intra FID。
網絡結構和實現細節。我們訓練的所有SAGAN模型都被設計成生成128×128的圖像。默認情況下,光譜歸一化(Miyato et al., 2018)用於生成器和判別器中的層。與(Miyato & Koyama, 2018)類似,SAGAN在生成器中使用條件batch normalization,在判別器中使用投影。對於所有的模型,我們使用Adam優化器 (Kingma & Ba, 2015) 在訓練中設置β1 = 0和β2 = 0.9。默認情況下,判別器的學習率為0.0004,生成器的學習率為0.0001。
5.1. Evaluating the proposed stabilization techniques
在本節中,進行了實驗來評估所提出的穩定技術的有效性,即,將光譜歸一化(SN)應用於生成器,利用不平衡學習率(TTUR)。在圖3中,我們的模型“SN on G/D”和“SN on G/D+TTUR”與基線模型進行了比較,基線模型是基於最先進的圖像生成方法實現的(Miyato et al., 2018)。
在這個基線模型中,僅在判別器中使用了SN。當我們對判別器(D)和生成器(G)進行1:1的平衡更新訓練時,訓練變得非常不穩定,如圖3中最左邊的子圖所示。它在訓練中很早就表現出模式崩潰。例如,圖4的左上子圖演示了基線模型在第10k次迭代時隨機生成的一些圖像。
雖然在最初的論文(Miyato et al., 2018)中,這種不穩定的訓練行為通過對D和G使用5:1的不平衡更新得到了極大的緩解,但是為了提高模型的收斂速度,需要使用1:1的平衡更新來穩定地訓練。因此,使用我們提出的技術,意味着該模型可以產生更好的結果給定相同的壁鍾時間。因此,不需要為生成器和判別器搜索合適的更新比率。如圖3的中間子圖所示,在生成器和判別器上同時添加SN,使得我們的模型“SN on G/D”得到了極大的穩定,即使是經過1:1的均衡更新訓練。然而,在訓練過程中,樣本的質量並不是單調地提高。例如,由FID和IS測量的圖像質量在第260次迭代時開始下降。該模型在不同迭代下隨機生成的示例圖像如圖4所示。當我們將不均衡的學習速率應用於訓練判別器和生成器時,“SN on G/D+TTUR”模型生成的圖像質量在整個訓練過程中單調提高。如圖3和圖4所示,在一百萬次的訓練迭代中,我們沒有觀察到樣本質量、FID或Inception分數有任何顯著的下降。因此,定量結果和定性結果都證明了所提出的GANs訓練穩定技術的有效性。他們還證明,這兩種技術的效果至少在一定程度上是相加的。在剩下的實驗中,所有的模型對生成器和判別器都使用光譜歸一化,並使用不平衡的學習速率以1:1的更新來訓練生成器和判別器。
5.2. Self-attention mechanism.
為了探討所提出的自注意機制的效果,我們建立了幾個SAGAN模型,將自注意機制添加到生成器和判別器的不同階段。如表1所示,使用自注意機制建模的SAGAN在中級到高級級別的特征圖(如f eat32和feat64)比自注意機制的模型在低級別特征映射(例如,feat8和feat16)中取得更好的性能:
例如,“SAGAN, feat8”模型的FID從22.98改進為“SAGAN, feat32”的18.28。原因是,自注意獲得了更多的證據,並享有更多的自由去選擇條件與更大的特征圖(即對於大的特征圖,它與卷積是互補的),但是對於小的特征圖(例如8×8),它與局部卷積的作用類似。實驗結果表明,該注意機制為生成器和判別器提供了更大的能力,可以直接對特征圖中的長距離依賴關系進行建模。此外,將我們的SAGAN與不需要注意的基線模型(表1第二列)進行比較,進一步表明了所提出的自注意機制的有效性。
與具有相同數量參數的殘差塊相比,自注意塊也取得了較好的效果。例如,當我們用8×8特征圖中的殘差塊替換自注意塊時,訓練不穩定,導致性能顯著下降(如FID從22.98增加到42.13)。即使在訓練順利進行的情況下,將自注意塊替換為殘差塊仍然會導致FID和Inception分數的下降。(例如,在特征圖32×32中,FID為18.28 vs 27.33)。這一比較表明,使用SAGAN所帶來的性能改進不僅僅是由於模型深度和容量的增加。
為了更好地理解在生成過程中所學到的知識,我們在SAGAN中可視化了不同圖像中生成器的注意權重。圖5和圖1顯示了一些需要注意的示例圖像。參見圖5的說明,以了解所學習的注意圖的一些屬性。
5.3. Comparison with the state-of-the-art
我們的SAGAN還與最先進的GAN模型進行了比較 (Odena et al., 2017; Miyato & Koyama, 2018) ,其用於生成ImageNet上的類條件圖像。如表2所示,我們提出的SAGAN獲得了最好的Inception分數,intra FID和FID。
所提出的SAGAN顯著地將發布的最佳Inception分數從36.8提高到52.52。SAGAN獲得的較低的FID(18.65)和intra FID(83.7)也表明,通過使用自注意模塊對圖像區域間的長距離依賴關系建模,SAGAN能夠更好地逼近原始圖像分布。
圖6顯示了一些ImageNet代表性類的比較結果和生成的圖像。
我們觀察到,我們的SAGAN比最先進的GAN模型(Miyato & Koyama, 2018)在合成有着復雜幾何或結構模式的圖像類,如金魚和Saint Bernard時實現了更好的性能(即更低的intra FID)。對於結構約束較少的類(如山谷、石牆和珊瑚菌類,它們更多地由紋理而不是幾何來區分),我們的SAGAN與基線模型相比顯示出較少的優越性(Miyato和Koyama, 2018)。再次,原因是SAGAN中的自注意與用於捕獲在幾何或結構模式中一致出現的長距離全局級依賴的卷積是互補的,但在對簡單紋理的依賴進行建模時,其作用與局部卷積類似。
所以SAGAN比較適合用在合成有着復雜幾何或結構模式的圖像中
6. Conclusion
在這篇論文中,我們提出了自注意生成對抗網絡(SAGANs),它將一個自注意機制整合到GAN框架中。自注意模塊可以有效地建模長距離依賴關系。此外,我們還證明了將譜歸一化技術應用到生成器中可以穩定GAN訓練,而TTUR可以加速正則化判別器的訓練。SAGAN在ImageNet上實現了類條件圖像生成的最新性能。