(2022,MoCA)Few-shot 图像生成的原型记忆(Prototype Memory)和注意力机制

Prototype Memory and Attention Mechanisms for Few Shot Image Generation

公众号:EDPJ

目录

0. 摘要

1. 简介

2. 相关工作

3. 方法

3.1 原型记忆学习 

3.2 记忆概念注意力(MEMORY CONCEPT ATTENTION,MoCA) 

3.3 空间上下文注意力 

3.4 整合两条调制路径 

4. 实验 

4.1 few-shot 图像合成性能

4.2 消融研究 

4.3 原型概念分析 

4.4 抗噪声的鲁棒性

5. 结论

6. 道德声明

8. 附录

8.1 消融:记忆聚类组织的重要性

8.2 LS-GAN 上的 MOCA

8.3 限制和失败

8.4 算法

8.6 记忆概念分析

8.9 可视化细节 

参考

S. 总结

S.1 核心思想

S.2 方法

S.3 限制

S.4 概念簇分析


0. 摘要

最近的发现表明,猕猴初级视觉皮层 (V1) 表层的神经编码复杂、多样且超级稀疏。 这让我们思考这些“祖母细胞”的计算优势和功能作用。在这里,我们建议这些单元可以作为原型记忆先验(prototype memory priors),在大脑中的图像生成过程中偏置和塑造分布式特征处理。这些记忆 原型是通过动量在线聚类(momentum online clustering)学习的,并通过基于记忆的注意力操作来利用。结合这种机制,我们提出了记忆概念注意力(Memory Concept Attention,MoCA)来提高 few-shot 图像生成的质量。我们表明,具有注意力机制的原型记忆可以提高图像合成质量,学习可解释的视觉概念簇,并提高模型的鲁棒性。我们的结果证明了,这些超稀疏复杂特征检测器可以作为原型记忆先验来调节视觉系统中的图像合成过程。.

1. 简介

最近基于钙成像的神经生理学发现表明,V1 表层中的许多神经元强烈调整到复杂的局部模式(图样,pattern),而不是简单的定向边缘或条形。 这些复杂的神经元在暴露于它们喜欢的模式时表现出比暴露于简单的光栅和条状刺激时更强的反应(增加 3-5 倍)。 这些神经元选择性的高度特异性表明它们可能充当特定模式检测器。 由于对复杂刺激的选择性,这些 V1 神经元的群体反应非常稀疏。大约 1000 个神经元中只有 4-6 个对任何给定模式或自然刺激反应强烈。 这一发现让人想起早期的一项研究,该研究在海马体中发现了类似的稀疏概念编码。 V4 中的最新数据也表明存在具有类似高度稀疏性的单元。 因此,我们推测这些单元应该存在于分层视觉系统的每一层。 我们将这些高度选择性的稀疏响应特征检测器称为 “祖母神经元(grandmother neurons)”,以强调它们可能对特定原型进行显式编码,即使在现实中,原型可能由稀疏的神经元簇而不是单个单元表示。 每个视觉区域不同层的神经元表现出不同程度的响应稀疏性,在各种功能上相互补充。 对这组多样化的超稀疏响应特征检测器的观察提出了以下问题:在早期视觉皮层中拥有此类神经元可能带来的计算优势和基本原理是什么?

在本文中,我们假设这些“祖母神经元”可以在调节图像合成过程之前充当原型记忆。 图像合成是许多视觉系统分层模型的中心主题,包括交互式激活和预测编码,并且被假设通过视觉皮层区域之间自上而下的反馈连接发生。 这些先验允许合成过程超越当前的空间环境,并利用随着时间的推移学习和积累的原型记忆。 因此,“祖母单元”在图像生成过程中充当记忆注意过程中的结构概念先验。

