劉子龍
(??诮?jīng)濟(jì)學(xué)院,海南 ???571127)
隨著深度學(xué)習(xí)技術(shù)的發(fā)展,推動(dòng)了人工智能技術(shù)在自然語言處理、計(jì)算機(jī)視覺等領(lǐng)域的巨大成功,使得人工智能技術(shù)在人臉識(shí)別、自動(dòng)駕駛等、醫(yī)學(xué)圖像分割等領(lǐng)域的廣泛應(yīng)用。但深度學(xué)習(xí)技術(shù)中,由于神經(jīng)網(wǎng)絡(luò)的黑盒特征、不可解釋性等問題而帶來的安全隱患日益凸顯。
人們發(fā)現(xiàn),在深度學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò)中,可以通過添加一些人們?nèi)庋垭y以察覺,細(xì)微的干擾,來形成的一些輸入樣本。這些輸入的樣本,可以讓神經(jīng)網(wǎng)絡(luò)產(chǎn)生錯(cuò)誤的結(jié)果,以達(dá)到“欺騙”神經(jīng)網(wǎng)絡(luò)的效果,導(dǎo)致輸出的結(jié)果產(chǎn)生較大的偏差。例如,在自動(dòng)駕駛系統(tǒng)中,對(duì)所要識(shí)別的路標(biāo)添加擾動(dòng),會(huì)導(dǎo)致系統(tǒng)產(chǎn)生錯(cuò)誤的識(shí)別結(jié)果,進(jìn)而造成事故的發(fā)生[2]。在人臉識(shí)別系統(tǒng),對(duì)所需識(shí)別的人臉添加擾動(dòng),會(huì)使其無法識(shí)別或識(shí)別錯(cuò)誤等。
將含有干擾的輸入樣本,稱為對(duì)抗樣本,即通過添加干擾形成讓神經(jīng)網(wǎng)絡(luò)以較高置信度得出錯(cuò)誤輸出的輸入樣本[3-4]。對(duì)抗樣本廣泛存在于深度學(xué)習(xí)的圖像分類樣本中,通過在被識(shí)別的圖像中添加肉眼難以察覺的擾動(dòng),讓模型產(chǎn)出錯(cuò)誤的結(jié)果。例如,將一個(gè)在神經(jīng)網(wǎng)絡(luò)模型中,57.7%識(shí)別率的熊貓圖像,通過添加擾動(dòng)可以讓模型將其以99.3%識(shí)別率錯(cuò)誤識(shí)別為長臂猿(見圖1)。
圖1 對(duì)抗樣本示例
對(duì)抗樣本的存在為人工智能的安全帶來了極大的威脅。這些威脅會(huì)形成漏洞,給人工智能技術(shù)的普及帶來了隱患,對(duì)社會(huì)和個(gè)人帶來傷害和損失,極大地限制了人工智能技術(shù)的發(fā)展和普及。對(duì)抗樣本的已經(jīng)成為人工智能安全領(lǐng)域所關(guān)注和研究的重點(diǎn)。
Szegedy等[1]發(fā)現(xiàn)神經(jīng)網(wǎng)絡(luò)對(duì)于樣本中的微小擾動(dòng)異常敏感。這種敏感,意味著神經(jīng)網(wǎng)絡(luò)會(huì)以一個(gè)較高的識(shí)別率得到一個(gè)錯(cuò)誤的結(jié)果。他們認(rèn)為,對(duì)抗樣本存在的根源在于神經(jīng)網(wǎng)絡(luò)模型的線性結(jié)構(gòu)。在此之后,Ian J. Goodfellow等[2]解釋為:神經(jīng)網(wǎng)絡(luò)是一個(gè)高度線性化的結(jié)構(gòu)。在對(duì)模型的輸入改變?chǔ)艜r(shí),則會(huì)導(dǎo)致高維度中權(quán)重為w線性函數(shù)發(fā)生較大變化。假設(shè)添加的微小擾動(dòng)為η,輸入為x,則對(duì)抗樣本為,即對(duì)抗樣本=干凈樣本+擾動(dòng)。在線性模型當(dāng)中,不會(huì)隨著神經(jīng)模型的結(jié)構(gòu)和所需解決的問題等因素而增長。但它在整個(gè)神經(jīng)網(wǎng)絡(luò)中,會(huì)引起較大的線性激活變化。這就解釋了對(duì)抗樣本存在的原因。
為得到讓神經(jīng)網(wǎng)絡(luò)進(jìn)行錯(cuò)誤分類的最小擾動(dòng),Szegedy等[1]人提出一個(gè)受約束優(yōu)化問題,如式(2),即為L-BFGS算法。
L-BFGS算法是以模型和目標(biāo)函數(shù)的梯度可求解為前提的。這導(dǎo)致模型較為單一,且優(yōu)化復(fù)雜,計(jì)算代價(jià)較高。
目前,很多算法都基于快速梯度符號(hào)算法(Fast Gradient Sign Method,F(xiàn)GSM)。FGSM算法是一種較為有效的對(duì)抗攻擊方法[2],其核心公式為:
其中,?xJ(x,ytrue)為損失函數(shù)的梯度;ytrue表示為真實(shí)類的標(biāo)簽;ε為擾動(dòng)大小的權(quán)值。對(duì)抗樣本x'=x+η中,擾動(dòng)η是通過反向傳播過程來計(jì)算的。
雅可比映射攻擊算法(Jacobian-based Saliency Map Attack,JSMA)是由Papernot等[5]提出的。利用式(4)計(jì)算了原始樣本x的Jacobian矩陣,計(jì)算方法如下:
其中,F(xiàn)表示為Softmax層輸出函數(shù),i,j分別表示輸入和輸出層的數(shù)量。該方法提出了使用雅可比顯著圖來生成對(duì)抗樣本的方法,是一種專門針對(duì)非循環(huán)前饋神經(jīng)網(wǎng)絡(luò)的定向攻擊算法。JSMA要求模型和目標(biāo)函數(shù)的梯度可求解,而且使用貪婪算法進(jìn)行顯著性像素點(diǎn)的尋找。
Deepfool是利用原始輸入到對(duì)抗樣本決策邊界最近距離,由Moosavi-Dezfooli S-M等[4]提出的。該方法假設(shè)神經(jīng)網(wǎng)絡(luò)是完全線性的轉(zhuǎn)換為超平面F={x∶wTb+b=0}的距離。放射分類器f的擾動(dòng)可能是。如果分類器f是一個(gè)二分類器,可以使用一種迭代的方法來估計(jì)擾動(dòng),并考慮在每次迭代過程中f關(guān)于xi是線性的。最小的擾動(dòng)的計(jì)算方法如式(5)。
算法通過尋找從邊界最近的距離,迭代計(jì)算的方法生成最小規(guī)范對(duì)抗擾動(dòng)。但該算法泛化性較低,并且由于需要分析模型的特性,耗時(shí)較多。
基礎(chǔ)迭代法算法(Basic Iterative Method,BIM)是在FGSM算法的基礎(chǔ)上,由Kurakin等[5]利用多次小步長迭代的方法提出的。
通過多次迭代產(chǎn)生對(duì)抗樣本:
相比FGSM算法,以降低計(jì)算效率為代價(jià),BIM效果更好。
針對(duì)防御蒸餾網(wǎng)絡(luò),Carlini and Wagner[6]提出了C&W算法。算法定義了新的目標(biāo)函數(shù)g:
其中,η為對(duì)抗擾動(dòng)。通過對(duì)比可以發(fā)現(xiàn)式(9)是相對(duì)有效的。
其中,Z表示softmax,k是一個(gè)常數(shù),用來控制置信度。
在C&W的啟發(fā)下,Chen等[7]提出了零階優(yōu)化方法(Zeroth Order Optimization,ZOO),修改g(·)函數(shù)為損失函數(shù)。
并且使用對(duì)稱差商估計(jì)梯度和Hessian:
其中,ei表示第i個(gè)分量的標(biāo)準(zhǔn)基向量,h為一個(gè)常數(shù)(非常小的)。ZOO算法可以在不需要梯度的情況下,直接進(jìn)行黑河攻擊,并且不要模型遷移。但是,它需要昂貴的代價(jià)來查詢和估計(jì)梯度。
Moosavi-Dezfooli S-M等[8]在欺騙深度神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上,提出了一種利用擾動(dòng)攻擊的普適性攻擊方法(Universal Perturbation)。他們的構(gòu)想是找到一個(gè)普適性的擾動(dòng)向量滿足:
其中,ε限制了普適性擾動(dòng)的大小,δ控制了所有對(duì)抗樣本的攻擊失敗率。通用擾動(dòng)攻擊算法能夠生成針對(duì)所有圖像的對(duì)抗樣本擾動(dòng)。僅利用較小的一部分?jǐn)?shù)據(jù)集,即可生產(chǎn)擾動(dòng),并且可以泛化到大多數(shù)神經(jīng)網(wǎng)絡(luò)上。
近年來,針對(duì)對(duì)抗樣本的存在,提升神經(jīng)網(wǎng)絡(luò)的安全性,人們提出了諸多防御算法。主要分為魯棒性防御與檢測(cè)性防御。魯棒性防御是使用現(xiàn)有的技術(shù)使深度神經(jīng)網(wǎng)絡(luò)在受到對(duì)抗樣本攻擊時(shí)仍輸出正確結(jié)果。另一類方法是修改網(wǎng)絡(luò)結(jié)構(gòu)、優(yōu)化技術(shù)或訓(xùn)練集使得神經(jīng)網(wǎng)絡(luò)對(duì)對(duì)抗樣本魯棒。對(duì)抗防御算法主要有防御蒸餾、數(shù)據(jù)清理、對(duì)抗訓(xùn)練、對(duì)抗訓(xùn)練等方法。
Papernot等[11]基于網(wǎng)絡(luò)蒸餾思想,對(duì)模型做平滑輸出提出了防御蒸餾方法。該模型能夠把大的網(wǎng)絡(luò)壓縮成小的網(wǎng)絡(luò),而且能夠保持網(wǎng)絡(luò)的性能,進(jìn)而抵抗對(duì)抗樣本的攻擊。蒸餾防御可以降低神經(jīng)網(wǎng)絡(luò)模型中,對(duì)輸入擾的敏感程度。蒸餾防御能提高模型的絡(luò)的健壯性和泛化能力。但是Carlini等[12]指出蒸餾防御不能有效抵抗C&W攻擊。
數(shù)據(jù)預(yù)處理是一種常見的防御方法,主要是利用了對(duì)抗樣本空域的不穩(wěn)定性,通過僅修改輸入圖片來消除可能的對(duì)抗擾動(dòng),達(dá)到對(duì)惡意的訓(xùn)練數(shù)據(jù)進(jìn)行篩選的目的。由于數(shù)據(jù)預(yù)處理方法常用中值平滑、非局部均值濾波、JPEG壓縮等,因此這種防御方法也被稱為基于變換的防御。
一般情況下,僅僅靠數(shù)據(jù)預(yù)處理進(jìn)行對(duì)抗防御是不夠的,可能會(huì)需要和其他防御算法配合使用,且預(yù)處理的圖像往往會(huì)降低神經(jīng)網(wǎng)絡(luò)模型識(shí)別正干凈樣本的準(zhǔn)確率。
對(duì)抗訓(xùn)練是一種能夠依靠提升模型魯棒性的防御方式,主要是在訓(xùn)練階段生成對(duì)抗樣本,并將其引入到訓(xùn)練集中繼續(xù)訓(xùn)練模型。通過對(duì)抗訓(xùn)練可以為神經(jīng)網(wǎng)絡(luò)模型提供正則化,進(jìn)而提高模型結(jié)果的準(zhǔn)確率。由于其訓(xùn)練模型的開銷較大,只能防御單步的攻擊,不能防御迭代的攻擊,且對(duì)抗訓(xùn)練的模型泛化能力較弱。
對(duì)抗樣本檢測(cè)就是有針對(duì)性的檢測(cè)輸入樣本是否符合對(duì)抗樣本的屬性,對(duì)其進(jìn)行檢測(cè)和分辨。在將樣本進(jìn)行分類之前,要現(xiàn)對(duì)其進(jìn)行檢測(cè)分辨其是干凈樣本還是對(duì)抗樣本。如果是對(duì)抗樣本,則拒絕將其輸入到神經(jīng)網(wǎng)絡(luò)當(dāng)中。Liang等[9]提出基于自適應(yīng)去噪的對(duì)抗樣本檢測(cè)方法。分類器在某種程度上可以抵抗一定程度的失真。為此,可以通過檢查樣本去噪后分類是否改變,來有效地檢測(cè)出對(duì)抗樣。
隨著人工智能的飛速發(fā)展,人工智能已經(jīng)融入人們的工作和生活當(dāng)中。對(duì)抗樣本的存在已經(jīng)成為制約人工智能技術(shù)發(fā)展的重要因素,甚至可能導(dǎo)致人工智能驅(qū)動(dòng)的系統(tǒng)出現(xiàn)錯(cuò)誤和混亂。盡管近年來,許多方法和理論被提出,但仍存在諸多挑戰(zhàn)有待研究。
(1)存在性。通過前面的研究可以發(fā)現(xiàn),對(duì)抗樣本是普遍存在的。雖然已經(jīng)由了諸多對(duì)抗樣本存在原因的分析及理論,但仍缺少嚴(yán)謹(jǐn)?shù)臄?shù)學(xué)推導(dǎo)和完整的理論支撐。故對(duì)于對(duì)抗樣本的成因及相關(guān)理論仍有待進(jìn)一步探索和完善。
(2)遷移性。對(duì)抗樣本具有遷移屬性。當(dāng)攻擊者想要生成對(duì)抗樣本進(jìn)行攻擊的時(shí)候,可以在替代的神經(jīng)網(wǎng)絡(luò)上生成一個(gè)樣本,然后再將其遷移到需要攻擊的神經(jīng)網(wǎng)絡(luò)上。而對(duì)于防御者而言,可以利用對(duì)抗樣本的遷移性,提升神經(jīng)網(wǎng)絡(luò)模型的防御能力,有效抵抗白盒攻擊。
(3)魯棒性評(píng)價(jià)。對(duì)抗樣本的攻防算法就像是“矛和盾”,當(dāng)一種防御算法被提出來后,則會(huì)被證明易受到一些針對(duì)性的攻擊算法攻擊,反之亦然。因此,一個(gè)深度網(wǎng)絡(luò)的魯棒性評(píng)估是很有必要的。目前,仍沒有一個(gè)統(tǒng)一的標(biāo)準(zhǔn)來確定攻防算法的優(yōu)劣。神經(jīng)網(wǎng)絡(luò)的魯棒性評(píng)估需要進(jìn)一步的探索。
(4)隱蔽性。雖然目前諸多的對(duì)抗攻擊算法在魯棒性、高效性、隨機(jī)性、黑盒性等方面都有了較大的提升,但這些方法的隱蔽性都還存在一定的不足。當(dāng)對(duì)目標(biāo)模型發(fā)起攻擊時(shí),需要多次的調(diào)用,這樣會(huì)暴露攻擊目的或攻擊行為。因此,如何利用對(duì)抗樣本的遷移性,來更加高效、隱蔽的攻擊神經(jīng)網(wǎng)絡(luò)模型也需要逐步完善。
對(duì)抗樣本的存在為人工智能技術(shù)帶來了極大的安全隱患。對(duì)抗樣本的攻防算法已經(jīng)成為人們廣泛關(guān)注的問題。本文介紹了對(duì)抗樣本的研究意義和概念,分析了目前經(jīng)典的幾種對(duì)抗攻擊算法和對(duì)抗防御算法。最后,根據(jù)對(duì)研究目前對(duì)抗樣本研究現(xiàn)狀和經(jīng)典算法的分析,討論了這一領(lǐng)域未來研究挑戰(zhàn)。