生成对抗网络英文(Text to image论文精读GigaGAN: 生成对抗网络仍然是文本生成图像的可行选择)
GigaGAN是Adobe和卡内基梅隆大学学者们提出的一种新的GAN架构 ,作者设计了一种新的GAN架构 ,推理速度 、合成高分辨率 、扩展性都极其有优势 ,其证明GAN仍然是文本生成图像的可行选择之一 。
文章链接:https://arxiv.org/abs/2303.05511
项目地址:https://mingukkang.github.io/GigaGAN/一 、原文摘要
最近 ,文字-图像合成技术的成功已经席卷全球 ,激发了大众的想象力 。从技术的角度来看 ,它也标志着设计生成图像模型所青睐的架构的巨大变化。GANs曾经是事实上的选择 ,有StyleGAN这样的技术 。随着DALL·e2的出现 ,自回归和扩散模型一夜之间成为大规模生成模型的新标准 。这种快速的转变提出了一个基本问题:我们能否扩大GANs的规模 ,从像LAION这样的大型数据集中受益?我们发现,随意增加StyleGAN架构的容量很快就会变得不稳定 。我们介绍了一种新的GAN架构GigaGAN ,它远远超过了这一限制 ,证明了GAN是文本到图像合成的可行选择 。GigaGAN有三大优势 。首先,它的推理速度快了几个数量级 ,合成一张512px的图像只需要0.13秒 。其次 ,它可以在3.66秒内合成高分辨率图像,例如1600万像素的图像 。最后 ,GigaGAN支持各种潜在空间编辑应用程序 ,如潜在插值 、样式混合和矢量算术操作 。
二 、为什么提出GigaGAN?
最近发布的模型如DALL·E 2 、Imagen 、Parti和Stable Diffusion开创了图像生成的新时代 ,实现了前所未有的图像质量和模型灵活性 。目前占主导地位的扩散模型和自回归模型都依赖于迭代推理 ,然而众所周知 ,迭代推理是一把双刃剑 ,虽然迭代方法可以实现简单目标的稳定训练 ,但在推理过程中会产生很高的计算成本。
而生成对抗网络只需通过单次向前传递生成图像 ,相较而言非常高效 ,其在建模单个或多个对象类方面表现出色,但在扩大规模时会经常遇见模式崩溃 ,在扩展到复杂的数据集或者更加开放的世界 ,仍然具有挑战性 。
于是,作者提出了一系列问题:
GANs能否继续扩大规模 ,并可能从这些复杂资源中受益 ,还是已经停滞不前? 是什么阻止了它们进一步扩大,我们能克服这些障碍吗?在这些问题的基础上 ,作者首先研究分析了StyleGAN的关键问题 ,其次重新引入了多尺度训练 ,找到了一种改进图像-文本对齐和生成输出的低频细节的新方案——GigaGAN ,与扩散和自回归模型相比 ,GigaGAN有三个主要的实际优势:
推理速度快 ,在0.13秒内生成512*512像素的图像 。 能合成超高清图像 ,可以在3.66秒内合成4k分辨率的超高分辨率图像。 可控图像合成应用 ,被赋予了一个可控的 、潜在的向量空间 ,可以用于充分研究的可控图像合成应用,例如风格混合 、prompt插值和prompt混合 。三、GigaGAN
3.1 、模型框架
GigaGAN模型框架如上图所示 ,首先 ,作者使用预训练的CLIP模型和预训练的文本编码器T提取文本嵌入 。然后使用交叉注意力
将本地文本描述符提供给生成器,全局文本描述符和潜在代码z一起被馈送到样式映射网络M以生成样式向量w(StyleGAN的方法)。样式向量w输入形成样本自适应核选择帮助调节主生成器 。右侧显示样本自适应核选择的具体过程 。
3.2 、前导知识
3.2.1、基线模型:StyleGAN 。
GigaGAN架构基于StyleGAN2的条件版本 ,由两个网络组成
G
=
G
~
∘
M
G=\widetilde{G} \circ M
G=G∘M,映射网络w = M(z, c)将输入映射到一个“风格 ”向量w ,它调制合成网络G
~
(
w
)
\widetilde{G}(\mathbf{w})
G(w)中的一系列上采样卷积层,以将学习到的常数张量映射到输出图像x 。其中卷积是生成图像的主要引擎 ,而“风格 ”向量w是调节模型的信息来源 。3.2.2 、 样本自适应核选择
为了处理互联网图像的高度多样化分布 ,文章提出了一种有效的方法来增强卷积核的表达能力 ,即基于文本条件处理实时创建卷积核 ,如下图所示
Filter Selection:这个方案中首先实例化了一组N个过滤器(图中叫Filter Bank):
{
K
i
∈
R
C
in
×
C
out
×
K
×
K
}
i
=
1
N
\begin{array}{c} \left\{\mathbf{K}_{i} \in {R}^{C_{\text {in }} \times C_{\text {out }} \times K \times K}\right\}_{i = 1}^{N} \end{array}
{Ki∈RCin ×Cout ×K×K}i=1N它在每一层取一个特征f
∈
R
C
i
n
f ∈R^{C_{in}}
f∈RCin ,然后样式向量w
∈
R
d
w ∈ R^d
w∈Rd经过一个仿射层来[
W
f
i
l
t
e
r
,
b
f
i
l
t
e
r
]
∈
R
(
d
+
1
)
×
N
[W_{filter}, b_{filter}]∈R^{(d+1)×N}
[Wfilter,bfilter]∈R(d+1)×N预测一组权重来平均滤波器 ,从而产生一个聚合滤波器K
∈
R
C
i
n
×
C
o
u
t
×
K
×
K
K ∈ R^{C_{in}×C_{out}×K×K}
K∈RCin×Cout×K×K,计算过程如下(不了解仿射变换的可同学可以看下这篇):
K
=
∑
i
=
1
N
K
i
⋅
softmax
(
W
filter
⊤
w
+
b
filter
)
i
\mathbf{K}=\sum_{i=1}^N \mathbf{K}_i \cdot \operatorname{softmax}\left(W_{\text {filter }}^{\top} \mathbf{w}+b_{\text {filter }}\right)_i
K=i=1∑NKi⋅softmax(Wfilter ⊤w+bfilter )i然后在StyleGAN2的正则卷积管道中使用该滤波器再经过一层仿射变换
[
W
f
i
l
t
e
r
,
b
f
i
l
t
e
r
]
∈
R
(
d
+
1
)
×
C
i
n
[W_{filter}, b_{filter}]∈R^{(d+1)×C_{in}}
[Wfilter,bfilter]∈R(d+1)×Cin进行权重调制:
g
adaconv
(
f
,
w
)
=
(
(
W
m
o
d
⊤
w
+
b
mod
)
⊗
K
)
∗
f
g_{\text {adaconv }}(\mathbf{f}, \mathbf{w})=\left(\left(W_{\bmod }^{\top} \mathbf{w}+b_{\text {mod }}\right) \otimes \mathbf{K}\right) * \mathbf{f}
gadaconv (f,w)=((Wmod⊤w+bmod )⊗K)∗f 其中⊗和∗表示(反)调制和卷积 。在高层次上 ,基于softmax的加权可以被视为基于输入条件的可微滤波器选择过程
。此外 ,由于滤波器选择过程只在每一层执行一次,选择过程比实际的卷积快得多 。
卷积滤波器在每个样本中动态变化 ,其与动态卷积的想法相同 ,但不同之处在于文章显式实例化了一个更大的滤波器组,并基于StyleGAN的w-空间条件下的单独路径选择权重 。3.2.3 、将注意力与卷积交织
建立这种长期关系的一种方法就是使用注意力层。BigGAN , GANformer和ViTGAN都将注意力层与卷积主干集成在一起来提高性能 ,但是如果简单地给StyleGAN添加注意层往往会导致训练崩溃 。这是由于鉴别器的Lipschitz连续性在稳定训练中发挥了关键作用,作者使用L2-distance代替点积作为注意对数来促进Lipschitz连续性 ,类似于ViTGAN
为了进一步提高性能 ,作者发现匹配StyleGAN的架构细节是至关重要的 。例如均衡学习率和从单位正态分布初始化权重。作者缩小L2距离对数以大致匹配初始化时的单位正态分布 ,并减少来自注意层的剩余增益 。另外通过绑定键和查询矩阵 ,并应用权重衰减来进一步提高稳定性 。
在综合网络G中 ,注意层与每个卷积块交错 ,利用样式向量w作为额外的标记。在每个注意块上 ,我们添加了一个单独的交叉注意机制
g
c
r
o
s
s
−
a
t
t
e
n
t
i
o
n
g_{cross-attention}
gcross−attention来处理单个词嵌入 。我们使用每个输入特征张量作为查询 ,文本嵌入作为注意机制的键和值 。3.3、生成器设计
3.3.1 、文本和潜在空间条件映射
强大的语言模型对于产生强大的结果必不可少 。作者对输入提示符进行标记化以产生条件向量
C
∈
R
C
×
1024
C∈R^{C×1024}
C∈RC×1024 ,并从预训练好的CLIP特征提取器的倒数第二层提取特征 。为了考虑额外的灵活性,模型在顶部应用额外的注意层T来处理词嵌入 ,然后将它们传递给基于mlp的映射网络:t
=
T
(
E
t
x
t
(
c
)
)
∈
R
C
×
1024
\mathbf{t}=T\left(\mathcal{E}_{\mathrm{txt}}(\mathbf{c})\right) \in \mathbb{R}^{C \times 1024}
t=T(Etxt(c))∈RC×1024,其中t的每一个分量ti都捕获了句子中第i个单词的嵌入 。t
l
o
c
a
l
=
t
1
:
C
/
E
O
T
t_{local} = t_{{1:C}/EOT}
tlocal=t1:C/EOT ,t
g
l
o
b
a
l
∈
R
1024
t_{global}∈R^{1024}
tglobal∈R1024,EOT指的是end of text ,通过MLP映射网络处理这个全局文本描述符t
g
l
o
b
a
l
t_{global}
tglobal以及潜在代码z ~ N(0,1),以提取样式w
=
M
(
z
,
t
g
l
o
b
a
l
)
w = M(z, t_{global})
w=M(z,tglobal) ,全部过程为:(
t
local
,
t
global
)
=
T
(
E
t
x
t
(
c
)
)
,
w
=
M
(
z
,
t
global
)
\begin{gathered}\left(\mathbf{t}_{\text {local }}, \mathbf{t}_{\text {global }}\right)=T\left(\mathcal{E}_{\mathrm{txt}}(\mathbf{c})\right), \\ \mathbf{w}=M\left(\mathbf{z}, \mathbf{t}_{\text {global }}\right)\end{gathered}
(tlocal ,tglobal )=T(Etxt(c)),w=M(z,tglobal )与原来的StyleGAN不同 ,模型既使用基于文本的样式代码w来调制合成网络eG,又使用词嵌入tlocal作为交叉注意的特征:
x
=
G
~
(
w
,
t
l
o
c
a
l
)
x = \widetilde{G}(w,t_{local})
x=G(w,tlocal),文本图像对齐在视觉上随着交叉注意力的作用而改善 。3.3.2 、网络
上图表示了生成器网络结构 ,灰色为卷积 ,黄色为自注意力层 ,蓝色为交叉注意力层 ,合成网络的具体过程用公式表述如下:
f
ℓ
+
1
=
g
xa
ℓ
(
g
attn
ℓ
(
g
adaconv
ℓ
(
f
ℓ
,
w
)
,
w
)
,
t
local
)
\mathbf{f}_{\ell+1}=g_{\text {xa }}^{\ell}\left(g_{\text {attn }}^{\ell}\left(g_{\text {adaconv }}^{\ell}\left(\mathbf{f}_{\ell}, \mathbf{w}\right), \mathbf{w}\right), \mathbf{t}_{\text {local }}\right)
fℓ+1=gxa ℓ(gattn ℓ(gadaconv ℓ(fℓ,w),w),tlocal )其中g’xa 、g’attn和g’adaconv表示交叉注意 、自我注意和权重(反)调制层的第l层 。
3.4 、鉴别器设计
鉴别器由图像处理和文本处理两个分支组成 。文本分支处理与生成器类似的文本 。图像分支接收一个图像金字塔 ,并对每个图像尺度进行独立预测。此外 ,预测是在下采样层的所有后续尺度上进行的 ,使其成为一个多尺度输入 ,多尺度输出(MS-I/O)鉴别器 。
鉴别器由使用条件文本函数t
D
t_D
tD处理文本和函数φ处理图像的独立分支组成 。通过函数ψ比较两个分支的特征来预测真假。3.4.1 、文本处理
首先 ,为了将条件作用合并到鉴别器中,首先从文本c中提取文本描述符
t
D
t_D
tD:与生成器类似 ,我们应用一个预先训练好的文本编码器 ,如CLIP,然后是几个可学习的注意层进行提取 ,这里只用到全局描述符 ,不再使用局部描述符 。3.4.2 、多尺度图像处理
多尺度图像处理中,随着模型大小的增加 ,鉴别器网络的依赖于高分辨率层 ,早期低分辨率层变得不活跃 。于是作者重新设计了模型架构 ,以提供跨多个尺度的训练信号。
为了在不同尺度上提取特征 ,作者定义了特征
ϕ
i
→
j
:
R
X
i
×
X
i
×
3
→
R
X
j
D
×
X
j
D
×
C
j
\phi_{i \rightarrow j}: \mathbb{R}^{X_i \times X_i \times 3} \rightarrow \mathbb{R}^{X_j^D \times X_j^D \times C_j}
ϕi→j:RXi×Xi×3→RXjD×XjD×Cj,每个子网络φ
i
→
j
φ_{i→j}
φi→j都是全φ的子集 ,φ
→
L
φ_0→L
φ0→L ,其中i > 0表示进入较晚 ,j < L表示退出较早 。φ中的每一层都是由自我注意组成 ,然后以步长为2进行卷积 。最后一层将空间范围压缩为1 × 1张量 。这将产生X
j
D
{X^D_j}
XjD ={32,16,8,4,1}的输出分辨率 。这允许我们将金字塔上分辨率较低的图像注入中间层 。由于我们在不同级别上使用共享的特征提取器 ,并且大多数添加的预测都是在低分辨率下进行的,因此增加的计算开销是可控的 。3.5 、损失函数
3.5.1 、多尺度输入 ,多尺度输出对抗损失
总的来说 ,我们的训练目标包括鉴别器损失,以及我们提出的匹配损失 ,以鼓励鉴别器考虑条件:
V
M
S
−
I
/
O
(
G
,
D
)
=
∑
i
=
L
−
1
∑
j
=
1
L
V
G
A
N
(
G
i
,
%2创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!