为了强调拥有超越当前图像表示的注意力机制的重要性,我们将我们提出的基于记忆的注意力过程命名为记忆概念注意力(Memory Concept Attention,MoCA)。 MoCA 是一个模块,可以插入到 GAN 框架中任何现存的生成器架构层中。 我们使用最先进的 StyleGAN2 和新提出的 few-shot 图像生成器 FastGAN 进行大量实验来测试我们的模型。 我们的实验表明,在训练过程中利用语义簇中积累的原型信息可以改进 Animal-Face Dog、100-Shot-human face、ImageNet 上的 few-shot 图像生成 -100、COCO-300、CIFAR-10 和 Caltech-UCSD Birds (CUB)。 此外,我们还发现,带有 MoCA 的生成器可以在测试期间抵抗一定程度的注入噪声损坏,这表明在生成期间先处理结构化记忆可以提高模型的稳健性。 我们的目标是探索原型单元在标准计算机视觉图像生成任务中作为先验记忆的效用,以期在功能层面上深入了解视觉皮层中具有这些 “祖母神经元” 的优势。

2. 相关工作

视觉概念学习

  • 视觉概念,定义为中级语义特征,已被证明在前馈投票策略(feedforward voting scheme)中使用时,可有效克服由于遮挡导致的对象错误分类。
  • 使用原型神经元的视觉概念的显式 representation 也可以作为构建组合机器的有效可重构部分。
  • 在本文中,我们探索以原型记忆先验的形式使用视觉概念,为图像生成的复杂合成任务提供临时空间和临时上下文调制以及注意力机制。

Self-Attention。深度学习中的注意力机制在自然语言处理(NLP)中很流行,在视觉界也被称为“非局部网络”。

  • (2019) Zhang 等人在 Self-Attention GAN 的生成模型中引入了 self-attention。 从那时起,将自注意力添加到生成对抗网络中已成为一种标准做法。
  • (2018) Brock 等人和 (2020) Esser 等人展示了在高保真图像合成模型中使用自注意力的好处。 然而,GAN 中当前的自注意力机制仅利用同一图像中的上下文信息来调节激活。

在这项工作中,我们建议使用中级视觉概念原型的内存缓存,来提供标准自注意力之外的额外调制。 在我们的工作中,激活机制不仅关注图像本身的空间上下文,还关注随时间积累的一组缓存内存原型。

Prototype Memory Mechanism。记忆库可以在很长一段时间内捕获不同的特征,并且已被证明在其他领域是有效的。

  • (2018) Wu 等人在对比学习中利用记忆库来获得更多不同的负样本进行对比。
  • (2020) Caron 等人还在训练期间使用内存队列来累积代表性负样本。
  • (2020) He 等人表明,使用动量更新编码器可以提高记忆库中积累的特征的稳定性,我们也将在学习原型时使用这种策略。
  • (2017) SimGAN 引入了图像池(pool)技巧,它使用缓冲区来存储以前生成的样本,以使鉴别器不仅关注当前的训练batch,而且还基于记忆改进自身。

我们工作的主要创新是受最近的神经生理学发现的启发,我们应该在中间层次上拥有记忆库,原则上,在视觉层次结构的每个层次上都有记忆库。 虽然早期的内存库工作在实例级别存储图像用于对象识别,这对图像生成没有用,但我们认为层次结构较低级别的内存库可以存储对图像生成有用的部件和子部件的原型。 特别是 few-shot 图像生成可以受益于支持灵活组合和分解部件的存储机制,尤其是在数据有限的情况下。

Few-Shot Prototypes Learning。少样本学习是指在训练数据非常有限的情况下执行计算机视觉任务。 少样本学习文献中流行的想法之一是从训练集中形成不同的原型并在测试期间使用它们(Snell 等人,2017)。 尽管 MoCA 也在训练阶段形成原型并在推理过程中使用它们,但我们的工作与 Snell 等人之间有两个重要区别:

  • 他们在实例级别形成原型,而 MoCA 的原型是在中间部件级别生成的
  • 他们简单地选择最接近的原型来获得离散类预测。而 MoCA 采用注意力,根据原型连续调制激活特征,因此可以应用于更广泛的任务集,包括图像合成 ,它预测连续的像素值。

