AAAI 2022 | GAN的结构有“指纹”吗?从伪造图像溯源生成网络结构

AAAI 2022 | GAN的结构有“指纹”吗?从伪造图像溯源生成网络结构
2022年07月25日 18:33 AI科技评论aitechtalk

本文将解读中科院计算所数字内容合成与伪造检测实验室(原“跨媒体计算课题组”)发表在第36届AAAI人工智能大会(AAAI 2022)的工作。在该工作中,我们提出了一个新的溯源任务——Deepfake网络结构溯源(Deepfake Network Architecture Attibution)。

题目:Deepfake Network Architecture Attribution

作者:杨天韵、黄子尧、曹娟、李蕾、李锡荣

论文:https://ojs.aaai.org/index.php/AAAI/article/view/20391

代码:https://github.com/ICTMCG/DNA-Det

1

背景介绍

生成技术的发展给取证带来巨大挑战,现阶段大部分的工作集中在检测一张图像是真是假,但仅检测出伪造图像还不能满足实际需求。从监管角度上讲,对于恶意伪造内容,执法者需要确定它的生产者;从商业角度上讲,一些生成模型具有较高商业价值,模型若被窃取利用会造成经济损失。因此,虚假图像溯源成为了一个亟待解决的现实问题:给定一张生成图像,模型能否识别出该图像是由哪一个生成模型或网络结构生成的?

现有工作都是模型级别的溯源[1-3],即找到一张生成图像对应的生成模型,这些工作将GAN溯源形式化为多分类任务,对多个GAN模型的生成图像训练一个多分类器,得到了较高的分类准确率。虽然这个结果很鼓舞人心,但是GAN溯源的问题还没有充分研究和解决。

从理解GAN指纹的角度,现有工作有两个发现:

  • 发现1:不同结构的GAN模型具有不同的指纹。例如,在工作[1]中,作者在4个不同结构(ProGAN、MMDGAN、CramerGAN、SNGAN)的生成相同内容的GAN模型的生成图像上训练了多分类器,测试准确率达到了98%以上。

  • 发现2:固定模型的结构,不同初始化seed的GAN模型也具有不一样的指纹。例如,在工作[1]中,作者采用10个不一样的seed在相同数据集上训练了10个不同参数的ProGAN模型,然后在这10个模型的生成图像上训练10分类器,测试准确率达到了97%以上。

从第2个发现我们可以推出:GAN模型的参数会影响模型指纹。但是从第1个发现,我们能不能直接得到GAN结构也会影响模型指纹的结论呢?答案是否定的,因为不同结构的模型参数也不同,我们不能知道不同结构的模型的指纹差异来自参数差异还是结构差异。从而引出一个问题:GAN结构有指纹吗?即具有相同结构的多个模型具有共有的指纹痕迹吗?回答这个问题有助于我们更加深入地理解GAN指纹的产生。

从实际应用的角度,现有的工作都是模型级别的溯源,对每个类别,训练和测试数据都来自同一个模型。这意味着,我们只能对见过的模型进行溯源,然而,这在现实场景中的应用是受限的:

  • 从恶意内容监管的角度,恶意内容的生产者完全可能会采用私有数据训练GAN模型,或者对已有的公开模型进行微调,而不是直接采用公开的模型,而模型级别的溯源无法对未见过的模型溯源;

  • 从知识产权保护的角度,如果偷窃者对偷得的具有产权的模型进行微调,模型级别的溯源也可能会失效。

因此,本文提出一种更加通用的溯源形式,即溯源到模型结构,而不是特定模型。本文中,我们首次提出了一个新的溯源任务——Deepfake网络结构溯源(Deepfake Network Architetctute Attibution),虽然相较于模型溯源,结构溯源是一个更加粗粒度任务,但仍然充满挑战,因为在测试时,我们需要面对和训练数据的生成模型相同结构,但可能采用不同随机种子、损失函数,训练数据训练的模型。

图1 模型溯源(现有工作)和结构溯源(本文工作)对比

2

经验性实验

