裘昊軒,杜彥輝,蘆天亮
中國人民公安大學(xué) 信息網(wǎng)絡(luò)安全學(xué)院,北京 100038
深度偽造(Deepfake)是將深度學(xué)習(xí)與偽造相結(jié)合,使用深度學(xué)習(xí)模型對圖像、視頻、音頻等數(shù)據(jù)修改、偽造的技術(shù)。自深度偽造問世以來,已有大量工作對圖像深偽技術(shù)進(jìn)行研究[1-7]。例如,給定一個人臉面部圖像作為輸入,深偽模型可以生成不同的表情和姿勢下同一個人的新圖像。一些惡意用戶使用深偽模型偽造人臉圖像用于欺騙人臉識別等安檢系統(tǒng),甚至用于媒體造假,給個人、國家、社會帶來了重大威脅[8]。
為了防御深偽模型生成的偽造圖片,常見的一種方法是訓(xùn)練檢測模型來檢測圖片是否為偽造圖片[9-12];相對于這種在圖片被偽造之后對其檢測的被動防御方法,本文關(guān)注另一種結(jié)合對抗樣本技術(shù)主動進(jìn)攻深偽模型的方法:在原始圖片上加入一個微小的擾動,該微小的擾動對原始圖片的修改幾乎無法察覺,但能使圖片經(jīng)過深度偽造模型的輸出,即偽造圖片扭曲變形,從而令其輸出失真,不能有效地偽造圖片。
對抗樣本自提出[13]以來,被廣泛應(yīng)用于攻擊分類模型[14-17],而針對深偽等生成模型的對抗攻擊研究相對較少[18]。Yeh等[18]首次使用投影梯度下降(project gradient descent,PGD)算法[19]攻擊深偽模型,證明了使用對抗輸出(adversarial output,對抗樣本經(jīng)過深偽模型的輸出)與原始輸出(original output,原始圖片經(jīng)過深偽模型的輸出)的均方差作為PGD損失函數(shù)生成的對抗樣本效果最佳。Liu等[20]使用輸出多樣初始化(output diversi‐fication initialization)為PGD算法尋找對抗攻擊的有效起點,以優(yōu)化對抗樣本的效果。Huang等[21]比較了IFGSM[22]與PGD攻擊深偽模型的效果,證明了I-FGSM能達(dá)到PGD的最佳效果,且I-FGSM由于更加穩(wěn)定而優(yōu)于PGD。
已有對抗攻擊深偽模型的工作大多使用I-FGSM、PGD等經(jīng)典對抗攻擊算法生成對抗樣本,二者在迭代過程中使用恒定的學(xué)習(xí)率,而學(xué)習(xí)率的設(shè)置高度影響算法效果[23]:學(xué)習(xí)率較小易導(dǎo)致算法在有限的迭代次數(shù)之內(nèi)尚未達(dá)到收斂狀態(tài);學(xué)習(xí)率較大易導(dǎo)致算法在最優(yōu)值附近來回震蕩,無法收斂,兩種情況都將導(dǎo)致生成的對抗樣本質(zhì)量不佳。且不同的攻擊對象、算法超參數(shù)條件下的最佳學(xué)習(xí)率也不盡相同,因此需要針對特定任務(wù)手動調(diào)試學(xué)習(xí)率,效率十分低下。
為生成更好質(zhì)量的對抗樣本,本文提出了一種改進(jìn)算法DAPGD(dynamic APGD)。DAPGD在APGD[23]自適應(yīng)調(diào)整學(xué)習(xí)率解決I-FGSM、PGD恒定學(xué)習(xí)率問題的基礎(chǔ)上,使用動態(tài)設(shè)置檢查點的方式,保證算法在適宜的時機(jī)立即衰減學(xué)習(xí)率,以充分發(fā)揮學(xué)習(xí)率衰減的優(yōu)勢;并且分析比較各早停策略的效果,最終選擇取消APGD的局部早停策略,以提升算法的效率。使用DAPGD作為對抗樣本生成算法,能實現(xiàn)對深偽模型更強(qiáng)的對抗攻擊效果。
使用I-FGSM算法攻擊深偽模型的原理如下:
其中,x為原始圖片,xt為迭代t次后的對抗樣本,t不超過迭代次數(shù)T,clipε表示截斷函數(shù),保證對抗擾動即對抗樣本與原始圖片的距離限制在一定的范圍內(nèi),如‖ xt-x‖∞≤ε,防止對抗樣本與原始圖片之間差異過大,ε為擾動范圍;a表示學(xué)習(xí)率,sign表示符號函數(shù);J表示損失函數(shù),使用對抗輸出與原始輸出的均方差損失[18]:
其中G表示深偽模型,L表示均方差函數(shù)。
PGD相對于I-FGSM,僅在迭代開始前對原始圖片添加隨機(jī)噪聲,即將公式(1)修改為:
以增加結(jié)果的隨機(jī)性。其中noise表示服從U(-ε,ε)分布的隨機(jī)噪聲。
條件(conditional)深偽模型額外輸入條件變量c控制輸出屬性。由于攻擊者可能無法知道條件深偽模型設(shè)置何c值偽造圖片,Ruiz等[24]證明了使用固定c=ci方法,即更換公式(2)中損失函數(shù)為:
所生成的對抗樣本無法有效干擾深偽模型在c≠ci時生成偽造圖片。并提出了兩種方法:聯(lián)合c(joint class)和迭代c(iterative class)修改損失函數(shù),以生成對所有c值均有效的對抗樣本:
聯(lián)合c
迭代c
其中,K表示條件變量c的取值個數(shù)。
I-FGSM、PGD算法使用恒定的學(xué)習(xí)率,過小的學(xué)習(xí)率將導(dǎo)致算法在迭代結(jié)束之后尚未到達(dá)收斂狀態(tài)、過大的學(xué)習(xí)率將導(dǎo)致迭代過程中算法振蕩幅度較大,無法收斂至最優(yōu)解[23],二者都將導(dǎo)致所生成的對抗樣本效果不佳,有待進(jìn)一步提升;且適宜的學(xué)習(xí)率需要進(jìn)行調(diào)參實驗手動設(shè)置,效率十分低下。
針對學(xué)習(xí)率恒定的問題,APGD(auto PGD)算法使用自適應(yīng)調(diào)整學(xué)習(xí)率的思路,保證算法在迭代初期以較大的學(xué)習(xí)率加速收斂,在迭代后期以較小的學(xué)習(xí)率逼近最優(yōu)解,從而綜合了大、小學(xué)習(xí)率的優(yōu)點,能提升所生成的對抗樣本效果。
本文在APGD自適應(yīng)調(diào)整學(xué)習(xí)率的基礎(chǔ)上,提出一種動態(tài)設(shè)置學(xué)習(xí)率衰減檢查點的算法DAPGD(dynamic APGD),克服了APGD使用固定的檢查點所引發(fā)的學(xué)習(xí)率衰減不及時、不充分等問題,實現(xiàn)更加徹底的學(xué)習(xí)率衰減;并取消了原APGD效率較為低下的局部早停機(jī)制,實現(xiàn)了對抗樣本生成效果的進(jìn)一步提升。
2.1.1 算法介紹
Croce等[23]指出,I-FGSM、PGD使用恒定學(xué)習(xí)率是次優(yōu)的(suboptimal):首先導(dǎo)致了手動設(shè)置學(xué)習(xí)率的不便,因為過大或過小的學(xué)習(xí)率都將導(dǎo)致算法效果不佳;其次,即使找到了最佳學(xué)習(xí)率,在迭代中保持該學(xué)習(xí)率所生成的對抗樣本也并非能達(dá)到最優(yōu)。使用變化的學(xué)習(xí)率能生成更好的對抗樣本。并針對此問題,提出APGD(Auto PGD)算法,按如下策略自適應(yīng)衰減學(xué)習(xí)率:
當(dāng)?shù)襟E進(jìn)行到這些檢查點時,對兩個條件分別進(jìn)行檢查:
其中ρ=0.75。
若滿足其中任意一個條件,則減半學(xué)習(xí)率a,并復(fù)原當(dāng)前對抗樣本至歷次迭代以來使損失函數(shù)值達(dá)到最大的對抗樣本xmax。
此外,APGD在迭代中引入動量(Momentum)更新梯度,即將PGD的梯度更新公式(2)修改為:
其中,m表示動量系數(shù),取m=0.75。
2.1.2 算法分析
通過學(xué)習(xí)率衰減,APGD綜合了大學(xué)習(xí)率以及小學(xué)習(xí)率的優(yōu)勢:在迭代初期使用較大學(xué)習(xí)率,讓算法以較快的速度更新對抗樣本、接近收斂;在迭代后期使用較小學(xué)習(xí)率,保證收斂值更加逼近全局最優(yōu),提升最終生成的對抗樣本質(zhì)量。同時,由于不需要手動調(diào)節(jié)學(xué)習(xí)率,能免去平行調(diào)參實驗所花費的時間代價。另外,引入動量更新梯度有利于算法加速收斂、減少迭代過程中產(chǎn)生的震蕩以及跳出局部最優(yōu)。
但是,APGD衰減學(xué)習(xí)率的時間點僅發(fā)生在一系列預(yù)設(shè)的固定檢查點W上,容易錯過最佳衰減學(xué)習(xí)率時機(jī),導(dǎo)致學(xué)習(xí)率衰減不充分;此外,算法使用局部早停策略頻繁地重置對抗樣本,不僅需要重新計算損失函數(shù)的梯度,造成額外的運算時間消耗,還易導(dǎo)致浪費迭代步驟造成更差的效果。針對以上兩點不足,提出改進(jìn)思路設(shè)計DAPGD算法。
2.2.1 動態(tài)設(shè)置檢查點
APGD通過衰減學(xué)習(xí)率的策略,雖然在一定程度上緩解了PGD恒定學(xué)習(xí)率的缺點,但沒有完全解決該問題。事實上,APGD算法衰減學(xué)習(xí)率的時間點僅發(fā)生在一系列預(yù)設(shè)的固定檢查點W上,算法給出了設(shè)定檢查點的默認(rèn)遞推公式,卻無法證明其合理性,不合理的檢查點設(shè)定方式容易導(dǎo)致算法錯過適宜的學(xué)習(xí)率衰減時機(jī)。具體來說,該默認(rèn)遞推公式所得的檢查點分布特點為:迭代初期稀疏,迭代后期密集。這與迭代初期學(xué)習(xí)率較大,收斂速度快;迭代后期學(xué)習(xí)率較小,收斂較慢的實際情況不符,因為收斂速度越快,越需要密集的檢查點分布,否則在收斂之后,到達(dá)下一個固定的檢查點之前的迭代步驟之內(nèi)一直不改變學(xué)習(xí)率,無法進(jìn)一步優(yōu)化對抗樣本,會浪費大量的迭代步驟。圖1通過監(jiān)測PGD、AP‐GD的損失函數(shù)值隨著迭代步驟進(jìn)行而變化的情況展示了這一現(xiàn)象。
圖1 損失函數(shù)值隨迭代步驟的變化情況Fig.1 Variation of loss function value with iteration steps
PGD(圓點)損失函數(shù)首先出現(xiàn)提升,但到達(dá)某個點后不再出現(xiàn)明顯提升,最終損失函數(shù)值遠(yuǎn)低于其他算法。這是因為算法已在當(dāng)前學(xué)習(xí)率下達(dá)到了收斂,由于學(xué)習(xí)率恒定,算法無法跳出收斂狀態(tài),因此需要以更小的學(xué)習(xí)率逼近最優(yōu)解。
APGD損失函數(shù)(虛線)變化呈“階梯狀”:每當(dāng)在學(xué)習(xí)率衰減后的若干個迭代步驟之內(nèi),損失函數(shù)值能出現(xiàn)明顯提升,而算法一旦在該學(xué)習(xí)率下收斂,損失函數(shù)的值在其后大量的迭代步驟之內(nèi)呈現(xiàn)與PGD類似的變化情況:在收斂值附近來回振動,未出現(xiàn)明顯提升。即APGD仍出現(xiàn)大量無效迭代步驟的情況,未徹底解決PGD恒定學(xué)習(xí)率的問題,導(dǎo)致算法在迭代后期反而無法獲得充分的迭代步驟達(dá)到收斂,最終結(jié)果雖比PGD好但仍有提升空間。
針對APGD檢查點固定的問題,提出一種動態(tài)設(shè)置檢查點的改進(jìn)方式:
首先設(shè)置初始檢查點w0←0;
自上一個檢查點wj-1的patience個迭代步驟之后,每次迭代后均檢查兩個條件是否成立:
其中,t表示當(dāng)前迭代步驟,patience為超參數(shù)。
兩個條件的意義如下:(1)當(dāng)前迭代步驟到上一個檢查點之間的所有迭代次數(shù)中,本次迭代步驟使得損失函數(shù)值相較于上次迭代步驟的損失函數(shù)值有提升的次數(shù)占比未超過某個定值ρ,ρ=0.75;(2)當(dāng)前迭代步驟為止的最大損失函數(shù)值未比上次檢查點為止的最大損失函數(shù)值要高。
若其中任意一個成立,表示損失函數(shù)未出現(xiàn)預(yù)期的優(yōu)化,則認(rèn)為在該學(xué)習(xí)率下算法已達(dá)到收斂,于是立即衰減學(xué)習(xí)率a:=a/2,同時設(shè)置當(dāng)前迭代步驟為新的檢查點wj:=t;否則繼續(xù)迭代,直到成功衰減學(xué)習(xí)率。
這種方法使檢查點不再固定于預(yù)先設(shè)置的值,而是在算法運行過程中,根據(jù)損失函數(shù)的優(yōu)化情況動態(tài)地設(shè)置,保證算法能在某學(xué)習(xí)率下收斂時立即衰減學(xué)習(xí)率,避免出現(xiàn)類似PGD、APGD局部收斂、損失函數(shù)值不再發(fā)生明顯變動的迭代步驟,從而實現(xiàn)更徹底的學(xué)習(xí)率衰減效果,最終提升對抗樣本的質(zhì)量。
圖1實線展示了使用動態(tài)設(shè)置檢查點策略的DAPGD損失函數(shù)值隨迭代步驟的變化情況。DAPGD將APGD判斷是否衰減學(xué)習(xí)率的檢查點從固定設(shè)置的轉(zhuǎn)變成動態(tài)生成的,保證在當(dāng)前學(xué)習(xí)率下不能有效優(yōu)化對抗樣本時立即衰減學(xué)習(xí)率,從而避免迭代步驟進(jìn)行而損失函數(shù)不再明顯提升的現(xiàn)象出現(xiàn)。結(jié)果上,DAPGD算法的最終損失函數(shù)值較APGD也有了進(jìn)一步的提升。
2.2.2 取消局部早停策略
APGD在衰減學(xué)習(xí)率后,會復(fù)原當(dāng)前對抗樣本xt+1至歷次迭代以來使損失函數(shù)值達(dá)到最大的對抗樣本xmax,即
這一機(jī)制本質(zhì)上是一種局部早停策略:首先,復(fù)原xt+1至xmax是一種早停機(jī)制,意味著算法將t+1次迭代后的結(jié)果停留在了中途xmax,舍棄了未能使損失函數(shù)上升的其后所有迭代步驟;其次,由于APGD會數(shù)次衰減學(xué)習(xí)率,將伴隨著數(shù)次早停,因此從整個迭代過程來看,這種早停機(jī)制是分別發(fā)生在多個局部階段的。
一方面,由于APGD設(shè)置固定的檢查點,學(xué)習(xí)率衰減不及時,算法在某個學(xué)習(xí)率下已達(dá)到收斂后,直到下一個檢查點衰減學(xué)習(xí)率之前無法作出進(jìn)一步優(yōu)化,因此使用局部早停避免出現(xiàn)損失函數(shù)值隨迭代步驟進(jìn)行反而降低的情況。而DAPGD通過動態(tài)設(shè)置檢查點,系統(tǒng)內(nèi)避免了學(xué)習(xí)率衰減不及時的問題,不需要通過外加的局部早停策略跳過收斂后的無效迭代步驟。
另一方面,局部早停策略導(dǎo)致算法浪費了部分迭代步驟,相當(dāng)于支付高迭代次數(shù)的時間代價獲取低迭代次數(shù)的對抗樣本效果;且所復(fù)原的xmax僅保證能在各局部階段內(nèi)產(chǎn)生最大的損失函數(shù),作為下一階段、學(xué)習(xí)率已發(fā)生衰減后的迭代初始值不一定是較優(yōu)解。
與其相比,考慮了另一種全局早停策略:
全局早停僅在整個算法內(nèi)執(zhí)行一次早?;厮?,即在算法完成后,將最終對抗樣本復(fù)原至所有迭代步驟以來使損失函數(shù)值達(dá)到最大的對抗樣本。
從理論上來說,全局早停能保證取得相較于未使用早停策略更好的效果。當(dāng)然,該結(jié)論僅在損失函數(shù)(公式(3)、(5)~(7))穩(wěn)定的情況下成立,其中“穩(wěn)定”指損失函數(shù)J(xt,x)關(guān)于因變量xt是定函數(shù)——其參數(shù)固定不變。事實上,由于深偽模型一般有隨機(jī)參數(shù),導(dǎo)致涉及前向計算輸出G(x)的J不穩(wěn)定;尤其是迭代c的損失函數(shù)(公式(7))在各迭代步驟中使用不同的條件變量c,損失函數(shù)不穩(wěn)定性非常明顯。此時,使用全局早停未必能取得更好的效果,其表現(xiàn)是:取得最大損失函數(shù)的xmax在換一組損失函數(shù)參數(shù)后未必能令損失函數(shù)取得最大。
為了準(zhǔn)確比較各早停策略的優(yōu)劣,表1展示了使用局部早停、全局早停策略以及不使用早停策略對DAPGD對抗樣本的平均損失函數(shù)L值的影響。
表1 各早停策略對損失函數(shù)L值的影響Table 1 Effect of each early stopping method on loss function L
其中,損失函數(shù)L值越大,說明對抗樣本產(chǎn)生了越大的輸出失真,對抗攻擊的效果越好。
表1結(jié)果表明,DAPGD使用局部早停的效果最差,證明了局部早停存在浪費迭代步數(shù)、追求局部最優(yōu)反而得到全局較差的問題;不使用早停的效果最好(相比于使用全局早停能取得略微的提升),說明DAPGD通過動態(tài)設(shè)置檢查點充分利用了所有迭代步驟,未出現(xiàn)明顯的無效迭代、需要早停策略消除的步驟;相反,由于深偽模型的隨機(jī)性,早停策略只會錯誤地削減迭代步數(shù),取得反效果。
此外,從時間效率上分析,局部早停策略在復(fù)原對抗樣本至xmax后需要重新計算梯度:
梯度反向傳播正是對抗樣本生成算法最耗時的操作,進(jìn)行額外的梯度反向傳播將大幅影響算法的效率。綜上所述,不使用早停策略能提升算法的效果與速度,因此,DAPGD取消了APGD的局部早停策略,以實現(xiàn)更高的算法效率。
綜合以上改進(jìn)方法,提出算法DAPGD,流程如算法1所示:
算法1 DAPGD算法
輸入:真實樣本x,損失函數(shù)J,擾動范圍ε,迭代次數(shù)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引入超參數(shù)patience,其意義在于:當(dāng)學(xué)習(xí)率衰減(更新檢查點)時,給算法一定次數(shù)的步驟進(jìn)行迭代,檢查該學(xué)習(xí)率下生成的對抗樣本效果(公式(13)、(14)),判斷是否需要衰減學(xué)習(xí)率。否則,若在學(xué)習(xí)率衰減的下一個迭代步驟立即開始判斷是否需要再次衰減學(xué)習(xí)率,未經(jīng)過充分迭代即開始檢查此學(xué)習(xí)率下的對抗樣本生成效果,易導(dǎo)致結(jié)果偏向極端。表2展示了不同patience對DAPGD算法最終損失函數(shù)值的影響。
表2 不同patience對DAPGD算法效果的影響(T=80)Table 2 Effect of different patience on DAPGD algorithm(T=80)
表2表明,在迭代次數(shù)T=80時,patience取10的效果略優(yōu)于取其他值。
表3探究了其他T下不同patience對DAPGD算法效果的影響。由于表2中不同模型的最佳patience相似,表明patience的最佳值在模型之間具有共性,因此表3以攻擊CycleGAN模型為例展現(xiàn)結(jié)果。
表3 不同patience對DAPGD算法效果的影響(T=400,1000)Table 3 Effect of different patience on DAPGD algorithm(T=400,1000)
表3表明,迭代次數(shù)較大時,最佳patience值會略微變大,約在15~25之間。
考慮到迭代次數(shù)對最佳patience的影響,本文設(shè)定:
該設(shè)定的思路為:迭代次數(shù)較小時,patience=T/8,在理想狀態(tài)下學(xué)習(xí)率將衰減8次(即每個檢查點的patience次迭代后,恰好衰減學(xué)習(xí)率),與APGD設(shè)定的固定檢查點在理想狀態(tài)下衰減的次數(shù)一致,保證學(xué)習(xí)率能充分衰減。且patience=T/8與表2的最佳patience結(jié)果相符;迭代次數(shù)較大時,patience不超過某個定值,否則較大的patience容易導(dǎo)致算法錯過最佳的學(xué)習(xí)率衰減時機(jī)。根據(jù)表3結(jié)果,將該定值設(shè)為20。
DAPGD與PGD在每次迭代中只進(jìn)行一次算法的基本運算——梯度反向傳播,因此時間復(fù)雜度均為O(T),T表示迭代次數(shù);APGD在復(fù)原對抗樣本至xmax時需要重新計算梯度公式(17),即每次迭代進(jìn)行1或2次基本運算,因此時間復(fù)雜度介于(T,2T)之間,也為O(T)。而嚴(yán)格上來講,DAPGD僅比PGD多進(jìn)行了一些條件判斷、學(xué)習(xí)率減半等操作,額外增加的時間消耗可忽略不計;APGD由于進(jìn)行了額外的梯度計算步驟,在相同T條件下將明顯慢于DAPGD,尤其是在T較小的情況下,重復(fù)計算梯度次數(shù)相對總計算次數(shù)占比較大,APGD速度劣勢更加嚴(yán)重。因此DAPGD的時間效率高于APGD,與PGD幾乎相同。
對深偽模型進(jìn)行對抗樣本攻擊實驗,以驗證DAPGD算法生成對抗樣本效果的優(yōu)越性。作為對比,各實驗測試了相同條件下基線算法I-FGSM、PGD以及原算法APGD的效果。在3.1節(jié)中對實驗所使用的深偽模型、數(shù)據(jù)集以及對抗樣本生成算法超參數(shù)的設(shè)定進(jìn)行了介紹。在3.2節(jié)中進(jìn)行了非條件深偽模型的對抗樣本攻擊實驗,并展示了不同模型上進(jìn)行不同對抗樣本算法攻擊的效果。在3.3節(jié)中進(jìn)行了條件深偽模型的對抗樣本攻擊實驗,并解釋了DAPGD算法運用迭代c的方法迭代效果不佳的原因。在3.4節(jié)中調(diào)整了迭代次數(shù)和擾動范圍兩個超參數(shù)進(jìn)行實驗,以進(jìn)一步比較各算法的效果。
使用以下三個深偽模型以及對應(yīng)的數(shù)據(jù)集進(jìn)行實驗:
(1)CycleGAN[7],非條件深偽模型(模型僅接受原始圖片作為輸入,無條件變量)。使用官方開源代碼,在horse2zebra數(shù)據(jù)集上訓(xùn)練了200個周期得到的模型。
(2)GANimation[12],條件深偽模型。使用一個開源代碼的GANimation預(yù)訓(xùn)練模型,該模型在celebA數(shù)據(jù)集上對Facial Action Unit Coding System(FACS)中的80個動作單元(action units,AU)進(jìn)行了預(yù)訓(xùn)練。這里,AU實際上就是GANimation的條件變量c。
(3)StarGAN[1],條件深偽模型。使用StarGAN的官方開源代碼以及預(yù)訓(xùn)練模型,該模型在celebA數(shù)據(jù)集上對黑發(fā)、黃發(fā)、棕發(fā)、性別以及年齡五個屬性(c)進(jìn)行了預(yù)訓(xùn)練。
對抗樣本生成算法需要手動設(shè)置三個超參數(shù):迭代次數(shù)T,擾動范圍ε以及學(xué)習(xí)率a(DAPGD與APGD通過自動衰減學(xué)習(xí)率策略避免了手動設(shè)置a)。a的最佳值依賴于具體對抗攻擊任務(wù)、T和ε的值而改變,考慮到本文的研究重點不在于通過平行調(diào)參實驗確定最佳學(xué)習(xí)率,事實上這將花費大量時間代價,且無需手動調(diào)節(jié)學(xué)習(xí)率恰是APGD、DAPGD相對于I-FGSM、PGD的優(yōu)勢之一,因此簡單地參考已有工作[24]中的超參數(shù)設(shè)定方式(T=80,ε=0.05,a=0.01),用于3.2節(jié)、3.3節(jié)中的對抗攻擊實驗。
在3.4節(jié)中改變T、ε的值進(jìn)行對抗攻擊實驗,以探究二者對實驗結(jié)果的影響??紤]到最佳a(bǔ)值將隨之變化,為了同步調(diào)整I-FGSM和PGD的a至一個較為合適的值,本文將其設(shè)定為與ε同比例放大,與T同比例縮小。這種設(shè)定思路來源于如下靈感:在原始樣本周圍≤ε的范圍內(nèi)搜索一個對抗樣本,當(dāng)擾動范圍(搜索范圍)加倍時,選用更大的搜索步長(學(xué)習(xí)率)以適應(yīng)更大的搜索范圍;當(dāng)?shù)螖?shù)(搜索步數(shù))加倍時,選用更小的搜索步長以適應(yīng)更大的搜索步數(shù)。
各組實驗中,對所有算法設(shè)置相同的超參數(shù),以更客觀準(zhǔn)確地比較各算法的效果。
對CycleGAN、固定c條件下(公式(5))的GANimation、StarGAN進(jìn)行DAPGD攻擊(固定c的情況下,等效于對非條件深偽模型的攻擊)。其中,CycleGAN使用horse2zebra數(shù)據(jù)集中testA文件夾下的100張圖片進(jìn)行實驗;GANimation使用celebA數(shù)據(jù)集中隨機(jī)選取50張圖片,對80個c值分別進(jìn)行實驗(生成4 000個對抗樣本);StarGAN使用celebA數(shù)據(jù)集中隨機(jī)選取50張圖片,對5個c值分別進(jìn)行實驗(生成250個對抗樣本)。對于同一模型的不同對抗樣本生成算法,使用相同的圖片作為測試數(shù)據(jù),從而更準(zhǔn)確地比較它們之間的效果。結(jié)果見表4。
表4中,“平均L”表示對所有測試樣本的最終損失函數(shù)值取平均后的結(jié)果;“成功比例”表示所有測試樣本中,對應(yīng)L≥0.05的比例。該部分對抗樣本的L值達(dá)到閾值,足以對深偽模型輸出產(chǎn)生明顯的失真,視為成功攻擊深偽模型的樣本[24]。
表4表明,在攻擊非條件深偽模型的場景下,I-FGSM與PGD生成的對抗樣本質(zhì)量相似,而使用APGD算法生成的對抗樣本相對于I-FGSM、PGD有明顯提升:對三個深偽模型造成的平均輸出失真L值更高,且對固定c的GANimation模型攻擊成功比例提升近一倍(對于CycleGAN和StarGAN,I-FGSM、PGD攻擊已實現(xiàn)100%成功率,APGD無法繼續(xù)提升成功率)。且DAPGD能在此基礎(chǔ)上對APGD算法作出進(jìn)一步提升,證明了本文提出的DAPGD算法的優(yōu)越性。
表4 非條件深偽模型的對抗攻擊Table 4 Adversarial attack to unconditional deepfake models
圖2對表4實驗過程中,各個模型分別使用不同的對抗樣本生成算法生成的其中一組對抗樣本、真實樣本,以及它們經(jīng)過模型的輸出進(jìn)行了展示。其中,虛線左側(cè)的五幅圖從左到右分別是:原始圖片、使用I-FGSM、PGD、APGD、DAPGD生成的對抗樣本圖片,虛線右側(cè)的圖片是虛線左側(cè)對應(yīng)圖片經(jīng)過深偽模型的輸出。
圖2 對抗攻擊示例Fig.2 Illustrations of adversarial attack
圖2表明,四種算法生成的對抗樣本(虛線左側(cè))與原始圖片沒有明顯差異,但是對抗樣本經(jīng)過模型的輸出(虛線右側(cè)第2、3、4、5列)與原始圖片經(jīng)過模型的輸出(虛線右側(cè)第1列)之間差異明顯:對于CycleGAN、StarGAN,L遠(yuǎn)大于0.05,所有算法造成的輸出失真均非常明顯;對于GANimation,L接近0.05,能產(chǎn)生較為明顯的輸出失真,此時DAPGD對L值以及輸出失真的效果相對于其他三個算法具有明顯的提升。
固定c攻擊GANimation,StarGAN的方法將問題退化為對非條件深偽模型的攻擊,不能保證生成的對抗樣本對模型取所固定的c以外的值有效。在現(xiàn)實應(yīng)用場景中,攻擊者不知道深度偽造方會將條件深偽模型c值設(shè)置為多少,或者深度偽造方并不單單使用一個c值進(jìn)行圖片偽造,而是使用多個c值甚至所有c值來偽造不同特征的圖片。因此,在攻擊條件深偽模型的場景下,對抗樣本不能局限于對該模型取某個c值時有效,而是盡可能對該模型在所有c值下都有效。為了實現(xiàn)對條件深偽模型的攻擊,使用聯(lián)合c、迭代c(公式(6)、(7))方法對GANimation,StarGAN進(jìn)行對抗攻擊實驗,實驗數(shù)據(jù)選取方式與3.2節(jié)相同,結(jié)果見表5。
表5顯示,在條件深偽模型的對抗攻擊場景下,APGD也實現(xiàn)了對I-FGSM、PGD算法的效果明顯提升,且DAPGD仍可進(jìn)一步提升APGD的效果。
表5 條件深偽模型的對抗攻擊Table 5 Adversarial attack to conditional deepfake models
此外,使用I-FGSM和PGD算法時,迭代c的方法比聯(lián)合c的方法生成的對抗樣本效果更好;而對于AP‐GD、DAPGD算法,使用迭代c的方法不如聯(lián)合c的方法好。這種現(xiàn)象根源于迭代c損失函數(shù)較嚴(yán)重的不穩(wěn)定性(2.2.2小節(jié))。如圖3所示,隨著迭代步驟進(jìn)行,迭代c的損失函數(shù)(圖3(c)、(d))波動明顯比聯(lián)合c(圖3(a)、(b))大。而APGD、DAPGD需要一個穩(wěn)定的損失函數(shù),保證可以通過損失函數(shù)值的變化(條件1、2)來推測對抗樣本是否出現(xiàn)了優(yōu)化,從而決定是否衰減學(xué)習(xí)率。若損失函數(shù)波動較大,即使對抗樣本在某個迭代步驟中實現(xiàn)了優(yōu)化,損失函數(shù)值也可能降低,此時算法衰減學(xué)習(xí)率策略將不再合理。因此,DAPGD算法使用損失函數(shù)穩(wěn)定的聯(lián)合c效果更好。
圖3 聯(lián)合c、迭代c損失函數(shù)值隨迭代步驟變化Fig.3 Variation of loss function value used iterative c or joint c with iteration steps
對抗樣本生成算法的效果與迭代次數(shù)、擾動范圍兩個超參數(shù)密切相關(guān),通過擴(kuò)大這兩個超參數(shù),可以對深偽模型實現(xiàn)更強(qiáng)的攻擊。在上文實驗設(shè)定的超參數(shù)(T=80,ε=0.05,a=0.01)基礎(chǔ)上,逐漸擴(kuò)大迭代次數(shù)(3.4.1小節(jié))或擾動范圍(3.4.2小節(jié)),并按3.1節(jié)提出的設(shè)定方式同步修改學(xué)習(xí)率,進(jìn)一步比較各對抗樣本生成算法的效果。由于對CycleGAN、StarGAN已實現(xiàn)100%成功比例,故僅對GANimation進(jìn)行進(jìn)一步的攻擊實驗。其中,APGD、DAPGD算法使用聯(lián)合c的方法;I-FGSM、PGD算法使用迭代c的方法,兩者都是選擇了對應(yīng)攻擊下效果最好的方法。測試數(shù)據(jù)與3.3節(jié)中攻擊GANima‐tion所使用的相同。
3.4.1 擴(kuò)大迭代次數(shù)
保持?jǐn)_動范圍ε=0.05不變,逐漸擴(kuò)大迭代次數(shù)T至200、400、1 000次,分別使用I-FGSM、PGD、APGD、DAPGD攻擊GANimation。表6記錄了實驗結(jié)果,圖4展示了對抗樣本的平均L和成功比例變化情況,其中第一組T=80使用3.3節(jié)中的實驗結(jié)果數(shù)據(jù)作為對照。
圖4 不同迭代次數(shù)下攻擊GANimation的效果Fig.4 Result of adversarial attack to GANimation under different iteration times
表6 不同迭代次數(shù)下攻擊GANimation的效果Table 6 Result of adversarial attack to GANimation under different iteration times
逐漸擴(kuò)大迭代次數(shù)的情況下,各算法生成的對抗樣本在平均L和攻擊成功比例兩個指標(biāo)上普遍出現(xiàn)提升,僅擴(kuò)大迭代次數(shù)至1 000次,DAPGD算法將成功比例突破了90%,且平均L值超過了0.1,約為閾值L=0.05的兩倍。而且,在各不同的迭代次數(shù)下,APGD算法均實現(xiàn)了相對于I-FGSM、PGD算法更好的效果,而DAPGD能對APGD作出進(jìn)一步提升,證明了本文所提出的使用DAPGD算法在不同迭代次數(shù)下均能生成相較于其他算法更優(yōu)質(zhì)量的對抗樣本。
3.4.2 擴(kuò)大擾動范圍
表7、圖5為保持迭代次數(shù)T=80不變,逐漸擴(kuò)大擾動范圍ε至0.06、0.07、0.08,各算法攻擊GANimation的實驗結(jié)果。
圖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
逐漸擴(kuò)大擾動范圍的情況下,生成的對抗樣本效果也呈現(xiàn)提升趨勢。僅將擾動范圍從0.05提升至0.06,DAPGD攻擊成功比例就超過了90%,提升速度相比于擴(kuò)大迭代次數(shù)(從80次提升至1 000次才超過90%)要快很多,說明對抗樣本生成算法的效果對擾動范圍更敏感。此外,除了在擾動范圍較大時,由于算法基本實現(xiàn)100%的攻擊成功比例,DAPGD算法在成功比例方面相對于其他算法提升不明顯外(在平均L值上仍然有明顯提升),其他情況下DAPGD在平均L和成功比例方面均取得了較為顯著的提升效果,證明了本文所提出的使用DAPGD算法在不同擾動范圍下均能生成更優(yōu)質(zhì)量的對抗樣本。
本文提出了一種改進(jìn)的對抗樣本生成算法動態(tài)APGD(DAPGD)。DAPGD在APGD自適應(yīng)衰減學(xué)習(xí)率的基礎(chǔ)上,通過動態(tài)設(shè)置檢查點的方式實現(xiàn)更徹底的學(xué)習(xí)率衰減,使生成的對抗樣本更加逼近全局最優(yōu);并充分分析比較了各早停策略的優(yōu)劣,取消不適合DAPGD的早停機(jī)制,以提升算法的效率。通過對三個深偽模型CycleGAN、GANimation、StarGAN的對抗攻擊實驗,證明了DAPGD算法能在相同條件下生成更高質(zhì)量的對抗樣本,使深偽模型出現(xiàn)更明顯的輸出失真,從而達(dá)到干擾深偽模型正常工作、防范圖片被偽造的目的。DAPGD依賴損失函數(shù)變化決定衰減學(xué)習(xí)率的時機(jī),因此使用更穩(wěn)定的函數(shù)作為其損失函數(shù)能取得更好的效果(例如,聯(lián)合c比迭代c好)。由于本文所涉及的對抗樣本生成算法均涉及梯度在模型中反向傳播,只適用于攻擊者了解被攻擊模型所有參數(shù)、梯度信息的白盒攻擊場景,而在現(xiàn)實應(yīng)用中可能會遇到無法獲取待攻擊模型的梯度信息等內(nèi)部知識的黑盒場景,因此下一步工作應(yīng)當(dāng)在黑盒場景下探究深偽模型的對抗樣本攻擊。