Few-Shot Image Generation。Few-shot 图像生成任务是一项具有挑战性的任务,因为 GAN 非常需要数据且效率低下。 在当前的 few-shot 图像生成方案中,无条件图像生成尤其困难。 文献中已经开发了不同的解决方案。

  • (2020) DiffAug 和 (2020) StyleGAN-Ada 等近期作品提出了可鉴别增强以避免判别器过度拟合。
  • (2021) InsGen 提出使用对比学习目标来增强 few-shot 生成设置中的对抗性损失。
  • 这些工作大多提出了改进鉴别器的方法,以便它们可以为生成器提供更好的错误信号,但没有专门针对生成器架构。
  • (2021) 另一项研究提出了生成器架构以避免模式崩溃。 用于少量图像生成(数百张真实图像)的最先进架构是 FastGAN。

在这里,我们在生成器端提出了一个新的架构变化,并在实验部分与 FastGAN 架构进行了广泛的比较。

3. 方法

我们的主要贡献是引入了一种新颖的基于原型的记忆调制模块来改进 GAN 的生成器网络。 前一层的激活被两个注意力过程修改:

  • 使用记忆概念注意力(MoCA)的上下文调制,
  • 生成图像本身(自注意力)的空间上下文调制。

我们的模块采用 GAN 层次结构中的特征图作为输入,结合这两种机制的结果来调制特征图以进行进一步的下游处理。模型结构如上图所示。

  • 在 MoCA 中,输入激活 Aij 首先通过 1x1 卷积 θ(·) 转换到低维空间,并用于在赢家通吃过程中选择其最接近的语义单元。
  • 选定的语义单元将允许其集群中的原型记忆单元参与 MoCA 过程,生成一个调制,然后由 1x1 网络 O(·) 从 embedding 空间映射回特征空间。
  • 在 self-attention 路径中,整个feature map A 经过两个对应的1x1卷积 Φ(·) 和 Ψ(·) 转化为 key 和value,然后关注 query 向量(从 Aij 编码),然后映射回特征空间。
  • 最后,将两条路径的输出聚合在一起,形成下一层的输入。
  • 请注意,解码器 O(·) 和 query 编码器 θ(·) 在两条路径之间共享。

形式上,我们将 MoCA 层的输入表示为特定层的激活 A ∈ R^(n x c x h x w)。 输出产生将 A 更新为 ^A 的调制 H ∈ R^(n x c x h x w)。 为了让信息被灵活调制,我们用如下函数将 A 通过 1x1 卷积转换到低维空间

3.1 原型记忆学习 

在本节中,我们将讨论用作一种调制路径的原型存储器的组织。 我们的原型概念记忆按层次排列成语义单元和原型单元。

如图 2 所示,每个语义单元都是代表一组原型单元的聚类均值。 形式上,假设我们的记忆 P 由 M 个语义单元组成 P = {K1, K2,..., KM}。对于每个语义单元 Ki,有 T 个原型单元

存储在与 Ki 相关联的记忆单元中,其中

是存储的原型单元的平均值。 这些原型单元来自先前迭代中的特征映射,经过动量更新上下文编码器 ~Φ(·) 转换后,并在每次训练迭代结束时在内存中更新。~Φ(·) 是 Φ(·) 的动量对应物,其参数更新如等式 1 所示,动量参数为 m。~Φ(·) 不像 Φ(·) 那样快速变化,因此学习到的原型更稳定,积累了当前训练批次之外的信息。 

在通过 ~Φ(·) 转换为低维空间后,特征图中每个超列(像素位置)的激活被分配到其最近的语义簇,并替换该簇的记忆库中的现有原型单元。 我们使用随机替换策略来防止原型单元格全部崩溃为微不足道的解决方案(trivial solutions)。 更新以 batch 同步的方式完成,即基于最近的 batch 更新整个内存后,我们将 Ki 更新为第 i 个原型簇的平均值。 

3.2 记忆概念注意力(MEMORY CONCEPT ATTENTION,MoCA) 