我们设计了一个经验性的实验去理解网络结构指纹的性质。回顾GAN图像的生成过程,网络的结构(卷积、上采样、归一化等)在特征图的不同区域均采用了相同的操作,因此网络结构留下的痕迹很可能是全局一致的,因此,我们假设结构痕迹具有全局一致性。

为了验证这个假设,我们将生成图像的划分为4×4的16个小块,并从1-16对每个位置编号,实验的核心思想是,只用某个固定位置的图像块训练分类器区分不同模型的生成图像,然后在其他位置的图像块测试,通过比较训练位置和其他位置的测试准确率的差异,我们可以评估分类器学到的痕迹是否具有全局一致性。

图2显示了在patch1上训练的经验性实验的流程,在训练时,我们只用位置1的图像块,测试时,我们对每个位置都测试一次分类准确率。

图2 经验性实验流程

具体地,我们进行了两组实验——结构分类实验和参数分类实验:

1.结构分类:训练数据来自四个不同结构的GAN模型,包括ProGAN,MMDGAN,SNGAN和InfoMaxGAN,四个GAN模型均在CelebA上训练得到。图3(b)显示了在patch1和patch10训练,但在所有位置上测试的结果,可以发现,即使我们只在某个固定位置图像块训练,但是在其他位置上测试也能达到90%的分类准确率。结果说明,在进行结构分类的时候,网络捕捉到了某种全局一致的痕迹。而这种全局一致的痕迹是来自参数还是结构尚无法确定,因此,我们又进行了参数分类的实验。

2.参数分类:训练数据来自四个不同参数的GAN模型,具体为采用ProGAN在4个不同seed下在CelebA上训练得到的4个模型。图3(c)显示了在patch1和patch10训练,但在所有位置上测试的结果,可以发现,在与训练位置相同的图像块上测试时准确率最高,而在其他位置上测试准确率明显降低。这个结果说明,参数指纹在图像不同位置不一致,从而进一步验证了上述结构分类中的全局一致痕迹来自结构,同时也说明了结构指纹的存在性。

图3 结构分类和权重分类的经验性实验

3

方法设计

上述经验性实验说明GAN结构存在会产生指纹,且结构指纹具有全局一致的性质,而参数指纹在不同区域不一致。因此,如果分类器能关注全局一致的痕迹,就能更多地关注结构痕迹,而不是特定模型的参数痕迹,从而就能在跨随机种子、损失函数和训练数据的测试中,更具有泛化性。为此,我们提出了Deepfake Network Architecture Detector (DNA-Det) 用于结构溯源,DNA-Det包括两个步骤:

1.在第一步,我们在图像处理分类任务上预训练(Pre-train on Image Transformation Classification),让分类器关注与模型结构相关的痕迹;

2.在第二步,我们对输入图像进行模型结构分类。

在上述两步中,我们均采用Patch对比学习(Patchwise Contrastive Learning),直接约束网络学习图像上全局一致的痕迹。

图4 DNA-Det网络框架

1. Pre-train on Image Transformation Classification

我们发现一些图像处理操作和一些网络结构很像,如一些基于核的模糊、加噪的图像处理操作近似于卷积操作,图像处理中上采样和网络结构中的上采样层类似。因此,图像处理操作留下的痕迹和结构痕迹会具有一些相似的性质。因此我们考虑采用图像处理分类任务作为网络结构分类的预训练任务。我们考虑了四种图像处理方式:压缩、模糊、重采样和加噪。对于每种类型的图像处理方式,我们从一个离散的集合中选取处理的参数,每一种具有特定参数的图像处理方式作为一种类型,最后我们得到了170种图像处理类型。预训练任务中,对于每张输入图像,我们随机选取任意一种图像处理类型,然后采用Patch对比学习进行训练。

2. Patchwise Contrastive Learning

我们采用Patch对比学习去提高特征的全局一致性。我们采用了类似SimCLR的有监督对比学习框架,网络包括Encoder、Projection head和Classification head。我们在输入图像上随机选取图像块作为输入,Encoder抽取图像块的特征,Projection head将图像块特征映射到对比学习的空间,对比损失约束相同类别的图像块的特征距离尽可能近,不同类别的图像块特征距离尽可能远。Classification head对图像块特征进行分类。

