裘昊轩,杜彦辉,芦天亮
中国人民公安大学 信息网络安全学院,北京 100038
深度伪造(Deepfake)是将深度学习与伪造相结合,使用深度学习模型对图像、视频、音频等数据修改、伪造的技术。自深度伪造问世以来,已有大量工作对图像深伪技术进行研究[1-7]。例如,给定一个人脸面部图像作为输入,深伪模型可以生成不同的表情和姿势下同一个人的新图像。一些恶意用户使用深伪模型伪造人脸图像用于欺骗人脸识别等安检系统,甚至用于媒体造假,给个人、国家、社会带来了重大威胁[8]。
为了防御深伪模型生成的伪造图片,常见的一种方法是训练检测模型来检测图片是否为伪造图片[9-12];相对于这种在图片被伪造之后对其检测的被动防御方法,本文关注另一种结合对抗样本技术主动进攻深伪模型的方法:在原始图片上加入一个微小的扰动,该微小的扰动对原始图片的修改几乎无法察觉,但能使图片经过深度伪造模型的输出,即伪造图片扭曲变形,从而令其输出失真,不能有效地伪造图片。
对抗样本自提出[13]以来,被广泛应用于攻击分类模型[14-17],而针对深伪等生成模型的对抗攻击研究相对较少[18]。Yeh等[18]首次使用投影梯度下降(project gradient descent,PGD)算法[19]攻击深伪模型,证明了使用对抗输出(adversarial output,对抗样本经过深伪模型的输出)与原始输出(original output,原始图片经过深伪模型的输出)的均方差作为PGD损失函数生成的对抗样本效果最佳。Liu等[20]使用输出多样初始化(output diversi‐fication initialization)为PGD算法寻找对抗攻击的有效起点,以优化对抗样本的效果。Huang等[21]比较了IFGSM[22]与PGD攻击深伪模型的效果,证明了I-FGSM能达到PGD的最佳效果,且I-FGSM由于更加稳定而优于PGD。
已有对抗攻击深伪模型的工作大多使用I-FGSM、PGD等经典对抗攻击算法生成对抗样本,二者在迭代过程中使用恒定的学习率,而学习率的设置高度影响算法效果[23]:学习率较小易导致算法在有限的迭代次数之内尚未达到收敛状态;学习率较大易导致算法在最优值附近来回震荡,无法收敛,两种情况都将导致生成的对抗样本质量不佳。且不同的攻击对象、算法超参数条件下的最佳学习率也不尽相同,因此需要针对特定任务手动调试学习率,效率十分低下。
为生成更好质量的对抗样本,本文提出了一种改进算法DAPGD(dynamic APGD)。DAPGD在APGD[23]自适应调整学习率解决I-FGSM、PGD恒定学习率问题的基础上,使用动态设置检查点的方式,保证算法在适宜的时机立即衰减学习率,以充分发挥学习率衰减的优势;并且分析比较各早停策略的效果,最终选择取消APGD的局部早停策略,以提升算法的效率。使用DAPGD作为对抗样本生成算法,能实现对深伪模型更强的对抗攻击效果。
使用I-FGSM算法攻击深伪模型的原理如下:
其中,x为原始图片,xt为迭代t次后的对抗样本,t不超过迭代次数T,clipε表示截断函数,保证对抗扰动即对抗样本与原始图片的距离限制在一定的范围内,如‖ xt-x‖∞≤ε,防止对抗样本与原始图片之间差异过大,ε为扰动范围;a表示学习率,sign表示符号函数;J表示损失函数,使用对抗输出与原始输出的均方差损失[18]:
其中G表示深伪模型,L表示均方差函数。
PGD相对于I-FGSM,仅在迭代开始前对原始图片添加随机噪声,即将公式(1)修改为:
以增加结果的随机性。其中noise表示服从U(-ε,ε)分布的随机噪声。
条件(conditional)深伪模型额外输入条件变量c控制输出属性。由于攻击者可能无法知道条件深伪模型设置何c值伪造图片,Ruiz等[24]证明了使用固定c=ci方法,即更换公式(2)中损失函数为:
所生成的对抗样本无法有效干扰深伪模型在c≠ci时生成伪造图片。并提出了两种方法:联合c(joint class)和迭代c(iterative class)修改损失函数,以生成对所有c值均有效的对抗样本:
联合c
迭代c
其中,K表示条件变量c的取值个数。
I-FGSM、PGD算法使用恒定的学习率,过小的学习率将导致算法在迭代结束之后尚未到达收敛状态、过大的学习率将导致迭代过程中算法振荡幅度较大,无法收敛至最优解[23],二者都将导致所生成的对抗样本效果不佳,有待进一步提升;且适宜的学习率需要进行调参实验手动设置,效率十分低下。
针对学习率恒定的问题,APGD(auto PGD)算法使用自适应调整学习率的思路,保证算法在迭代初期以较大的学习率加速收敛,在迭代后期以较小的学习率逼近最优解,从而综合了大、小学习率的优点,能提升所生成的对抗样本效果。
本文在APGD自适应调整学习率的基础上,提出一种动态设置学习率衰减检查点的算法DAPGD(dynamic APGD),克服了APGD使用固定的检查点所引发的学习率衰减不及时、不充分等问题,实现更加彻底的学习率衰减;并取消了原APGD效率较为低下的局部早停机制,实现了对抗样本生成效果的进一步提升。
2.1.1 算法介绍
Croce等[23]指出,I-FGSM、PGD使用恒定学习率是次优的(suboptimal):首先导致了手动设置学习率的不便,因为过大或过小的学习率都将导致算法效果不佳;其次,即使找到了最佳学习率,在迭代中保持该学习率所生成的对抗样本也并非能达到最优。使用变化的学习率能生成更好的对抗样本。并针对此问题,提出APGD(Auto PGD)算法,按如下策略自适应衰减学习率:
当迭代步骤进行到这些检查点时,对两个条件分别进行检查:
其中ρ=0.75。
若满足其中任意一个条件,则减半学习率a,并复原当前对抗样本至历次迭代以来使损失函数值达到最大的对抗样本xmax。
此外,APGD在迭代中引入动量(Momentum)更新梯度,即将PGD的梯度更新公式(2)修改为:
其中,m表示动量系数,取m=0.75。
2.1.2 算法分析
通过学习率衰减,APGD综合了大学习率以及小学习率的优势:在迭代初期使用较大学习率,让算法以较快的速度更新对抗样本、接近收敛;在迭代后期使用较小学习率,保证收敛值更加逼近全局最优,提升最终生成的对抗样本质量。同时,由于不需要手动调节学习率,能免去平行调参实验所花费的时间代价。另外,引入动量更新梯度有利于算法加速收敛、减少迭代过程中产生的震荡以及跳出局部最优。
但是,APGD衰减学习率的时间点仅发生在一系列预设的固定检查点W上,容易错过最佳衰减学习率时机,导致学习率衰减不充分;此外,算法使用局部早停策略频繁地重置对抗样本,不仅需要重新计算损失函数的梯度,造成额外的运算时间消耗,还易导致浪费迭代步骤造成更差的效果。针对以上两点不足,提出改进思路设计DAPGD算法。
2.2.1 动态设置检查点
APGD通过衰减学习率的策略,虽然在一定程度上缓解了PGD恒定学习率的缺点,但没有完全解决该问题。事实上,APGD算法衰减学习率的时间点仅发生在一系列预设的固定检查点W上,算法给出了设定检查点的默认递推公式,却无法证明其合理性,不合理的检查点设定方式容易导致算法错过适宜的学习率衰减时机。具体来说,该默认递推公式所得的检查点分布特点为:迭代初期稀疏,迭代后期密集。这与迭代初期学习率较大,收敛速度快;迭代后期学习率较小,收敛较慢的实际情况不符,因为收敛速度越快,越需要密集的检查点分布,否则在收敛之后,到达下一个固定的检查点之前的迭代步骤之内一直不改变学习率,无法进一步优化对抗样本,会浪费大量的迭代步骤。图1通过监测PGD、AP‐GD的损失函数值随着迭代步骤进行而变化的情况展示了这一现象。
图1 损失函数值随迭代步骤的变化情况Fig.1 Variation of loss function value with iteration steps
PGD(圆点)损失函数首先出现提升,但到达某个点后不再出现明显提升,最终损失函数值远低于其他算法。这是因为算法已在当前学习率下达到了收敛,由于学习率恒定,算法无法跳出收敛状态,因此需要以更小的学习率逼近最优解。
APGD损失函数(虚线)变化呈“阶梯状”:每当在学习率衰减后的若干个迭代步骤之内,损失函数值能出现明显提升,而算法一旦在该学习率下收敛,损失函数的值在其后大量的迭代步骤之内呈现与PGD类似的变化情况:在收敛值附近来回振动,未出现明显提升。即APGD仍出现大量无效迭代步骤的情况,未彻底解决PGD恒定学习率的问题,导致算法在迭代后期反而无法获得充分的迭代步骤达到收敛,最终结果虽比PGD好但仍有提升空间。
针对APGD检查点固定的问题,提出一种动态设置检查点的改进方式:
首先设置初始检查点w0←0;
自上一个检查点wj-1的patience个迭代步骤之后,每次迭代后均检查两个条件是否成立:
其中,t表示当前迭代步骤,patience为超参数。
两个条件的意义如下:(1)当前迭代步骤到上一个检查点之间的所有迭代次数中,本次迭代步骤使得损失函数值相较于上次迭代步骤的损失函数值有提升的次数占比未超过某个定值ρ,ρ=0.75;(2)当前迭代步骤为止的最大损失函数值未比上次检查点为止的最大损失函数值要高。
若其中任意一个成立,表示损失函数未出现预期的优化,则认为在该学习率下算法已达到收敛,于是立即衰减学习率a:=a/2,同时设置当前迭代步骤为新的检查点wj:=t;否则继续迭代,直到成功衰减学习率。
这种方法使检查点不再固定于预先设置的值,而是在算法运行过程中,根据损失函数的优化情况动态地设置,保证算法能在某学习率下收敛时立即衰减学习率,避免出现类似PGD、APGD局部收敛、损失函数值不再发生明显变动的迭代步骤,从而实现更彻底的学习率衰减效果,最终提升对抗样本的质量。
图1实线展示了使用动态设置检查点策略的DAPGD损失函数值随迭代步骤的变化情况。DAPGD将APGD判断是否衰减学习率的检查点从固定设置的转变成动态生成的,保证在当前学习率下不能有效优化对抗样本时立即衰减学习率,从而避免迭代步骤进行而损失函数不再明显提升的现象出现。结果上,DAPGD算法的最终损失函数值较APGD也有了进一步的提升。
2.2.2 取消局部早停策略
APGD在衰减学习率后,会复原当前对抗样本xt+1至历次迭代以来使损失函数值达到最大的对抗样本xmax,即
这一机制本质上是一种局部早停策略:首先,复原xt+1至xmax是一种早停机制,意味着算法将t+1次迭代后的结果停留在了中途xmax,舍弃了未能使损失函数上升的其后所有迭代步骤;其次,由于APGD会数次衰减学习率,将伴随着数次早停,因此从整个迭代过程来看,这种早停机制是分别发生在多个局部阶段的。
一方面,由于APGD设置固定的检查点,学习率衰减不及时,算法在某个学习率下已达到收敛后,直到下一个检查点衰减学习率之前无法作出进一步优化,因此使用局部早停避免出现损失函数值随迭代步骤进行反而降低的情况。而DAPGD通过动态设置检查点,系统内避免了学习率衰减不及时的问题,不需要通过外加的局部早停策略跳过收敛后的无效迭代步骤。
另一方面,局部早停策略导致算法浪费了部分迭代步骤,相当于支付高迭代次数的时间代价获取低迭代次数的对抗样本效果;且所复原的xmax仅保证能在各局部阶段内产生最大的损失函数,作为下一阶段、学习率已发生衰减后的迭代初始值不一定是较优解。
与其相比,考虑了另一种全局早停策略:
全局早停仅在整个算法内执行一次早停回溯,即在算法完成后,将最终对抗样本复原至所有迭代步骤以来使损失函数值达到最大的对抗样本。
从理论上来说,全局早停能保证取得相较于未使用早停策略更好的效果。当然,该结论仅在损失函数(公式(3)、(5)~(7))稳定的情况下成立,其中“稳定”指损失函数J(xt,x)关于因变量xt是定函数——其参数固定不变。事实上,由于深伪模型一般有随机参数,导致涉及前向计算输出G(x)的J不稳定;尤其是迭代c的损失函数(公式(7))在各迭代步骤中使用不同的条件变量c,损失函数不稳定性非常明显。此时,使用全局早停未必能取得更好的效果,其表现是:取得最大损失函数的xmax在换一组损失函数参数后未必能令损失函数取得最大。
为了准确比较各早停策略的优劣,表1展示了使用局部早停、全局早停策略以及不使用早停策略对DAPGD对抗样本的平均损失函数L值的影响。
表1 各早停策略对损失函数L值的影响Table 1 Effect of each early stopping method on loss function L
其中,损失函数L值越大,说明对抗样本产生了越大的输出失真,对抗攻击的效果越好。
表1结果表明,DAPGD使用局部早停的效果最差,证明了局部早停存在浪费迭代步数、追求局部最优反而得到全局较差的问题;不使用早停的效果最好(相比于使用全局早停能取得略微的提升),说明DAPGD通过动态设置检查点充分利用了所有迭代步骤,未出现明显的无效迭代、需要早停策略消除的步骤;相反,由于深伪模型的随机性,早停策略只会错误地削减迭代步数,取得反效果。
此外,从时间效率上分析,局部早停策略在复原对抗样本至xmax后需要重新计算梯度:
梯度反向传播正是对抗样本生成算法最耗时的操作,进行额外的梯度反向传播将大幅影响算法的效率。综上所述,不使用早停策略能提升算法的效果与速度,因此,DAPGD取消了APGD的局部早停策略,以实现更高的算法效率。
综合以上改进方法,提出算法DAPGD,流程如算法1所示:
算法1 DAPGD算法
输入:真实样本x,损失函数J,扰动范围ε,迭代次数T
输出:对抗样本xmax
初始化:x0←x,a←2ε,j←1
1.x1←clipε(x0+a·sign[∇x0J(x0,x)])
2.if J(x1,x)≥J(x0,x)then
3.Jmax←J(x1,x),xmax←x1
4.else
5.Jmax←J(x0,x),xmax←x0
6.end if
7.for t=1to T-1 do
8. zt+1←clipε(xt+a·sign[∇xtJ(xt,x)])
9.
xt+1←clipε(xt+m(zt+1-xt)+(1-m)(xt-xt-1))
10.if J(xt+1,x)≥Jmaxthen
11. Jmax←J(xt+1,x),xmax←xt+1
12.end if
13.if t+1≥wj-1+patience then
14. if条件1 or条件2 then
15. a←a/2,wj←t+1,j←j+1
16. end if
17.end if
18.end for
DAPGD引入超参数patience,其意义在于:当学习率衰减(更新检查点)时,给算法一定次数的步骤进行迭代,检查该学习率下生成的对抗样本效果(公式(13)、(14)),判断是否需要衰减学习率。否则,若在学习率衰减的下一个迭代步骤立即开始判断是否需要再次衰减学习率,未经过充分迭代即开始检查此学习率下的对抗样本生成效果,易导致结果偏向极端。表2展示了不同patience对DAPGD算法最终损失函数值的影响。
表2 不同patience对DAPGD算法效果的影响(T=80)Table 2 Effect of different patience on DAPGD algorithm(T=80)
表2表明,在迭代次数T=80时,patience取10的效果略优于取其他值。
表3探究了其他T下不同patience对DAPGD算法效果的影响。由于表2中不同模型的最佳patience相似,表明patience的最佳值在模型之间具有共性,因此表3以攻击CycleGAN模型为例展现结果。
表3 不同patience对DAPGD算法效果的影响(T=400,1000)Table 3 Effect of different patience on DAPGD algorithm(T=400,1000)
表3表明,迭代次数较大时,最佳patience值会略微变大,约在15~25之间。
考虑到迭代次数对最佳patience的影响,本文设定:
该设定的思路为:迭代次数较小时,patience=T/8,在理想状态下学习率将衰减8次(即每个检查点的patience次迭代后,恰好衰减学习率),与APGD设定的固定检查点在理想状态下衰减的次数一致,保证学习率能充分衰减。且patience=T/8与表2的最佳patience结果相符;迭代次数较大时,patience不超过某个定值,否则较大的patience容易导致算法错过最佳的学习率衰减时机。根据表3结果,将该定值设为20。
DAPGD与PGD在每次迭代中只进行一次算法的基本运算——梯度反向传播,因此时间复杂度均为O(T),T表示迭代次数;APGD在复原对抗样本至xmax时需要重新计算梯度公式(17),即每次迭代进行1或2次基本运算,因此时间复杂度介于(T,2T)之间,也为O(T)。而严格上来讲,DAPGD仅比PGD多进行了一些条件判断、学习率减半等操作,额外增加的时间消耗可忽略不计;APGD由于进行了额外的梯度计算步骤,在相同T条件下将明显慢于DAPGD,尤其是在T较小的情况下,重复计算梯度次数相对总计算次数占比较大,APGD速度劣势更加严重。因此DAPGD的时间效率高于APGD,与PGD几乎相同。
对深伪模型进行对抗样本攻击实验,以验证DAPGD算法生成对抗样本效果的优越性。作为对比,各实验测试了相同条件下基线算法I-FGSM、PGD以及原算法APGD的效果。在3.1节中对实验所使用的深伪模型、数据集以及对抗样本生成算法超参数的设定进行了介绍。在3.2节中进行了非条件深伪模型的对抗样本攻击实验,并展示了不同模型上进行不同对抗样本算法攻击的效果。在3.3节中进行了条件深伪模型的对抗样本攻击实验,并解释了DAPGD算法运用迭代c的方法迭代效果不佳的原因。在3.4节中调整了迭代次数和扰动范围两个超参数进行实验,以进一步比较各算法的效果。
使用以下三个深伪模型以及对应的数据集进行实验:
(1)CycleGAN[7],非条件深伪模型(模型仅接受原始图片作为输入,无条件变量)。使用官方开源代码,在horse2zebra数据集上训练了200个周期得到的模型。
(2)GANimation[12],条件深伪模型。使用一个开源代码的GANimation预训练模型,该模型在celebA数据集上对Facial Action Unit Coding System(FACS)中的80个动作单元(action units,AU)进行了预训练。这里,AU实际上就是GANimation的条件变量c。
(3)StarGAN[1],条件深伪模型。使用StarGAN的官方开源代码以及预训练模型,该模型在celebA数据集上对黑发、黄发、棕发、性别以及年龄五个属性(c)进行了预训练。
对抗样本生成算法需要手动设置三个超参数:迭代次数T,扰动范围ε以及学习率a(DAPGD与APGD通过自动衰减学习率策略避免了手动设置a)。a的最佳值依赖于具体对抗攻击任务、T和ε的值而改变,考虑到本文的研究重点不在于通过平行调参实验确定最佳学习率,事实上这将花费大量时间代价,且无需手动调节学习率恰是APGD、DAPGD相对于I-FGSM、PGD的优势之一,因此简单地参考已有工作[24]中的超参数设定方式(T=80,ε=0.05,a=0.01),用于3.2节、3.3节中的对抗攻击实验。
在3.4节中改变T、ε的值进行对抗攻击实验,以探究二者对实验结果的影响。考虑到最佳a值将随之变化,为了同步调整I-FGSM和PGD的a至一个较为合适的值,本文将其设定为与ε同比例放大,与T同比例缩小。这种设定思路来源于如下灵感:在原始样本周围≤ε的范围内搜索一个对抗样本,当扰动范围(搜索范围)加倍时,选用更大的搜索步长(学习率)以适应更大的搜索范围;当迭代次数(搜索步数)加倍时,选用更小的搜索步长以适应更大的搜索步数。
各组实验中,对所有算法设置相同的超参数,以更客观准确地比较各算法的效果。
对CycleGAN、固定c条件下(公式(5))的GANimation、StarGAN进行DAPGD攻击(固定c的情况下,等效于对非条件深伪模型的攻击)。其中,CycleGAN使用horse2zebra数据集中testA文件夹下的100张图片进行实验;GANimation使用celebA数据集中随机选取50张图片,对80个c值分别进行实验(生成4 000个对抗样本);StarGAN使用celebA数据集中随机选取50张图片,对5个c值分别进行实验(生成250个对抗样本)。对于同一模型的不同对抗样本生成算法,使用相同的图片作为测试数据,从而更准确地比较它们之间的效果。结果见表4。
表4中,“平均L”表示对所有测试样本的最终损失函数值取平均后的结果;“成功比例”表示所有测试样本中,对应L≥0.05的比例。该部分对抗样本的L值达到阈值,足以对深伪模型输出产生明显的失真,视为成功攻击深伪模型的样本[24]。
表4表明,在攻击非条件深伪模型的场景下,I-FGSM与PGD生成的对抗样本质量相似,而使用APGD算法生成的对抗样本相对于I-FGSM、PGD有明显提升:对三个深伪模型造成的平均输出失真L值更高,且对固定c的GANimation模型攻击成功比例提升近一倍(对于CycleGAN和StarGAN,I-FGSM、PGD攻击已实现100%成功率,APGD无法继续提升成功率)。且DAPGD能在此基础上对APGD算法作出进一步提升,证明了本文提出的DAPGD算法的优越性。
表4 非条件深伪模型的对抗攻击Table 4 Adversarial attack to unconditional deepfake models
图2对表4实验过程中,各个模型分别使用不同的对抗样本生成算法生成的其中一组对抗样本、真实样本,以及它们经过模型的输出进行了展示。其中,虚线左侧的五幅图从左到右分别是:原始图片、使用I-FGSM、PGD、APGD、DAPGD生成的对抗样本图片,虚线右侧的图片是虚线左侧对应图片经过深伪模型的输出。
图2 对抗攻击示例Fig.2 Illustrations of adversarial attack
图2表明,四种算法生成的对抗样本(虚线左侧)与原始图片没有明显差异,但是对抗样本经过模型的输出(虚线右侧第2、3、4、5列)与原始图片经过模型的输出(虚线右侧第1列)之间差异明显:对于CycleGAN、StarGAN,L远大于0.05,所有算法造成的输出失真均非常明显;对于GANimation,L接近0.05,能产生较为明显的输出失真,此时DAPGD对L值以及输出失真的效果相对于其他三个算法具有明显的提升。
固定c攻击GANimation,StarGAN的方法将问题退化为对非条件深伪模型的攻击,不能保证生成的对抗样本对模型取所固定的c以外的值有效。在现实应用场景中,攻击者不知道深度伪造方会将条件深伪模型c值设置为多少,或者深度伪造方并不单单使用一个c值进行图片伪造,而是使用多个c值甚至所有c值来伪造不同特征的图片。因此,在攻击条件深伪模型的场景下,对抗样本不能局限于对该模型取某个c值时有效,而是尽可能对该模型在所有c值下都有效。为了实现对条件深伪模型的攻击,使用联合c、迭代c(公式(6)、(7))方法对GANimation,StarGAN进行对抗攻击实验,实验数据选取方式与3.2节相同,结果见表5。
表5显示,在条件深伪模型的对抗攻击场景下,APGD也实现了对I-FGSM、PGD算法的效果明显提升,且DAPGD仍可进一步提升APGD的效果。
表5 条件深伪模型的对抗攻击Table 5 Adversarial attack to conditional deepfake models
此外,使用I-FGSM和PGD算法时,迭代c的方法比联合c的方法生成的对抗样本效果更好;而对于AP‐GD、DAPGD算法,使用迭代c的方法不如联合c的方法好。这种现象根源于迭代c损失函数较严重的不稳定性(2.2.2小节)。如图3所示,随着迭代步骤进行,迭代c的损失函数(图3(c)、(d))波动明显比联合c(图3(a)、(b))大。而APGD、DAPGD需要一个稳定的损失函数,保证可以通过损失函数值的变化(条件1、2)来推测对抗样本是否出现了优化,从而决定是否衰减学习率。若损失函数波动较大,即使对抗样本在某个迭代步骤中实现了优化,损失函数值也可能降低,此时算法衰减学习率策略将不再合理。因此,DAPGD算法使用损失函数稳定的联合c效果更好。
图3 联合c、迭代c损失函数值随迭代步骤变化Fig.3 Variation of loss function value used iterative c or joint c with iteration steps
对抗样本生成算法的效果与迭代次数、扰动范围两个超参数密切相关,通过扩大这两个超参数,可以对深伪模型实现更强的攻击。在上文实验设定的超参数(T=80,ε=0.05,a=0.01)基础上,逐渐扩大迭代次数(3.4.1小节)或扰动范围(3.4.2小节),并按3.1节提出的设定方式同步修改学习率,进一步比较各对抗样本生成算法的效果。由于对CycleGAN、StarGAN已实现100%成功比例,故仅对GANimation进行进一步的攻击实验。其中,APGD、DAPGD算法使用联合c的方法;I-FGSM、PGD算法使用迭代c的方法,两者都是选择了对应攻击下效果最好的方法。测试数据与3.3节中攻击GANima‐tion所使用的相同。
3.4.1 扩大迭代次数
保持扰动范围ε=0.05不变,逐渐扩大迭代次数T至200、400、1 000次,分别使用I-FGSM、PGD、APGD、DAPGD攻击GANimation。表6记录了实验结果,图4展示了对抗样本的平均L和成功比例变化情况,其中第一组T=80使用3.3节中的实验结果数据作为对照。
图4 不同迭代次数下攻击GANimation的效果Fig.4 Result of adversarial attack to GANimation under different iteration times
表6 不同迭代次数下攻击GANimation的效果Table 6 Result of adversarial attack to GANimation under different iteration times
逐渐扩大迭代次数的情况下,各算法生成的对抗样本在平均L和攻击成功比例两个指标上普遍出现提升,仅扩大迭代次数至1 000次,DAPGD算法将成功比例突破了90%,且平均L值超过了0.1,约为阈值L=0.05的两倍。而且,在各不同的迭代次数下,APGD算法均实现了相对于I-FGSM、PGD算法更好的效果,而DAPGD能对APGD作出进一步提升,证明了本文所提出的使用DAPGD算法在不同迭代次数下均能生成相较于其他算法更优质量的对抗样本。
3.4.2 扩大扰动范围
表7、图5为保持迭代次数T=80不变,逐渐扩大扰动范围ε至0.06、0.07、0.08,各算法攻击GANimation的实验结果。
图5 不同扰动范围下攻击GANimation的效果Fig.5 Result of adversarial attack to GANimation under different perturbation magnitude
表7 不同扰动范围下攻击GANimation的效果Table 7 Result of adversarial attack to GANimation under different perturbation magnitude
逐渐扩大扰动范围的情况下,生成的对抗样本效果也呈现提升趋势。仅将扰动范围从0.05提升至0.06,DAPGD攻击成功比例就超过了90%,提升速度相比于扩大迭代次数(从80次提升至1 000次才超过90%)要快很多,说明对抗样本生成算法的效果对扰动范围更敏感。此外,除了在扰动范围较大时,由于算法基本实现100%的攻击成功比例,DAPGD算法在成功比例方面相对于其他算法提升不明显外(在平均L值上仍然有明显提升),其他情况下DAPGD在平均L和成功比例方面均取得了较为显著的提升效果,证明了本文所提出的使用DAPGD算法在不同扰动范围下均能生成更优质量的对抗样本。
本文提出了一种改进的对抗样本生成算法动态APGD(DAPGD)。DAPGD在APGD自适应衰减学习率的基础上,通过动态设置检查点的方式实现更彻底的学习率衰减,使生成的对抗样本更加逼近全局最优;并充分分析比较了各早停策略的优劣,取消不适合DAPGD的早停机制,以提升算法的效率。通过对三个深伪模型CycleGAN、GANimation、StarGAN的对抗攻击实验,证明了DAPGD算法能在相同条件下生成更高质量的对抗样本,使深伪模型出现更明显的输出失真,从而达到干扰深伪模型正常工作、防范图片被伪造的目的。DAPGD依赖损失函数变化决定衰减学习率的时机,因此使用更稳定的函数作为其损失函数能取得更好的效果(例如,联合c比迭代c好)。由于本文所涉及的对抗样本生成算法均涉及梯度在模型中反向传播,只适用于攻击者了解被攻击模型所有参数、梯度信息的白盒攻击场景,而在现实应用中可能会遇到无法获取待攻击模型的梯度信息等内部知识的黑盒场景,因此下一步工作应当在黑盒场景下探究深伪模型的对抗样本攻击。