正如我们在 3.1 节中所描述的,我们的内存是从整个训练集以及不同训练期间收集的超列激活模式的缓存。 通过语义单元 (Ki) 组织它们,我们可以将更多不同的信息路由到最终激活,同时仍然保持高数据效率,从而产生更高质量的图像合成任务。 在本节中,我们将介绍给定现有记忆 P 和如下输入特征转换的详细操作。

在记忆注意过程中,来自 θ(A) 的激活列

首先选择最接近的语义单元 Ki 并从内存中检索关联的原型单元矩阵

其中 E^(i) 的每一列 j 是属于所选语义单元 Ki 的簇的原型单元

下一步是使用原型单元矩阵 E^(i) 处理激活列 a。 首先,相似性分数 s 计算为

然后对 s 应用非线性 softmax 归一化以获得归一化注意力权重 β,其中,对于每个条目 β_t (t={1,2,... T}) 应用等式 2。 

使用(软)归一化的注意力权重 β,我们可以为激活列 a 构建从记忆

中检索到的信息。 通过对每个空间位置的激活 a 以及批处理中的每个图像应用相同的操作,我们获得

3.3 空间上下文注意力 

虽然先验记忆很重要,但空间上下文信息也在激活调制中发挥作用。 因此,我们还使用非局部网络在同一层中实现空间上下文调制。 具体来说,我们首先计算 θ(A) 和 Φ(A) 之间的亲和力图(affinity map),表示为

然后通过 softmax 对 S 的每一行进行归一化,以允许计算相当稀疏的注意力权重 ^S。^然后乘以 Φ(A) 得到空间上下文调制张量

3.4 整合两条调制路径 

最后,我们通过逐元素加法整合来自于内存 H_m 的检索信息和空间上下文调制 H_s

然后通过 1x1 卷积 O(·) 将其转换回原始特征空间。 一个可学习的参数 γ 作为权重,加权后加回到输入激活中,即

然后输出到生成器的下一层。 

4. 实验 

提议的 MoCA 模块是对生成器架构的改进,并不特定于鉴别器的训练技术。 请注意,一些关于无条件少样本图像生成的现有工作(DiffAug、ADA等)通过关注鉴别器端来提高图像合成的质量 . 例如,DiffAug 建议在将生成的图像输入鉴别器之前对生成的图像进行增强,以防止鉴别器过度拟合。 尽管这一行工作很有价值,但它与 MoCA 是正交的和互补的,因为 MoCA 是一种生成器架构,可以在所有这些判别器训练技术下进行训练。 在以下实验中,我们使用带有 DiffAug 或 ADA 增强鉴别器的 MoCA 增强生成器。

4.1 few-shot 图像合成性能

我们在表 1(FastGAN)和表 2(StyleGAN2)中显示了每个数据集的 MoCA 最佳性能与基线模型之间的定量比较。 请注意,KID 以 10^(-3) 的比例显示。 如结果所示,当将 MoCA 添加到生成器时我们观察到在这种困难的低数据状态下图像合成质量方面的持续改进。

如表 1 所示,在 FID 分数方面,我们观察到,使用 FastGAN 基础架构,MoCA 可以带来 Animal Face Dog 5.8% 的提升,Obaxx 提升 13.8%,ImageNet-100 提升 21.7%,COCO-300 提升 12.4% 数据集。 使用 KID 指标也观察到类似的改进。

为了进一步测试 MoCA 在更强大模型上的增强,我们使用 StyleGAN2 基础架构进行实验,如表 2 所示。 使用 FID 评估指标,我们观察到 Animal Face Dog 数据集提高了 5.1%,Obaxx 数据集提高了 8.1%,ImageNet-100 数据集提高了 14.1%,COCO-300 数据集提高了 17.3%。 请注意,ImageNet-100 和 COCO-300 数据集非常具有挑战性,因为它们包含的场景比 Animal Face Dog 和 Obaxx 多得多。 为了补偿 StyleGAN2 基础架构的模型大小,我们在使用 StyleGAN2 和 MoCA-StyleGAN2 进行训练时将 ImageNet-100 和 COCO-300 缩小到 64x64 图像大小。从结果中,我们观察到无论图像尺寸如何,MoCA-StyleGAN2 始终合成比基线更好的图像。 此外,我们还观察到鉴别器端的不同增强方法不会影响 MoCA 的改进,因为基于 FastGAN 的模型使用 DiffAug,而基于 StyleGAN2 的模型使用 ADA 技术。

