在前一段時(shí)間,Han Zhang 和 Goodfellow 等研究者提出添加了自注意力機(jī)制的生成對抗網(wǎng)絡(luò),這種網(wǎng)絡(luò)可使用全局特征線索來生成高分辨率細(xì)節(jié)。本文介紹了自注意力生成對抗網(wǎng)絡(luò)的 PyTorch 實(shí)現(xiàn),讀者也可以嘗試這一新型生成對抗網(wǎng)絡(luò)。
項(xiàng)目地址:https://github.com/heykeetae/Self-Attention-GAN
這個(gè)資源庫提供了一個(gè)使用 PyTorch 實(shí)現(xiàn)的 SAGAN。其中作者準(zhǔn)備了 wgan-gp 和 wgan-hinge 損失函數(shù),但注意 wgan-gp 有時(shí)與譜歸一化(spectral normalization)是不匹配的;因此,作者會移除模型所有的譜歸一化來適應(yīng) wgan-gp。
在這個(gè)實(shí)現(xiàn)中,自注意機(jī)制會應(yīng)用到生成器和鑒別器的兩個(gè)網(wǎng)絡(luò)層。像素級的自注意力會增加 GPU 資源的調(diào)度成本,且每個(gè)像素有不同的注意力掩碼。Titan X GPU 大概可選擇的批量大小為 8,你可能需要減少自注意力模塊的數(shù)量來減少內(nèi)存消耗。
目前更新狀態(tài):
注意力可視化 (LSUN Church-outdoor)
無監(jiān)督設(shè)置(現(xiàn)未使用標(biāo)簽)
已應(yīng)用:Spectral Normalization(代碼來自 https://github.com/christiancosgrove/pytorch-spectral-normalization-gan)
已實(shí)現(xiàn):自注意力模塊(self-attention module)、兩時(shí)間尺度更新規(guī)則(TTUR)、wgan-hinge 損失函數(shù)和 wgan-gp 損失函數(shù)
結(jié)果
下圖展示了 LSUN 中的注意力結(jié)果 (epoch #8):
SAGAN 在 LSUN church-outdoor 數(shù)據(jù)集上的逐像素注意力結(jié)果。這表示自注意力模塊的無監(jiān)督訓(xùn)練依然有效,即使注意力圖本身并不具有可解釋性。更好的圖片生成結(jié)果以后會添加,上面這些是在生成器第層 3 和層 4 中的自注意力的可視化,它們的尺寸依次是 16 x 16 和 32 x 32,每一張都包含 64 張注意力圖的可視化。要可視化逐像素注意力機(jī)制,我們只能如左右兩邊的數(shù)字顯示選擇一部分像素。
CelebA 數(shù)據(jù)集 (epoch on the left, 還在訓(xùn)練中):
LSUN church-outdoor 數(shù)據(jù)集 (epoch on the left, 還在訓(xùn)練中):
訓(xùn)練環(huán)境:
Python 3.5+ (https://www.continuum.io/downloads)
PyTorch 0.3.0 (http://pytorch.org/)
用法
1. 克隆版本庫
$ git clone https://github.com/heykeetae/Self-Attention-GAN.git
$ cd Self-Attention-GAN
2. 下載數(shù)據(jù)集 (CelebA 或 LSUN)
$ bash download.sh CelebA
or
$ bash download.sh LSUN
3. 訓(xùn)練
$ python python main.py --batch_size 6 --imsize 64 --dataset celeb --adv_loss hinge --version sagan_celeb
or
$ python python main.py --batch_size 6 --imsize 64 --dataset lsun --adv_loss hinge --version sagan_lsun
4. 享受結(jié)果吧~
$ cd samples/sagan_celeb
or
$ cd samples/sagan_lsun
每 100 次迭代生成一次樣本,抽樣率可根據(jù)參數(shù) --sample_step (ex,—sample_step 100) 控制。
論文:Self-Attention Generative Adversarial Networks
論文地址:https://arxiv.org/abs/1805.08318
在此論文中,我們提出了自注意生成式對抗網(wǎng)絡(luò)(SAGAN),能夠?yàn)閳D像生成任務(wù)實(shí)現(xiàn)注意力驅(qū)動的、長范圍的依存關(guān)系建模。傳統(tǒng)的卷積 GAN 只根據(jù)低分辨特征圖中的空間局部點(diǎn)生成高分辨率細(xì)節(jié)(detail)。在 SAGAN 中,可使用所有特征點(diǎn)的線索來生成高分辨率細(xì)節(jié),而且鑒別器能檢查圖片相距較遠(yuǎn)部分的細(xì)微細(xì)節(jié)特征是否彼此一致。不僅如此,近期研究表明鑒別器調(diào)節(jié)可影響 GAN 的表現(xiàn)。根據(jù)這個(gè)觀點(diǎn),我們在 GAN 生成器中加入了譜歸一化(spectral normalization),并發(fā)現(xiàn)這樣可以提高訓(xùn)練動力學(xué)。我們所提出的 SAGAN 達(dá)到了當(dāng)前最優(yōu)水平,在極具挑戰(zhàn)性的 ImageNet 數(shù)據(jù)集中將最好的 inception 分?jǐn)?shù)記錄從 36.8 提高到 52.52,并將 Frechet Inception 距離從 27.62 減少到 18.65。注意力層的可視化展現(xiàn)了生成器可利用其附近環(huán)境對物體形狀做出反應(yīng),而不是直接使用固定形狀的局部區(qū)域。