引言
- 此篇提出了不使用卷积而單純使用变压器的GAN架構变压器,其在訓練上有很多技巧,也因此才能夠達到SOTA的程度,以新架構來說算是很好的成果了,雖然目前來說解析度還很低。
- 基于美国有线电视新闻网的GaN早在一開始也是透過的方式,後來才變成,而由這篇開始將GaN的架構帶向变压器。
方法
内存友好型生成器
- 由於Patch數量的增加會令記憶體和計算量指數成長,因此作者透過多级升级的方式,如上圖2左,減少Patch數量的同時加大長寬並在64×64之後同時減少通道,直到達到目标分辨率。
- 從Noise經過mlp之後加上Position Coding然後做Vit,Upscale的部分會先將1D的Patch Sequence變成H_i*W_i*C之後透過PixelShuffle做双三次提升把解析度的長寬提高兩倍,如下圖方式,最後再透過线性模型輸出H*W*3的RGB影像。
多尺度判别器
- Patch Split是很關鍵的一部份,如果Patch很大就會容易喪失一些細節紋理的部分,但是Patch小又很耗記憶體資源,跟CNN的概念很像,所以作者提出多尺度鉴别器如上圖2右,將不同Patch的同一張圖片分別經過线性模型後丟到不同Layers進行串联。
- Average Pooling的地方和Upscale類似,會先把一维句子轉成2D特征地图然後再下采样,在最後一個挡路的最前面會加上[CLS]Token,讓分类头輸出真假预测。
网格自我注意:一种用于图像生成的可伸缩自我注意变体
- GRID Self-Attendant就是將Resolsion大於32×32的Feature限縮Self-Attendant的Receptive Field到16×16的Non-Overlay Grid,而作者也針對Non-Overovered Grid可能造成边界伪像進行解釋,他說在訓練的前期確實有這問題,但是因為其鉴别器使用Multiscale的架構且有較大的Recependent Field,這部分就和一般Vit的任務不太一樣,像是物件偵測等沒有鉴别器輔助的任務目前看下來還是需要有与會有比較好的效果重叠。
探索训练食谱
数据增强
- 因為变形金刚相較於cnn是比較Flexible的架構,因此需要比較多的資料進行訓練,且透過增强帶來的成效會比cnn明顯很多。
相对位置编码
- 將原本Attribute的Position Coding加在Attendant Layer裡面變成,可以學到比較好的Relationship。
修正归一化
- 在LN之前先對每個Token做规范化,C是嵌入维度,用以讓模型更穩定。
实验
数据集
- CIFAR-10、标准-10、CelebA、CelebA-HQ、圣堂
实施
- 依照WGAN的設定並採用WGAN-GP丢失,採用DiffAug[68]的方式進行增强,指标使用初始分数(IS)、Frechet初始距离(FID),用16個V100進行訓練。
与最先进的GANS进行比较
CIFAR-10、标准-10、CelebA
- STL比CIFAR的資料數量大兩倍,因此效果又會相較基于cnn的的方式還好,成果如下圖。
向上扩展至更高分辨率
- 因為有多尺度鉴别器所以影像會有比較豐富的纹理,在細節上也會有比較好的結果。
数据增强对于TransGAN至关重要
- 可以看到在資料集不夠大時增强型對变压器的影響很大。
消融研究
- 基线方法(A)是指使用内存友好型和普通的鉴别器,下面的數值是FID。
- 下圖為是否使用GRID Self-Attendant的記憶體使用量,但沒提到Y軸的單位是什麼.
理解基于变压器的发电模型
- 找了一個也是多尺度表示,的模型,進行訓練過程和潜在空间插值,的比較,可以發現基于细胞神经网络的的GaN在早期訓練的比較好,且有平滑插值。
结论
雖然在記憶體使用量很可怕但未來往高解析度的方向是個必然的趨勢,可以期待之後的論文如何去實做,整理一下此篇的三個貢獻如下:
- 构建第一个GaN时,使用纯存储器友好型发生器和多尺度鉴别器,无需变压器和卷积。并进一步配备了新的网格自我注意机制。
- 我们研究了一些技术来更好地训练TransGAN,包括利用数据增强,修改层归一化,以及对生成器和鉴别器采用相对位置编码。
- 与当前最先进的GAN相比,TransGan实现了更高的好胜性能。
参考文献
[arxiv][arxiv]
原创文章,作者:fendouai,如若转载,请注明出处:https://panchuang.net/2021/07/22/%e5%8f%98%e5%bd%a2%e9%87%91%e5%88%9a%ef%bc%9a%e4%b8%a4%e4%b8%aa%e7%ba%af%e5%8f%98%e5%bd%a2%e9%87%91%e5%88%9a%e5%8f%af%e4%bb%a5%e5%88%b6%e9%80%a0%e4%b8%80%e4%b8%aa%e5%bc%ba%e5%a4%a7%e7%9a%84gan/