4.2 消融研究 

在本节中,我们介绍了 MoCA 层的消融研究与单独的自注意力相比,以及动量头(momentum head)设计的重要性。 更多关于 MoCA 中使用的内存聚类组织设计的消融研究可以在附录 8.1 中找到,更多的可视化分析可以在附录 8.6 中找到。

自注意力与 MoCA。 在 StyleGAN2 和 FastGAN 上,我们将 MoCA 的性能与标准自注意力模块进行比较,以验证我们模型的性能提升不仅是由于自注意力块,因为之前的几项工作都强调了应用GAN 上的自关注以捕捉非局部依赖的优势 。表 3 显示,相比于基线架构,MoCA 始终优于标准的自注意力模块,这表明 MoCA 模块在我们的方法中发挥着不可替代的作用。 

动量更新机制的重要性。我们还研究了更新概念编码器的不同方式的效果。 表 4 显示,当使用动量更新概念编码器时,模型在多个数据集上的 FID 通常会有所提高。 借助势头,FastGAN 在更大、更多样化的数据集(如 AnimalFace Dog 和 CUB)上的 FID 明显更好。 这支持了我们使用动量更新编码器构建更通用的内存库的动机,该内存库包含当前训练 batch 之外的更广泛信息。

4.3 原型概念分析 

在这里,我们证明了在对抗学习图像合成的过程中,MoCA 可以以无监督的方式学习不同的语义概念,由“祖母单元”或其代表表示。

MoCA 中的语义概念。我们在前馈生成过程中为 16 x 16 特征图中的每个超列分配了一个语义簇(集群选择机制在方法第 3.2 节中描述)。 我们将与每个所选原型语义聚类相关联的所有超列的感受野或投影域标记为生成图像中的白色边界框,图 4 中显示了一些示例。我们可以观察到不同的聚类编码不同的语义概念。 例如,Cluster 0 往往与火车轨道相关联。 Cluster 2 覆盖颜色均匀的区域,例如天空和地面。 Cluster 17 注意火车的侧面。 Cluster 8 专注于列车本身,尤其是前部。 沿着每一行,我们观察到 MoCA 对特定图像的影响可以分解为不同的簇。 一些簇更受欢迎(例如集群 0、2、8),而其他簇则更有选择性地使用(例如,Cluster 17 的第三张图像)。

理解原型单元。为了理解缓存在每个 MoCA cluster 中的原型单元,我们在任何超列的感受野中识别了生成的图像块,其激活最接近来自 100 个图像生成的超列的指定 cluster 中的原型单元内存 . 图 5 显示最接近原型记忆的图像块在视觉上是相似的,并且属于同一簇的原型在语义上相关但在视觉特征上截然不同。 我们可以看到,不同的原型单元被专门化为它们所属的语义簇的子部分。 例如,在 cluster 0 中,原型 20 是铁路或火车轨道的缓存的激活,但其他原型包括火车的顶部。 也可以对 cluster 2 和 8 进行类似的观察(图 5)。 这三个 cluster 经常被查询,因此可能包含不同但语义相关的原型记忆。 原型记忆类似于 Wang 等人 (2017) 提出的的“视觉概念”,并且可以潜在地用作视觉概念来实现图像合成的分层合成系统。 

4.4 抗噪声的鲁棒性

