【GigaGAN论文总结】Scaling up GANs for Text-to-Image Synthesis
- 1、论点
- 2、贡献
- 3、方法概览
- Sample-adaptive kernel selection
- Interleaving attention with convolution
- Generator design
- Discriminator design
- Multi-scale input, multi-scale output adversarial loss
- Matching-aware loss
- CLIP contrastive loss
- Vision-aided adversarial loss
- GAN-based upsampler
- 生成的一些图片
全文在这:https://blog.csdn.net/qq_45934285/article/details/130614710?spm=1001.2014.3001.5501
1、论点
因为扩散和自回归模型的训练目标简单,稳定等特点。现在超大模型、数据和计算资源现在都用于扩散和自回归模型。作者在这篇工作中探讨——GANs是否可以继续扩大规模并可能从这些资源中获益,或者它们已经停滞不前了?是什么阻止了它们进一步扩展,我们能否克服这些障碍?
模型 | 优点 | 缺点 |
---|---|---|
扩散模型 | 1.训练目标简单 2.训练稳定 | 1.计算成本高 2.慢 3.慢从而导致交互性差 |
GAN | 1.高效 2.擅长于建模单个或多个对象类 | 1.训练过程不稳定 2.多样性较差的缺点使得GANs难以扩展并应用于新的域。 |
自回归模型 | 1.训练目标简单 2.训练稳定 | 1.计算成本高 2.慢 3.慢从而导致交互性差 |
十亿参数GigaGAN 的实现,是Adobe 的新 SOTA GAN,其证明GAN仍然是文本生成图像的可行选择之一。(比之前的GANs参数大,但是对于目前的大模型而言还是不够,不过其关于模型大小还未达到质量饱和。)
在最近的DALL·E 2、Imagen、Stable Diffusion等等出现之后,相较于diffusion model和AR模型,GANs已经不被大家青睐,作者想证明一下大规模GAN模型在大数据集上的表现依然可行。
并给出了GAN模型的卖点:
- 更快的生成速度(在推理时间上要快几个数量级,合成512px图像只需要0.13秒。)
- 生成高分辨率图片(可以合成高分辨率的图像,例如,在3.66秒内合成1600万像素的图像。)
- 平滑的内插和样式混合。(利用不同的prompt连续的编辑图像。)
2、贡献
- 将GAN的分数刷过diffusion(FID更小,但是效果不一定好,在开发世界的文本条件生成还是不如DALL-E 2等。但这是第一个基于GAN的文生图大模型);
- 提出了提高stylegan规模的方法: 保留一组过滤器,并采用特定于样本的线性组合;
- 重提了多尺度训练利用低分辨率信息;
- 提出了两阶段的GigaGAN模型,其中第二阶段可以做为很好的插值器(超分网络);
- StyleGAN的 W − s p a c e \mathcal{W}-space W−space技术可以迁移到GigaGAN,并且GigaGAN有文本控制生成能力。
3、方法概览
总的来看利用了CLIP的预训练模型,attention layers T来提取文本嵌入得到
t
l
o
c
a
l
t_{local}
tlocal和
t
g
l
o
b
a
l
t_{global}
tglobal。
使用交叉注意将局部文本描述符输入到生成器。
全局文本描述符和潜在代码z被输入到样式映射网络M以产生样式代码w。
样式代码w使用样式自适应内核选择来调制主生成器,如右图所示。
该生成器通过将中间特征转换为RGB图像,输出高分辨率到低分辨率的图像金字塔。(空间分辨率分别为
{
S
i
}
i
=
0
L
−
1
=
{
64
,
32
,
16
,
8
,
4
}
\{S_i\}^{L−1}_{i=0} =\{64, 32, 16, 8, 4\}
{Si}i=0L−1={64,32,16,8,4})
为了实现更高的容量,还在每个尺度上使用多个注意和卷积层。
最后还使用了一个单独的上采样器模型,这在图中没有显示。
生成器生成过程是x=G(z,c),z是latent code,c是text-conditioning signal。
作者认为限制GANs开放式文本条件生成的原因是对与卷积层的依赖,故根据输入条件动态的选择卷积滤波器和利用注意力机制来获取long-range依赖或许能有帮助。
Sample-adaptive kernel selection
基于文本条件动态创建卷积核,style vector w=M(z, c)通过一个affine layer然后对这个Filter Bank以Softmax方式预测一组平均权重,然后得到这个Selected Filter。
得到的Selected Filter K 与经过另一个affine layer的w进行权重的解调制得到Modulated weights,将之与滤波器组每一层的特征
f
∈
R
C
i
n
\mathrm{f}\in \mathbb{R}^{C_{in}}
f∈RCin进行卷积操作得到一个新的滤波器
g
a
d
a
c
o
n
v
(
f
,
w
)
g_{adaconv}(f,w)
gadaconv(f,w)
Interleaving attention with convolution
提出卷积的局限,将注意力机制与卷积结合,简单加attention到卷积的backbone会导致训练崩溃,这里有一些trick,用L2-distance代替原来attention logits的点积。(self-attention)
cross-attention是使用每个输入特征张量作为query,,文本嵌入作为注意机制的key和value。
Generator design
生成器生成的图片x,依据style code w和
t
l
o
c
a
l
t_{local}
tlocal来进行生成,这里的
t
l
o
c
a
l
t_{local}
tlocal是利用cross-attention融入生成器的,而style code w则是利用Sample-adaptive kernel selection融入生成器。
Discriminator design
我们的鉴别器由两个分支组成,分别用于图像处理和文本条件
t
D
t_D
tD处理。
文本分支处理类似于生成器的文本处理。
图像分支接收图像金字塔(高分辨率到低分辨率),并对每个图像尺度做出独立的预测。
此外,对下采样层的所有后续尺度进行预测,使其成为一个多尺度输入、多尺度输出(MS-I/O)鉴别器。
一次性对整个生成图像的金字塔进行预测是不可行的,因为限制了生成器对其最初的低分辨率输出进行调整。这里鉴别器是鉴别一个等差序列,即对于 x i x_i xi,预测 i < j ≤ L i<j≤L i<j≤L的真假,注意 x 0 x_0 x0是最大的图片。(有助于提高稳定性)
还利用了特征提取器 ϕ \phi ϕ每一层由self-attention和stride为2的convolution组成,来提取不同尺度上的特征。(这可以将图像金字塔上的低分辨率图像特征注入中间层的高分辨率图像)
Multi-scale input, multi-scale output adversarial loss
总的来说,训练目标包括鉴别器损失,以及匹配损失,以使得鉴别器考虑条件作用:
其中
V
G
A
N
\mathcal{V}_{GAN}
VGAN为标准的非饱和non-saturating GAN损失。
为了计算鉴别器输出,训练了预测器
ψ
ψ
ψ,它使用文本特征
t
D
t_D
tD来调制图像特征
ϕ
(
x
)
\phi (x)
ϕ(x):
其中
ψ
j
ψ_j
ψj为四层1×1调制卷积,
C
o
n
v
1
×
1
Conv_{1×1}
Conv1×1为跳跃连接skip connection,显式保持无条件预测分支。
Matching-aware loss
为了让鉴别器考虑条件,将x与一个随机的、独立的采样条件
c
^
\hat{c}
c^匹配,并将它们表示为fake pair:
其中(x, c)和
c
^
\hat{c}
c^分别从
p
d
a
t
a
p_{data}
pdata中采样。
这种方法可以明显提高性能。
CLIP contrastive loss
利用现成的预训练模型作为损失函数,对比交叉熵损失contrastive cross-entropy loss:
其中
{
c
n
}
=
{
c
0
,
.
.
.
}
\{c_n\} = \{c_0, . ..\}
{cn}={c0,...}是从训练数据中采样的字幕captions。
CLIP的contrastive cross-entropy loss目的是为了对图像和文本之间进行对齐
Vision-aided adversarial loss
最后,构建了一个额外的鉴别器,使用CLIP模型作为骨干,称为Vision-Aided GAN。
冻结CLIP图像编码器,从中间层提取特征,并通过一个3 × 3 conv层的简单网络对其进行处理,以做出真实/虚假的预测。
最终训练函数是
V
(
G
,
D
)
=
L
M
S
−
I
/
O
(
G
,
D
)
+
L
C
L
I
P
(
G
)
+
L
V
i
s
i
o
n
(
G
)
\mathcal{V}(G,D) = \mathcal{L}_{MS-I/O}(G,D) + \mathcal{L}_{CLIP}(G) + \mathcal{L}_{Vision}(G)
V(G,D)=LMS−I/O(G,D)+LCLIP(G)+LVision(G)。
GAN-based upsampler
在高分辨率下比扩散模型效率高,因为在高分辨率下,扩散模型不能承担与基模型一样多的采样步骤。
生成的一些图片