4

实验结果

1. Evaluation on Multiple Cross-Test Setups

首先,我们评估了本文和现有方法在多种跨域测试下的效果,跨域测试设置包括跨随机种子(cross-seed)、跨损失函数(cross-loss)、跨微调(cross-ft)和跨数据集(cross-dataset)。在这些设置下,测试数据的生成模型和训练数据的生成模型来自相同的结构,但是训练的随机种子、损失函数或数据集不同。根据训练数据的内容,我们将实验分为两组:celebA和LSUN-bedroom。实验在5类数据上展开:真图、ProGAN、MMDGAN、SNGAN和InfoMaxGAN,模型需要判断输入图像来自5类中的哪一类。

下表显示了在celebA和LSUN-bedroom两组实验中训练和测试数据的构成。以celebA实验为例,在训练集中,真图来自celebA,假图来自ProGAN、MMDGAN、SNGAN和InfoMaxGAN四个结构在CelebA上训练得到的四个模型,其中ProGAN的训练随机种子为seed0。

  • 在跨随机种子(cross-seed)测试中,我们采用了9个也在celebA上训练得到的ProGAN模型,但是和训练集中的ProGAN模型不同,测试模型的随机种子为seed1-9。

  • 在跨损失函数(cross-loss)测试中,我们采用了在celebA上训练得到的CramerGAN和SSGAN模型,CramerGAN和MMDGAN、SSGAN和InfoMaxGAN的结构相同,区别仅在于损失函数。

  • 在跨微调(cross-ft)测试中,我们采用老人人脸数据(elders)对训练集的4个模型进行微调,用微调后模型的生成数据作为测试数据;同样地,在LSUN-bedroom实验中,我们的微调数据采用了和bedroom比较接近的sofa数据。

  • 在跨数据集(cross-dataset)测试中,测试数据生成模型和训练数据生成模型采用完全不一样的数据训练,我们采用bedroom真图和在bedroom上训练得到的ProGAN、MMDGAN、SNGAN和InfoMaxGAN模型生成数据作为celebA组实验的跨数据集测试数据。

实验结果如下表所示,评估指标为accuracy,PT代表Pre-train on Image Transformation Classification,PCL代表Patchwise Contrastive Learning。

  • 对比DNA-Det和现有的方法,DNA-Det在closed-set和所有的cross测试中,都取得了明显的提升,尤其在cross-ft和cross-dataset测试中提升最大。

a.进一步分析实验结果,在closed-set测试中,几乎所有方法都取得了比较好的效果,这说明现有方法的特征抽取能力对于闭集的模型溯源(训练和测试数据采自同一模型)来说是足够的。

b.在cross测试中,相对于closed-set,现有方法都有一定程度的效果下降,尤其在cross-ft和cross-dataset测试中,下降更明显。这说明现有的溯源方法可能关注到了与图像内容相关的特征,而网络结构痕迹应该是与图像内容无关的(因为对于一个网络结构,不管采用什么内容的数据集训练,模型生成图像的结构痕迹应该保持不变)。

  • 实验结果也验证了PT(Pre-train on Image Transformation Classification)和PCL(Patchwise Contrastive Learning)的有效性。在几乎所有测试设置下,去掉其中的任意一个都会导致效果的下降。我们也将PT和PCL应用到了AttNet上,两者都带来了很大的效果提升。

2. Evaluation on GANs in the Wild

真实环境数据会更加复杂,可能会包含不同分辨率的GAN,不同结构的GAN模型的生成内容也可能多种多样。因此,我们收集了网络上包括3种分辨率、10个结构的59个公开发布的GAN模型,评估方法在真实环境下的效果。