我们评估了我们提出的记忆概念注意模块的噪声鲁棒性,并将其与标准的自我注意模块进行了比较。 评估是在没有向中间层注入任何噪声的情况下训练的 FastGAN 模型上进行的。 在评估阶段,我们将方差从 0 到 1 的不同幅度的高斯噪声注入到 MoCA 层和标准自注意力层的输入特征图中。 我们的结果(表 5)表明,在没有外部存储器帮助的情况下,self-attention 更容易受到噪声攻击,而 MoCA 通常对噪声不太敏感。 我们怀疑使用 MoCA,特征图可以关注记忆库中先前存储的概念以检索无噪声部分信息,从而减轻噪声扰动的影响。 我们还发现,no-cluster MoCA(所有原型都属于同一个 cluster,并联合推断每个激活 Aij,即 M=1)在较高噪声水平下更稳健。 我们假设特征图可以关注非集群 MoCA 中的更多概念,从而增加获得正确 bais 的机会。 

5. 结论

在本文中,我们引入了一个名为 MoCA 的模块,它可以插入到 GAN 等分层神经网络的任何层中,以改进图像合成。 MoCA 随着时间的推移缓存部分(part)原型记忆,使用动量编码器动态更新,并能够通过注意力机制调节中间层的连续响应。 与早期将整个图像的 representation 存储在目标检测的隐空间中的记忆库研究相比,MoCA 中的原型是目标的记忆部分和子部分,可以在层次结构的每个级别提取,并且灵活组合图像合成。 我们的工作受到 V1 中一组多样化的高度选择性复杂特征检测器的启发,这些检测器对应于 MoCA 中的原型单元。 通过语义单元选择不同的原型簇可以对应于由抑制性神经元介导的开关电路。 虽然我们并不声称我们的模型与神经机制或回路之间存在任何严重的对应关系,但 MoCA 的有效性可能仍会在功能层面上为这些“祖母神经元”的作用提供一些见解。

6. 道德声明

这项研究调查了一种新的建议,以了解在视觉皮层中具有类似原型的 “祖母神经元” 的计算优势,即这些原型神经元可以作为辅助记忆先验,来修改自注意机制的 embedding 空间,以及图像合成过程中神经元的激活模式。 虽然动机是为了提高我们对神经系统中上下文调制的理解,但我们的工作也产生了一种新的深度学习系统上下文调制机制,特别是在图像生成方面,因此对机器学习产生了更广泛的积极影响,尤其是 few-shot 学习。 然而,图像生成技术可能被滥用于错误信息,产生不利的社会影响,例如 “深度造假”的创造。 另一方面,加深我们对图像生成的理解对于打击深度造假和不良行为者对图像生成技术的其他滥用也至关重要。

8. 附录

8.1 消融:记忆聚类组织的重要性

我们研究的第二个方面是聚类机制对整体模型性能的影响。 我们发现对于 MoCA,具有足够大尺寸的单个概念池与具有多个 cluster 的 MoCA 相比仍然具有相似的性能。 如表 6 所示,内部包含 8192 个概念的 no-cluster MoCA 的性能与具有 32 个 cluster 的 MoCA 处于相似的水平。 我们假设这是因为,虽然没有聚类机制来强制记忆库在 no-cluster MoCA 中学习不同的概念,但在给定非常大的概念池的情况下,它仍然能够记住不同且有用的概念。 尽管发现 no-cluster MoCA 可以与具有足够大池的 cluster MoCA 性能相近,但我们认为使用 cluster 机制仍然更优越。 使用聚类机制大大减少了注意力计算中涉及的向量数量,这使我们能够为复杂的数据集构建更大的内存库。

8.2 LS-GAN 上的 MOCA

为了加强我们对 MoCA 的结论,我们还在最小二乘 GAN (least-square,LS-GAN) 框架上进行了实验,该框架与 FastGAN 和 StyleGAN 相比具有不同的损失和架构。 我们发现 MoCA 仍然可以提供一定的改进,巩固了 MoCA 层的优势。 

8.3 限制和失败

