本文将解读中科院计算所数字内容合成与伪造检测实验室(原“跨媒体计算课题组”)发表在第36届AAAI人工智能大会(AAAI 2022)的工作。在该工作中,我们提出了一个新的溯源任务——Deepfake网络结构溯源(Deepfake Network Architecture Attibution)。
发现1:不同结构的GAN模型具有不同的指纹。例如,在工作[1]中,作者在4个不同结构(ProGAN、MMDGAN、CramerGAN、SNGAN)的生成相同内容的GAN模型的生成图像上训练了多分类器,测试准确率达到了98%以上。 发现2:固定模型的结构,不同初始化seed的GAN模型也具有不一样的指纹。例如,在工作[1]中,作者采用10个不一样的seed在相同数据集上训练了10个不同参数的ProGAN模型,然后在这10个模型的生成图像上训练10分类器,测试准确率达到了97%以上。
从恶意内容监管的角度,恶意内容的生产者完全可能会采用私有数据训练GAN模型,或者对已有的公开模型进行微调,而不是直接采用公开的模型,而模型级别的溯源无法对未见过的模型溯源; 从知识产权保护的角度,如果偷窃者对偷得的具有产权的模型进行微调,模型级别的溯源也可能会失效。
图1 模型溯源(现有工作)和结构溯源(本文工作)对比
我们设计了一个经验性的实验去理解网络结构指纹的性质。回顾GAN图像的生成过程,网络的结构(卷积、上采样、归一化等)在特征图的不同区域均采用了相同的操作,因此网络结构留下的痕迹很可能是全局一致的,因此,我们假设结构痕迹具有全局一致性。
为了验证这个假设,我们将生成图像的划分为4×4的16个小块,并从1-16对每个位置编号,实验的核心思想是,只用某个固定位置的图像块训练分类器区分不同模型的生成图像,然后在其他位置的图像块测试,通过比较训练位置和其他位置的测试准确率的差异,我们可以评估分类器学到的痕迹是否具有全局一致性。
图2显示了在patch1上训练的经验性实验的流程,在训练时,我们只用位置1的图像块,测试时,我们对每个位置都测试一次分类准确率。
图2 经验性实验流程
具体地,我们进行了两组实验——结构分类实验和参数分类实验:
图3 结构分类和权重分类的经验性实验
上述经验性实验说明GAN结构存在会产生指纹,且结构指纹具有全局一致的性质,而参数指纹在不同区域不一致。因此,如果分类器能关注全局一致的痕迹,就能更多地关注结构痕迹,而不是特定模型的参数痕迹,从而就能在跨随机种子、损失函数和训练数据的测试中,更具有泛化性。为此,我们提出了Deepfake Network Architecture Detector (DNA-Det) 用于结构溯源,DNA-Det包括两个步骤:
在上述两步中,我们均采用Patch对比学习(Patchwise Contrastive Learning),直接约束网络学习图像上全局一致的痕迹。
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对图像块特征进行分类。
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实验中都明显优于现有方法,说明了我们的方法区分不同结构的有效性和跨数据集的泛化能力。
1. GradCAM可视化分析
2. 图像处理分类预训练任务会加速收敛
除了带来跨域泛化效果的提升,我们发现将图像处理分类作为预训练任务会大大提高模型的收敛速度。下图显示了加入和不加预训练,对比损失和验证集准确率随着迭代次数的变化曲线,可以看出,预训练使得收敛速度大大加快,这说明在图像处理分类任务上预训练会让模型在初始状态就关注到与结构相关微观痕迹上。
3. 混淆矩阵分析
从表中,我们可以看出,ProGAN和SNGAN采用了相同的Upsampling,但是Block Type,Skip Connection和Normalization都不一样,这两种结构容易混淆说明上采样痕迹是一种很强的结构痕迹。SNGAN和InfoMaxGAN相比,除了Upsampling不一样外,Block Type,Skip Connection和Normalization都一样,这两种结构容易混淆则说明除了上采样以外的Block的某种结构留下了明显的结构痕迹。现有工作大多只研究了上采样层会在生成图像留下痕迹,我们的发现表明除了上采样以外的其他结构也会在生成图像上留下一些特有的痕迹,可供后续工作进一步研究。
4. 鲁棒性实验
本文中,我们首次提出了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.
本文暂时没有评论,来添加一个吧(●'◡'●)