SAGAN(Self-Attention Generative Adversarial Networks)論文解讀附自己的理解

Self-Attention Generative Adversarial Networks

TensorFlow代碼:https://github.com/taki0112/Self-Attention-GAN-Tensorflow

Pytorch代碼(作者源碼):https://github.com/heykeetae/Self-Attention-GAN

看論文之前看了兩篇比較好的文章:https://blog.csdn.net/z704630835/article/details/86648924

https://blog.csdn.net/HaoTheAnswer/article/details/82733234

本文爲主要是自己對論文的理解與總結,實驗結果沒有附上,可在論文裏獲取。

論文原文鏈接:https://arxiv.org/abs/1805.08318

Work:

  1. introduce self-attention to the GAN framework (both G and D)
  2. Techniques to Stabilize the Training of GANs

       Spectral normalization for both generator and discriminator

       Imbalanced learning rate for generator and discriminator updates

       (two-time scale update rule (TTUR) TTUR)

這篇論文主要做的工作:

  1. 爲GAN的G網和D網引入了自注意力機制,用來捕獲全局依賴性。之前的GANs模型更易捕獲紋理特徵,而不是幾何、結構這種全局特徵。
  2. 加入了兩個穩定GAN 的技巧。Spectral normalization(譜歸一化)和two-time scale update rule(TTUR),G網和D網用採用兩種學習速率(更新規則)。

一、前言

        convolutional GANs have more difficulty in modeling multi-class dataset.

        卷積網絡的GAN對建模多類別數據集比較困難。

 

        傳統的卷積方法只根據低分辨率特徵圖中的空間局部點生成高分辨率細節。因爲卷積算子有一個局域接受域,距離較遠的依賴關係只能在經過幾個卷積層之後才能處理。這阻止了學習長期依賴關係,可能由於各種原因:一個小模型可能無法表示他們。

 

        優化算法可以協調多層來捕獲這些依賴項,可能難以發現參數值。這些參數化可能在統計上是脆弱的,當應用到前所未有的非常大的輸入,容易失敗。增大卷積核的大小可以提高網絡的表示能力,但是這樣做也會損失使用局部卷積結構獲得的計算和統計效率。

        另外,the state-of-the-art(最先進的) ImageNet GAN model注重紋理,不注重幾何形狀,很難捕捉只出現在幾類裏的幾何、結構模式(比如,狗,貓現實紋理區別很大,但是沒有清楚的分離的腳。)

        在SAGAN中,爲GAN引入Self-Attention自注意力機制,用於捕獲全局依賴性。可以使用來自所有特徵位置的提示生成細節,更注意全局性。

        本文工作:introduce a self-attention mechanism into convolutional GANs. The self-attention module is complementary to convolutions and helps with modeling long range, multi-level dependencies across image regions.

       自注意力模塊被引入,作爲卷積的一個補償,用來幫助建模整個圖像區域的長期、多層次的依賴關係。

二、自注意力機制模塊

       Convolution processes the information in a local neighborhood, thus using convolutional layers alone is computationally inefficient for modeling long-range dependencies in images.
       (分析同上)

       In this section, we adapt the non-local model of (Wang et al., 2018) to introduce self-attention to the GAN framework, enabling both the generator and the discriminator to efficiently model rela-

tionships between widely separated spatial regions.

       爲GAN的G和D都引入自注意力機制使得有效地建模(捕獲)相隔很遠的空間區域之間的關係。

       注意力機制解讀鏈接:

       https://blog.csdn.net/malefactor/article/details/78767781 深度學習中的注意力機制

       https://blog.csdn.net/hpulfc/article/details/80448570

 

      βj,i表示模型在合成j區域時關注第i個區域的程度。C是通道數,N是前一個隱藏層的特徵位置的數量。

圖中1x1卷積的理解:

(自己的理解,可能不太對。。。。。。)

       來自上一層隱藏層的圖像特徵x∈RC*N被轉換到兩個特徵空間f,g。然後接着去計算注意力。

        fx=Wfx,gx=Wgx,

        Wf,Wg實施了1x1卷積,根據代碼理解:

         f = conv(x, ch // 8, kernel=1, stride=1, sn=sn, scope='f_conv') # [bs, h, w, c']

         g = conv(x, ch // 8, kernel=1, stride=1, sn=sn, scope='g_conv') # [bs, h, w, c']

        其中,filter的位置是ch//8,1x1卷積的作用就是減少通道,實現通道融合。卷積核是1x1x(C/8),卷積前的通道大小爲C,1x1卷積後通道大小是C/8。(具體可搜索1x1卷積)

        也可以看出爲什麼是自注意力機制,f,g兩個特徵空間都來源於x的映射,即在注意力機制中,input和target都是輸入的x。

        注意力層的輸出是: o=(o1,o2,…,oN)∈RC*N

        最後我們爲Attention層的輸出乘以一個尺度係數,再加上輸入的特徵map,作爲最終得輸出。

 

        這樣做的好處是,gamma初始化爲0.這使網絡首先依賴局部特徵(本地的,當前位置特徵)的信息,然後再逐漸爲非局部區域分配權重。這是一個由簡單到複雜的過程。

        SAGAN是根據對抗網絡的loss的hinge版本進行訓練的,損失函數如圖:

        hinge loss.目的都是增加對分類影響較大的數據點的權重,減少與分類關係較小的數據點的權重.

 

三、穩定GANs訓練的技巧

3.1 Spectral normalization for both generator and discriminator

       讓每層網絡的網絡參數除以該層參數矩陣的譜範數滿足Lipschitz=1的約束,求得每層參數矩陣的譜範數,求得譜範數後,每個參數矩陣上的參數皆除以它,以達到歸一化目的。

       與其他歸一化技巧相比,它不需要其他超參數,不需要調參。另外一點就是它的計算代價相對比較少。

G的譜歸一化可以防止參數幅度的增大,避免異常梯度。

        譜歸一化Both on G and D,使每次生成器更新時,D更新次數減少,因此極大降低了計算代價。也呈現了較穩定的訓練

3.2 Imbalanced learning rate for generator and discriminator updates

        GAN的訓練都存在這個問題,容易模式崩塌。D能夠很好地判別真假,訓練的很快。而G的生成效果訓練遠遠落後於D.(D訓練的快能夠過早的判別真僞,之後G生成的圖片與真的差距越來越大。)所以傳統的判別器正則化也是爲了使D訓練的慢一點。

        爲什麼採用這個策略,因爲之前的給判別器加正則項,整體減速了訓練GAN的過程。

       傳統的爲判別器加正則項, D要更新許多次,G才能更新一次。提出的TTUR對判別器和生成器採用不同的學習速率,作爲判別器正則化學習慢的補償。使得讓D用更少的更新次數,G更新一次,成爲相對更穩定的訓練過程,努力使D的學習和G的學習同步。

We propose using TTUR specifically to compensate for the problem of slow learning in a regularized discriminator, making it possible to use fewer discriminator steps per generator step.

 

四、Experiments

         提出了兩個指標來衡量性能,結論就是本文的SAGAN性能很好。

分別給出了在G,D上分別/一起採用 SN,TTUR的性能對比。採用不同層次的feature map的性能對比。

         最後也和別的幾個GAN進行了對比,都是本文的,最佳。

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