尽管 MoCA 可以在数据有限的情况下对大多数数据集带来一致的改进,但我们也观察到 MoCA 效果较差的情况。 我们发现在 StyleGAN 上添加 MoCA 来训练 Grumpy-cat 会导致性能略有下降,但对 FastGAN 却有小幅提升。 这表明,当底层数据集的多样性较低且基础网络相当大时,MoCA 缓存的概念可能会在生成过程中造成更多干扰,从而导致性能下降。 

8.4 算法

在这里,我们介绍正文中图 1 和图 2 中介绍的算法。

8.6 记忆概念分析

我们为 CIFAR-10 从随机噪声中生成 50,000 张图像,为 100-shot 的 Obaxx 生成 1,000 张图像。 对于每个特征图和特定概念簇 i,我们计算有多少个像素最接近的簇(通过点积的大小测量)是 i,并对所有簇重复此过程。 然后我们对计数求和并选择具有最多像素的前 K 个簇,并可视化它们的亲和力热图(affinity heatmap)。 为了解释存储在每个概念簇中的向量 embedding(概念),我们执行三种可视化:对应于不同的概念簇的 affinity heatmap,对应于不同的概念簇的图像的二进制掩码,以及参与记忆概念之前和之后的特征图的 t-SNE 可视化。 详细的信息检索过程如图 6 所示。我们使用 StyleGAN2+MoCA 的结果进行可视化,因为它们在大多数数据集上的表现最好。 

语义概念。在图 7a 和图 7b 中,我们显示了如上所述计算的亲和图(可视化过程的详细示意图如图 6 所示)。 请注意,我们选择簇和图像用于演示目的。 获得了使用 MoCA-StyleGAN(32x32 分辨率)的 CIFAR10 和使用 MoCA-FastGAN(256x256 分辨率)的 Obaxx 数据集的结果。

  • 我们发现这些亲和图表明在 MoCA 训练期间形成的概念涵盖了图像合成的关键和多样化模式。
  • 如图 7a 和图 7b 所示,不同簇的模式通常具有语义意义并且非常不同。
  • 在 CIFAR-10 上,我们注意到簇 11 存储与天空相关的概念,而簇 13 存储与卡车框架相关的概念。 簇 7 偏爱白色空间,而簇 18 关注动物的身体和头部。
  • 同样,在另一个数据集上,不同的簇也关注非常不同的模式。 例如,在 100-shot Obama 上,簇 3 存储与领带密切相关的概念,簇 9 包含与面部光反射相关的概念。 

Prototype attention。我们通过使用 t-SNE 可视化在记忆中关注概念之前和之后特征图的变化趋势来研究 MoCA 的内部动态。 我们从 CIFAR-10 上的随机噪声生成 10,000 张图像,并提取 MoCA 层前后的特征图。 图 9a 显示来自前一层的激活模式(蓝点)在转换后受到 MoCA(图 1 中的绿框)的影响,变成一种 representation(红点),被某些熟悉的原型范例(绿点)拖动或拉伸 。 

作为概念组装的图像合成。通过可视化特征图中每个像素与原型的亲和力,我们获得了对不同簇试图捕获的概念的高级理解。 我们还可以进一步研究不同概念与图像合成过程之间的关系。

  • 我们将图像分解为关于 top-3 簇的不同二进制掩码。分解如图 8 所示。
  • 具体来说,给定一个特定的簇 Ck 和一个特征图 F,通过查询像素 (Fij) 最近的簇(最高亲和力)是否为 Ck,我们生成对应于 Ck 的二进制掩码,其中白色表示 true,黑色表示 false。
  • 我们为每个图像选择前 3 个簇,并将它们的二进制掩码可视化,如图 8 所示。
  • 对于大多数图像,前 2 个簇的概念通常与前景和背景信息相关,而第三个簇包含与图像中的高频细节相关的概念。
  • 这表明,使用 MoCA,图像合成也可以被视为从内存中检索不同概念并将它们组合在一起以创建逼真的图像的过程。 