如下表所示,对于每一种GAN结构,训练数据生成模型的内容和测试数据生成模型的内容不一样。例如,对于分辨率为256的ProGAN结构,训练数据来自生成cat和airplane的两个ProGAN模型,而测试数据来自于生成boat、horse、sofa、cow等与训练数据内容不一样的18个ProGAN模型。

实验结果如下表所示,可以看出我们的方法在closed-set和cross-dataset实验中都明显优于现有方法,说明了我们的方法区分不同结构的有效性和跨数据集的泛化能力。

5

进一步分析

1. GradCAM可视化分析

我们采用GradCAM热力图可视化了PCL和PT加入后模型关注区域的变化情况。可以看出,没有加入PCL和PT的base网络倾向于关注到与语义相关的局部区域,如眼睛、面部轮廓等。加入PT后,模型关注的区域不再聚集到局部。加入PCL会让模型会关注更加全局的细粒的痕迹,但仍然可以看到模型关注到了一些边缘区域。同时加入PT和PCL会让模型更好地关注全局一致的痕迹,不再关注语义相关的局部区域。

2. 图像处理分类预训练任务会加速收敛

除了带来跨域泛化效果的提升,我们发现将图像处理分类作为预训练任务会大大提高模型的收敛速度。下图显示了加入和不加预训练,对比损失和验证集准确率随着迭代次数的变化曲线,可以看出,预训练使得收敛速度大大加快,这说明在图像处理分类任务上预训练会让模型在初始状态就关注到与结构相关微观痕迹上。

3. 混淆矩阵分析

我们分析了CelebA和LSUN-bedroom两组实验中跨数据集测试的混淆矩阵,可以看出,SNGAN和ProGAN,SNGAN和InfoMaxGAN在两组实验中都容易混淆。为了分析其中的原因,我们分析了SNGAN,ProGAN,MMGAN和InfoMaxGAN四个网络的结构,如下表所示。

从表中,我们可以看出,ProGAN和SNGAN采用了相同的Upsampling,但是Block Type,Skip Connection和Normalization都不一样,这两种结构容易混淆说明上采样痕迹是一种很强的结构痕迹。SNGAN和InfoMaxGAN相比,除了Upsampling不一样外,Block Type,Skip Connection和Normalization都一样,这两种结构容易混淆则说明除了上采样以外的Block的某种结构留下了明显的结构痕迹。现有工作大多只研究了上采样层会在生成图像留下痕迹,我们的发现表明除了上采样以外的其他结构也会在生成图像上留下一些特有的痕迹,可供后续工作进一步研究。

4. 鲁棒性实验

我们考虑了5种常见的图像扰动操作,包括crop、JPEG compression、noise、blur、relighting,以及这些操作的随机组合,我们将这些操作作为数据增强训练了现有方法和我们的方法,实验结果如下表所示。可以看出, 在closed-set和cross-dataset的实验中,我们方法的鲁棒性均优于现有方法。

6

总结

本文中,我们首次提出了deepfake网络结构溯源任务;我们的经验性实验证明了结构指纹的存在性,且其具有全局一致的性质;基于经验性实验,我们提出了结构溯源网络DNA-Det,其采用图像处理分类的预训练任务和Patch对比学习学习结构指纹;我们收集了包括各种跨域测试设置的结构溯源数据集和包括3种分辨率、10个结构的59个GAN模型数据集,实验表明DNA-Det在跨随机种子、跨损失函数、跨微调和跨数据集的测试中明显优于现有方法。

本文工作对结构指纹的存在性、性质和抽取方法进行了初步的探究,我们计划在未来工作中探索以下问题:1)如何解耦每个结构模块对指纹的影响?2)如何用数学形式化地描述参数指纹和结构指纹?3)溯源模型如何应对未见过的结构?

参考资料

[1] Ning et al., Attributing fake images to GANs: Learning and analyzing gan fingerprints. ICCV 2019.

[2] Marra et al., Do GANs leave artificial fingerprints? MIPR 2019.

[3] Frank et al., Leveraging frequency analysis for deep fake image recognition. ICML 2020.

财经自媒体联盟更多自媒体作者

新浪首页 语音播报 相关新闻 返回顶部