Artificial Fingerprinting for Generative Models: Rooting Deepfake Attribution in Training Data
公众号:EDPJ
目录
0. 摘要
由于生成对抗网络 (GAN) 的突破,逼真的图像生成已达到新的质量水平。 然而,这种深度造假(恶意使用生成的媒体)引起了人们对视觉错误信息的担忧。 虽然现有的 deepfake 检测研究工作显示出很高的准确性,但它取决于生成技术的进步和检测对抗技术的对抗性迭代。 因此,我们通过在模型中引入人工指纹,寻求一种主动且可持续的 deepfake 检测解决方案,该解决方案与生成模型的演变无关。
我们的方法简单有效。 我们首先将人工指纹嵌入到训练数据中,然后验证关于这些指纹从训练数据到生成模型的可迁移性。可迁移性也适用于生成的 deepfakes。 实验表明,我们的指纹解决方案 (1) 适用于各种尖端生成模型,(2) 对生成质量的副作用可以忽略不计,(3) 对图像级和模型级扰动保持稳健,(4) 很难通过对抗被检测到,并且(5)将 deepfake 检测和归因转化为微不足道的任务,并且优于最近最先进的baseline。我们的解决方案关闭了预训练生成模型发明及其可能的滥用之间的循环。
1. 简介
Deepfakes 的滥用已经渗透到社交媒体的每个角落,从政治运动的错误信息到虚假新闻。这激发了对 deepfake 检测和来源归因的研究。这些技术旨在通过自动识别和标记生成的视觉内容并跟踪其来源来应对 deepfakes。它们中的大多数依赖于 GAN 生成图像或频率不匹配(frequency mismatch)中的低级视觉模式。然而,从长远来看,这些技术无法持续和有力地防止 deepfake 滥用; 随着生成模型的发展,它们学会更好地匹配真实分布,从而减少伪影(artifacts)。此外,检测对策也在不断发展。
图 1 描述了我们的流程; 我们首先使用图像隐写术(steganography,把信息藏到‘载体’之中,使信息变得不可见)将人工指纹嵌入到训练数据中。然后生成模型使用其进行训练,无需修改原始协议。 这使得我们的解决方案对于任意模型都是不可知的和即插即用的。然后,可以从所有生成的图像中解码训练数据中编码的相同指纹信息。
我们将数据库中具有匹配指纹的图像分类为假图像,将具有随机检测指纹的图像分类为真实图像,从而实现 deepfake 检测。
2. 相关工作
图像隐写术和水印(Image steganography and watermarking)。图像隐写术和水印将信息隐藏到载体图像中。以前的技术依赖于傅立叶变换、JPEG 压缩或最低有效位修改(least significant
bits modification)。最近的作品用神经网络编码取代了手工制作。我们利用最近基于深度学习的隐写术方法将人工指纹嵌入到训练数据中,并验证它们对生成模型的可迁移性。
我们的指纹在概念上和功能上都是相互正交的。我们的解决方案不是将信息编码到单个图像的像素中,而是将信息编码到生成器参数中,以便所有生成的图像都与该信息纠缠在一起。与生成器后添加水印模块的流水线相比,我们的解决方案引入了零生成开销,并阻碍了图像中分离水印的对抗模型。
网络水印(Network watermarking)。与图像水印不同,网络水印的目标是在不影响其原始性能的情况下将信息隐藏到模型参数中,这在精神上与我们的目标相似。它们分为两类:黑盒基于触发的解决方案和白盒基于特征的解决方案。前者通过输入的触发嵌入水印,并根据模型的输入输出行为解码水印。后者直接在具有变换矩阵的模型参数空间中嵌入水印。
值得注意的是,我们的解决方案呈现了与网络水印在概念和技术上的区别。
- 在概念方面,以往的工作仅针对判别模型(例如分类),缺乏针对生成模型的解决方案。
- 在技术方面,为了适应生成器水印,我们调整了解决方案以间接将指纹从训练数据迁移到模型参数。这是因为 (1) 无条件生成模型不允许确定性输入,因此触发器不适用,以及 (2) 参数空间中的转换与模型配置无关,因此它们既不可扩展,也不能随着生成模型的改进而持续。
Deepfake 检测和溯源。GAN 模型生成的图像具有独特的。生成模型会在生成的样本中留下独特的噪声,从而允许 deepfake 检测。 还可使用神经网络分类器找出将不同的图像的来源。高频模式不匹配可用于 deepfake 的检测,纹理特征不匹配也可以。 然而,由于检测对策的进步,这些线索是不可持续的。例如,频谱正则化缩小频率不匹配并导致显着的检测恶化。此外,检测器容易受到对抗性规避攻击。
3. 问题陈述
4. 人工指纹
图像溯源的目标是学习一个映射 D_0(x) → y,找到图像 x 的来源 。如果域 Y 是有限的、预定义的并且为我们所知,那么这是一个封闭世界场景,溯源可以简单地表示为多标签分类问题,每个标签对应一个源。然而,Y 可以是无限的、未定义的、不断发展的,对我们来说是不可知的。使用判别式学习很难处理这种开放世界场景。为了将我们的解决方案推广到对生成模型的选择不可知,我们将溯源表示为回归映射 D(x) → w,其中 w ∈ {0, 1}^n 是源身份空间,n 是维度。我们提出了一个流程把溯源嵌入到训练数据集并关闭回归 D 的循环。我们在下面描述该流程(如图 1 所示):
隐写术训练(Steganography training)。 源身份由人工指纹 w 表示。 我们使用隐写术系统来学习编码器 E,它将任意指纹 w(在训练期间随机采样)嵌入到任意图像 x 中。我们将 E 与解码器 D 耦合,以从图像中检测指纹信息。 E 和 D 被表述为具有以下训练损失的卷积神经网络:
其中,分别是是输入指纹和检测指纹的第 k 位;λ 是平衡两个目标项的超参数。 二元交叉熵项 L_BCE 指导解码器 D 对编码器 E 嵌入的指纹进行解码。均方误差项 L_MSE 惩罚隐写图像 E 与原始图像 x 的任何偏差。补充材料中描述了 E 和 D 的架构。
人工指纹嵌入。 在这个阶段,我们使用训练有素的 E 和 D 网络。 我们为每个训练数据集 X 分配一个唯一的指纹 w。 我们将经过训练的 E 应用于每个训练图像 x 并收集指纹训练数据集
生成模型训练。 为了有一个与生成模型的演变无关的解决方案,我们有意不干预它们的训练。 它使我们的解决方案可以即插即用地用于任意生成任务,而无需触及它们的实现,并为模型训练引入了零开销。 我们只需用 Xw 替换 X ,然后在其原始协议中训练生成模型。
人工指纹解码。 我们假设我们的人工指纹从训练数据到生成模型的可迁移性:一个训练有素的生成器 G_w (z) → x_w 在所有生成的图像中包含相同的指纹信息 w(嵌入在训练数据 x_w 中)。 我们在第 5.2 节中证明了这一假设。 因此,可以使用解码器 D 从生成的图像 x_w 中恢复人工指纹:D(x_w) ≡ w。 基于这种可迁移性,我们可以使用我们的解码器 D 将 deepfake 溯源表述为指纹匹配。
人工指纹匹配。为了支持可应用于生成图像的后生成修改的稳健性,我们将解码人工指纹的匹配放宽为软匹配。 给定解码指纹 和生成模型训练中使用的指纹 w 之间的匹配位数 k,我们执行零假设检验(null hypothesis test)。 零假设 H0 是偶然获得此成功(即匹配位)的次数。
在零假设下,匹配位的概率(随机变量X)服从二项分布:试验次数 n 为指纹序列中的位数,k为每个位有 0.5 概率的成功次数。 然后我们可以通过计算在零假设下获得 k 个或更高匹配位的概率来衡量假设检验的 p-value:
如果零假设导致非常低的概率(p 值),则指纹被验证。通常,当 p 值小于 0.05 时,我们拒绝原假设并将 1 − p 视为验证置信度。 (前 k 位成功匹配,这里计算的是后面未成功匹配的概率,因此,概率越小,说明匹配程度越高)
5. 实验
5.1 设置
生成模型。 作为一种主动解决方案,它应该与生成模型无关。 在不失代表性的情况下,我们专注于三代应用及其最先进的模型。 对于无条件生成:ProGAN、StyleGAN 和 StyleGAN2;类条件生成:BigGAN;用于图像条件生成,即图像到图像的转换:CUT。 每个模型都是通过官方实现从头开始训练的。
数据集。每一代应用程序都对自己的数据集进行基准测试。
5.2 可迁移性
可转移性意味着嵌入在训练数据中的人工指纹也一致地出现在所有生成的数据中。
评估。 指纹表示为二进制向量 w ∈ {0, 1}^n。 我们使用按位精度来评估检测精度。设置 n = 100。 我们还报告了检测置信度的 p 值。
基线。为了进行比较,我们实施了一个简单的基线方法。 我们不是将指纹嵌入到训练数据中,而是与模型训练一起强制生成指纹。 也就是说,我们在干净的数据上进行训练,并强制生成的图像不仅近似于真实的训练图像,而且还包含特定的指纹。
其中 G 和 Dis 是 GAN 框架中原始的生成器和判别器,Ladv 是原始的 GAN 目标,L_BCE 是从等式 2 改编而来的,其中我们将 ^w = D(E(∼x,w)) 替换为 ^w = D(G(z))。 η 设置为 1.0 作为超参数以平衡两个目标项。
我们还比较了我们解决方案中使用的基于深度学习的隐写术和改变 JPEG 压缩频率系数的非深度学习隐写术。
结果。我们在表 1 第四和第五列中报告了指纹检测性能。
(1) “Data”行显示了真实测试图像的完整性检查的检测精度:达到 100% 饱和精度,从本质上表明隐写技术的有效性。
(2) 我们的人工指纹可以从各种应用程序、生成模型和数据集生成的图像中几乎完美且可信地检测出来。 除 LSUN Bedroom 上的 ProGAN 外的精度≥ 0.98,但其 0.93 精度和 10^(−19) p 值足以验证指纹的存在。因此,我们关于从训练数据到生成模型(即生成的数据)的可迁移性的假设是合理的。 因此,人工指纹有资格进行 deepfake 的检测和溯源。
(3) 指纹可转移性在不同任务和模型上的普遍性验证了我们的解决方案与生成模型技术无关。
(4) 联合指纹识别和生成训练的基线(第一行)在指纹检测方面也有一定的效果,但我们在第 5.3 节中表明它会导致生成质量的严重恶化。
(5) 传统的隐写术方法(第二行和第三行)不会将隐藏信息传输到模型中,这由编码期间的随机猜测性能表明。我们将此归因于深度生成技术和浅层隐写技术之间的差异。 我们推断生成模型利用深度鉴别器来近似包括低级指纹在内的常见图像模式。只有基于深度学习的指纹识别技术可以隐藏和转移指纹到模型,而手工制作的图像处理效果不佳。 因此,我们指纹的可转移性是不平凡的。
5.3 保真度
生成图像的保真度与可转移性一样重要。 指纹识别对生成模型的副作用应该忽略不计。 这保留了原始生成质量并避免了对手对指纹存在的怀疑。 我们使用的隐写术技术应该能够实现这一点,我们通过经验验证了这一点。
评估。使用 FID 进行评估,数值越小,质量越好。
对于各种设置,指纹生成模型的性能严格遵守其非指纹基线的原始限制。 ProGAN 在 LSUN Cat 上发生的最严重恶化小至 +3.75 FID。
联合指纹识别和生成训练(第一行)的基线显着降低了生成质量。 这表明模型指纹识别是一项非常重要的任务:直接指纹重建会分散对抗训练的注意力。相比之下,我们的解决方案利用图像隐写术和指纹可转移性,回避了这个问题,并带来了更好的性能。
5.4 鲁棒性(稳健性)
Deepfake 媒体和生成模型可能会在广播期间进行后处理或扰动。 我们在给定各种图像和模型扰动的情况下验证指纹检测的稳健性,并研究相应的工作范围。
扰动。 我们评估了针对四种图像扰动的鲁棒性:加性高斯噪声、高斯核模糊、JPEG 压缩、中心裁剪。 我们还评估了针对两种类型的模型扰动的稳健性:模型权重量化和向模型权重添加高斯噪声。 对于量化,我们在给定小数精度的情况下压缩每个模型权重。 我们改变扰动量,将每个扰动应用于生成的图像或直接应用于模型,并使用预训练的解码器检测指纹。
评估。我们评估了来自指纹 ProGAN 的 50k 图像的人工指纹检测。我们绘制按位精度,如图 3 中的扰动量所示。
对于图像扰动(左侧四个子图),参考上限下降得更快,测试曲线的边距迅速缩小,表明检测恶化与模型训练无关,但与训练图像质量严重恶化有关。
对于模型扰动(右侧两个子图),图像质量比指纹精度下降得更快。
5.5 隐秘性
第三方不应轻易检测到嵌入在生成模型中的指纹的存在,否则可能会被操纵。
攻击。为了量化保密性,我们将其表述为二元分类问题:图像中存在指纹。 我们执行人工训练集(Artificial Training Sets,ATS)攻击。我们的目标是对指纹和非指纹测试图像进行分类,但我们没有监督。我们训练另一个隐写术编码器来扩展测试集,并建立一个具有已知标签的人工设置,从而实现监督训练。原来的测试类空间现在是人工训练类空间的一个子空间,可以被训练任务分离。
攻击如下:我们独立训练另一个隐写术编码器。我们将原始测试图像视为负训练样本。然后,我们将编码器应用于测试集两次,以获得额外的指纹图像 2 次(对应于原始非指纹图像)或 3 次(对应于原始指纹图像),这些图像被视为正训练样本。然后我们使用这样的正样本和负样本训练一个 SVM 分类器,以区分指纹 0-1 次(原始集)和指纹 2-3 次(人工训练集)的图像。
在测试过程中,我们首先对测试图像应用编码器一次,使得原本没有指纹的图像现在被指纹识别 1 次(属于 0-1 级),而原本有指纹的图像现在被指纹识别 2 次(属于 2- 3 级)。 然后我们可以使用分类器将它们分开并将预测传播回原始图像。 我们评估了对一组 250 个指纹 deepfake 图像和 250 个非指纹 deepfake 图像的攻击。
我们在三种情况下进行调查:(I)弱攻击者无法访问我们的 E 和 D,因此他训练他的影子自动编码器并应用任意指纹编码; (II) 中级攻击者可以访问我们训练有素的 E 和 D,但可以使用任意指纹编码; (III) 强攻击者可以访问我们的 E 和 D 并部分知道我们的指纹编码,因此应用与我们的指纹编码仅相差 10 位的指纹编码。
结果。 在表 2 中,当指纹存在时,所有攻击者都以接近 0.5(随机猜测)的二进制分类精度失败。 这表明我们的指纹识别足够秘密,不会被对手检测到,无论他们是否访问我们的编码器和解码器。
5.6 Deepfake 检测
在前面的部分中,我们展示了我们的指纹识别解决方案在传输指纹和满足其他所需标准方面是有效的。 我们现在讨论如何将其用于 deepfake 检测和溯源。
与检测真实类和 deepfake 类之间内在差异的现有方法不同,我们代表模型发明者提出了一种主动解决方案,将人工指纹嵌入到生成模型中,从而嵌入到生成的图像中。然后我们将问题转换为验证一个解码指纹是否在我们的指纹规则数据库中。 即使检测精度不完美,我们仍然可以使用我们基于第 4 节中的零假设检验的解决方案。我们考虑给定 ≥ 75% (p-value = 2.8 × 10^(-7)) 位匹配的 deepfake 验证。 这是可行的,基于两个假设: (1) 真实图像的解码指纹是随机的; (2) 指纹容量足够大,使得来自真实图像的随机指纹不太可能与数据库中的规定指纹发生冲突。 第二个条件很容易满足,考虑到我们对指纹 w ∈ {0, 1}^n 和 n = 100 进行采样。2^100 是足够大的容量。 然后我们通过下面的 deepfake 检测实验验证第一个假设。
基线。 我们将两个最近最先进的基于 CNN 的深度伪造检测器作为基线进行比较。[53] 接受了 40k 真实图像和 40k 生成图像的训练,这些图像来自四个具有不同指纹的生成模型。 我们考虑在训练和测试中使用不相交的生成模型的开放世界场景,以挑战分类器的泛化能力。至于 [50],我们使用官方发布的模型,因为他们已经声称改进了跨不同生成技术的泛化能力。
结果。我们将我们的解决方案与各种生成应用程序、模型和数据集的两个基线进行比较。我们对 4k 真实图像和 4k 生成图像进行了同样的测试,这些图像来自四个具有不同指纹的生成模型。我们在表 3 第四列中报告了 deepfake 检测精度。
[53] 由于训练和测试模型之间的领域差距而恶化为随机猜测(~ 50% 的准确度)。相比之下,我们的解决方案受益于与生成模型无关。它仅取决于指纹的存在,而不是训练期间过度拟合的判别线索。
我们的解决方案以明显的优势优于 [50]。 特别是,当模型技术变得更强大(从 ProGAN 到 StyleGAN2)或以某些输入指导为条件时,[50] 会退化。 相反,我们的主动解决方案以高指纹检测精度与这种演变协同作用,因此具有完美的 deepfake 检测精度。
5.7 Deepfake 溯源
溯源的目标是追踪生成 deepfake 的模型源。它将检测中的二分类升级为多分类。
基线。 [50] 不适用于多源溯源。 我们仅在开放世界场景中与 [53] 进行比较,即生成模型的训练和测试集不完全重叠。 给定来自四个具有不同指纹的生成模型的 40k 个生成图像,我们使用 [53] 来训练四个 one-vs-all-the-others 二元分类器。 在测试期间,所有四个分类器都应用于图像。 如果不是所有分类器都拒绝该图像,我们将图像分配给具有最高置信度的类别。 否则,它被分配给未知标签。
结果。将我们的解决方案与 CelebA 和 LSUN Bedroom 上的 [53] 进行了比较。对来自 [53] 训练集内/外的四个模型源的 4k/4k 生成图像进行平均测试。在表 3 最后一列中报告了 deepfake 溯源的准确性。在第 5.6 节中获得了与 deepfake 检测相同的发现和结论。CNN 分类器 [53] 的开放世界溯源恶化,而我们的指纹识别解决方案保持完美 (100%) 的准确性。
6. 结论
由于生成模型的快速发展和可能的对抗性对抗技术,检测 deepfakes 是一个复杂的问题。 为了可持续性,我们研究了模型发明者方面的主动解决方案,以使 deepfake 检测与生成模型无关。 我们将 deepfake 检测植根于训练数据,并展示了人工指纹从训练数据到各种生成模型的可迁移性。我们的实证研究显示了指纹的几个有益特性,包括普遍性、保真度、稳健性和保密性。 实验证明了我们完美的检测和溯源准确性优于最近的两种最先进技术。 由于最近人们担心发布强大的生成技术,我们的解决方案关闭了预训练生成模型发明及其可能的滥用之间的责任循环。它通过为每个模型分配一个唯一的指纹,为发明人的责任披露开辟了可能性。
7. 补充材料
A. 实现细节
隐写术编码器。编码器被训练为将指纹嵌入到图像中,同时最小化输入图像和隐写图像之间的像素差异。二值指纹向量首先通过一个全连接层,然后重塑为一个通道维度和与封面图像相同空间维度的张量。然后,将这个指纹张量和沿着通道维度的图像连接起来,作为 U-Net 架构的输入。编码器的输出,即隐写图像,与输入图像的大小相同。请注意,通过全连接层传递指纹允许二进制序列的每一位在输入图像的整个空间维度上进行编码,并且可以灵活地适应图像大小。指纹长度设置为 100。100 位的长度为指纹分配提供了足够大的空间,同时不会对保真度性能产生副作用。我们将图 5 中的编码器架构示例可视化,CelebA 和 LSUN Bedroom 的图像大小为 128×128。 对于其他图像尺寸,架构只是简单地按比例放大或缩小,增加或减少层数。
隐写术解码器。解码器被训练为从隐写图像中检测隐藏的指纹。它由一系列内核大小为 3x3 且步幅≥1 的卷积层、密集层和一个 sigmoid 输出激活组成,以产生与二进制指纹向量长度相同的最终输出。我们将图 6 中的解码器架构示例可视化,其中 CelebA 和 LSUN Bedroom 的图像大小为 128×128。 对于其他图像尺寸,架构只是简单地按比例放大或缩小,增加或减少层数。
隐写术训练。编码器和解码器是端到端联合训练的,如等式 1 所示,并带有随机抽样的指纹。编码器经过训练以平衡指纹检测和图像重建。在训练开始时,我们设置 λ = 0 以专注于指纹检测,否则无法将指纹准确地嵌入到图像中。在指纹检测准确率达到 95%(需要 3-5 个 epoch)后,我们在 3k 次迭代内将 λ 线性增加到 10,以将我们的注意力更多地转移到图像重建上。我们总共训练编码器和解码器 30 个 epochs。假设 batch 大小为 64,使用 1 个 NVIDIA Tesla V100 GPU 和 16GB 内存联合训练一个 32/128/256 分辨率的编码器和解码器大约需要 0.5/2/4 小时。我们的隐写术代码修改自 StegaStamp 官方实现的 GitHub 存储库。我们的解决方案与生成模型技术无关,因为我们只处理训练数据。因此,对于生成模型训练,我们直接参考相应的 GitHub 存储库,没有任何变化:ProGAN、StyleGAN 和 StyleGAN2 (config E)、BigGAN 和 CUT。
参考
Yu, Ning, et al. "Artificial fingerprinting for generative models: Rooting deepfake attribution in training data." Proceedings of the IEEE/CVF International conference on computer vision. 2021.
总结
1. 核心思想
GAN(生成对抗网络)的核心思想是生成和对抗。该网络的产物(例如:图像)就是基于深度学习获得的虚假产物,称之为深度造假(deepfake)。
而本文是从对抗的角度来研究:识别 deepfake,并对该 deepfake 溯源(找出该 deepfake 由谁产生)
核心思想是把指纹信息嵌入到 GAN 中,使 GAN 生成的所有图像都带有该指纹信息。实际上就是把身份信息嵌入到模型中,然后为该模型的输出添加该身份信息。
该方法类似于为图像添加水印,区别在于,以往的添加水印的方法是在生成模型后加入一个添加水印的模块,与本方法的直接在模型中嵌入信息不同。
2. 步骤
1) 训练获得图像隐写术编码器和译码器
2) 使用编码器把指纹嵌入到训练数据中
3) 使用嵌入指纹信息的训练数据训练一个生成模型
4) 使用译码器从生成数据中解出指纹