MoCA 对注意力机制的隐性影响。有趣的是,我们还观察到拥有 MoCA 模块可以反过来加强水平交互的功能活动。 为了可视化水平连接的功能连接,我们绘制了图 9b 中的归一化排序,紫色曲线代表未安装 MoCA 的排序曲线,红色代表安装了 MoCA 的排序曲线。 显然,MoCA 加强了水平连接之间的功能连接,即使我们没有明确修改 MoCA 层中的自注意过程。这表明我们的原型记忆正在隐式地影响水平连接。 

8.9 可视化细节 

定位感受野的细节。为了生成每个超列的感受野(图 4 中的白色边界框),我们根据网络架构计算感受野。 最终图像的分辨率为 256 x 256。 对于层中的单个超列,我们安装了 MoCA(层 16 x 16),有 4 个上采样层(每个层的因子为 2)和 7 个卷积层(每个层具有 3x3 内核大小、1 个步幅和 1 个填充) ,从而产生 66 x 66 的感受野大小。 基于卷积和上采样操作的递归推导来跟踪位置。

可视化原型的详细信息。由于我们的原型仅通过注意力影响激活,因此可视化原型并不简单。 然而,由于我们的原型用于调制由 θ(Aij) 和原型向量之间的归一化相似性加权的超列,我们可以将投影空间中与原型向量具有高余弦相似性的超列视为该原型的近似值,因为如果它们相似,则在注意力过程中会有很大的权重。 由于每个超列都对应于图像中的一个 patch 生成,我们可以可视化相应的 patch 并了解各个原型单元代表什么。

参考

Li T, Li Z, Rockwell H, et al. Prototype memory and attention mechanisms for few shot image generation[C]//Proceedings of the Eleventh International Conference on Learning Representations. 2022, 18.

S. 总结

S.1 核心思想

人类的大脑中存在记忆原型(概念 / 特征,例如:人脸)的神经元簇,例如,“祖母神经元” 记忆祖母,“父亲神经元” 记忆父亲。

受该研究启发,本文提出了记忆概念注意力(Memory Concept Attention,MoCA),用于提高 few-shot 图像生成质量。MoCA 只是一个模块,可以插入到 GAN 框架中任何现存的生成器架构层中。

这些记忆原型是通过动量在线聚类(momentum online clustering)学习的,并通过基于记忆的注意力来利用。

S.2 方法

基于原型的记忆调制模块如上图所示,模块的输入 A 是 GAN 分层结构的特征图。使用如下函数把输入转换到低维空间,三项地输出分别对应于 attention 中的 query、key、value。

原型记忆学习。Key Φ(·) 通过动量更新距离其最近的语义簇的记忆库中的原型。

记忆概念注意力(MoCA)。Query 通过余弦相似度选择记忆的距离最近的语义单元(一组原型单元的聚类均值)。相似性分数经 softmax 归一化之后,作为权重对该最近的语义单元加权,获得加权的记忆单元矩阵

空间上下文注意力(self-attention)。计算 query θ(A) 和 key Φ(A) 之间的亲和力图(相关度),对其使用softmax 归一化后,作为权重对 key Φ(A) 进行加权,获得空间上下文调制张量

整合两条路径。最后,我们通过逐元素加法整合记忆 H_m 和空间上下文调制 H_s

然后通过 1x1 卷积 O(·) 将 H 从 embedding 空间转换回原始特征空间。 一个可学习的参数 γ 作为权重,加权后加回到输入激活中,即

然后输出到生成器的下一层。 

S.3 限制

当底层数据集的多样性较低且基础网络相当大时,MoCA 缓存的概念可能会在生成过程中造成更多干扰,从而导致性能下降。 

S.4 概念簇分析

不同簇的 pattern 通常具有语义意义并且非常不同,即不同的簇存储不同的概念。

通过将图像分解为关于 top-3 簇(基于特征图中每个像素与原型的亲和力)的不同二进制掩码,作者发现,对于大多数图像,前 2 个簇的概念通常与前景和背景信息相关,而第三个簇包含与图像中的高频细节相关的概念。这表明,使用 MoCA,图像合成也可以被视为从记忆中检索不同概念并将它们组合在一起以创建逼真的图像的过程。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值