【竞赛总结】安全AI之人脸识别对抗
安全AI挑戰賽
比賽名稱:安全AI挑戰者計劃人臉識別對抗
比賽類型:學術、對抗樣本、計算機視覺
賽題背景
近年來隨著科技的蓬勃發展,AI逐步成為各類應用技術的驅動器,推動行業及技術發展。在安全領域,AI也正發揮越來越重要的作用,隨著流量識別、人臉識別、動作識別、假貨識別等應用場景的出現,AI與安全結合的成果愈加豐碩,但AI面臨的安全問題也逐漸浮出水面。
AI安全性有諸多挑戰,為了抵御未來AI面臨的安全風險,阿里安全聯合清華大學,以對抗樣本為核心,假想未來作為安全AI防守者的身份,結合內容安全場景,從文字、圖像、視頻、聲音等多個領域針對對抗樣本技術資源賞金召集“挑戰者”共同打磨AI模型安全,為打造更安全的AI共同努力。
賽題介紹
人臉識別(face recognition)系統作為人工智能最成熟的應用領域,已經大規模落地并服務于人們的日常生活,例如基于二代身份證的實人認證,刷臉支付,人臉閘機驗證等。但是,在大規模商業化的同時,人臉識別技術也面臨更多方面的威脅。人臉對抗樣本通過對人臉圖像做微小的改動,欺騙AI系統做出錯誤的決斷,破壞實人認證系統,將會給社會造成重大的損失。
此次比賽模擬人臉場景下的對抗攻擊。在不知道模型詳細信息的前提下,選手在線下對測試樣本進行修改,然后提交至線上做攻擊測試。
數據與評測
賽題使用從著名的人臉識別評測集LFW(Labeled Faces in the Wild)中抽取了712張不同人臉圖像子集,作為比賽的測試集。所有人臉圖像都經過MTCNN對齊并縮放到112*112尺寸。
選手使用提供的712張人臉測試圖像進行攻擊,因評測端是根據dev.csv文件來讀取圖像,提交結果時必須保證圖像尺寸(112*112)、原始命名方式(jpg格式)以及存放路徑不變。
為了保證擾動后人臉的視覺效果,本次比賽限制單個像素的擾動在[-25.5, 25.5]區間內,對于擾動超出該范圍的提交結果,我們會在后臺強制把圖像擾動截斷至[-25.5, 25.5]區間(使用numpy.clip函數)。所以請參賽選手控制提交的對抗樣本與原圖在單像素上的差異。
對每個生成的對抗樣本,后臺會采用模型對該樣本進行預測,并根據識別結果計算相應的擾動量,具體計算公式如下:
第1名分享
對抗樣本(Adversarial Sample)指在正常樣本上引入不易察覺的噪聲后形成的樣本。這類樣本可以使CNN模型輸出高置信度的錯誤輸出。如圖1所示,只需要對原圖(雪山或者河豚)添加一些肉眼難以察覺的噪聲,即可使模型給出完全錯誤的預測。
同樣的問題也會出現在生物識別算法中。圖2就給出了人臉比對算法中的對抗樣本。疊加對抗噪聲后,人臉的比對分從100分急劇下降到了60以下。也就是說,人臉比對算法此時已經無法成功識別出這兩個人了。
本次天池的人臉識別對抗競賽的題目是,給定712張LFW中的人臉圖片,要求生成對應的對抗樣本,使得人臉識別算法給出錯誤的結果。評測標準是對抗樣本對于原始樣本的像素擾動值。由于本次比賽并沒有提供人臉識別的API調用接口,黑盒攻擊方法并不適用。因此,我們將問題轉化為白盒攻擊。通過對現有攻擊方法的優化結合一些新的調優思路,我們的方法在此次比賽中獲得第一名(score=1.20)。
具體的攻擊框架圖如圖所示。首先,我們挑選了若干種常用的比對模型結構(包括inceptionV3,resnet family和VGG等)和其對應的預訓練模型,并將他們的ensemble作為目標模型。其次,我們采用IPGD攻擊和GAN-based攻擊融合的方法(sample-wise ensemble),產出攻擊樣本。相比單一類型的方法,融合攻擊能在相同擾動下,獲得比單一方法更高的攻擊成功功率。最后,我們提出了一種自動參數尋優(hyper-parameter search)和結果融合(dataset-wise ensemble)的方法,從而針對部分樣本進一步降低像素擾動,提升比賽成績。
我們使用的攻擊方法可以被分為三步。第一步,對于一張輸入樣本,我們分別利用IPGD和GAN-based進行攻擊,得到若干對抗樣本備選。對抗攻擊過程中,經常會使用范數進行約束減小擾動量,在這里我們受[5]的啟示使用l1 ball進行約束和投影達到了最好的效果。同時針對最小擾動,我們對梯度值進行了排序,只選擇top10%的像素點進行擾動。在損失函數選擇上,考慮到GAN-base等訓練方式引入不確定性,我們選用Cosine Embedding Loss作為損失函數,通過margin的調整有效的控制干擾量。
最后,我們通過對不同樣本的對抗噪聲做若干種ensemble(加權相加、相乘或者直接選擇最優)得到擾動最小且攻擊效果最好的圖作為這張輸入的對抗樣本。在對整個數據集完成第一步后,就可以得到一個對抗樣本數據集。
第二步,我們通過grid-search來進行hyper-parameter的遍歷。對于每一次遍歷,我們都可以得到一個對抗樣本數據集。因此,第二步就會得到N個對抗樣本數據集,即圖中的Result_1 - Result_N。
最后一步,我們通過Dataset-wise Selection,在N個對抗樣本數據集中挑選最優的樣本集合。具體來說,就是對每個輸入樣本,選取擾動最小且攻擊效果最好的對抗樣本。最后,這些最優的樣本組成了最終的結果。
在實驗的過程中,我們還嘗試了用1:N(targeted)top1檢索與1:1(non-targeted)兩種對應的攻擊思路。實驗結果表明,1:1的方法更具有泛化性及遷移性,因此我們選擇了1:1。但同時1:N的攻擊在現實的人臉識別系統里顯得風險更為高。另外,在對對抗樣本的觀察,我們同時發現了有趣的現象,主要的干擾區域都集中在鼻子和眼睛。這個結論也符合我們對人臉識別模型的認知,主要的區分區域為鼻子和雙眼。
第1名分享原文:
https://tianchi.aliyun.com/forum/postDetail?postId=79472
第2名分享
解題思路分兩個方面,一個是提高fooling rate,第二個就是減小單像素擾動。
攻擊方法基于PGD:
由于人臉識別是比對不同人臉特征的相似度,所以我們直接增大對抗樣本與原圖的距離,這里我們選用余弦距離(即降低余弦相似度),則
為了最小化對原圖的擾動,加入對擾動圖的約束
最終loss為
此外,降低擾動一個方法是前面所述的在攻擊過程中加入對單像素擾動的約束;還有就是攻擊結束后精簡已經生成的擾動圖。這里受 Curls&Whey 方法的啟發,Curls&Whey 將所有像素分為255組,一組一組迭代縮小擾動。我們采用一種新的方式將像素分組
Curls&Whey通過減小所有像素的擾動量來降低平均單像素擾動,而我們通過降低擾動像素個數達到同樣的目的。實際上擾動圖中多數像素上的微小擾動對攻擊成功與否是不起決定作用的,對于每張擾動圖算出所有像素擾動,按擾動大小百分位數逐步置零再進行攻擊,直至攻擊成功保存擾動圖,反之繼續向下迭代。測試證明這一方法能夠明顯降低擾動。
另外我們還使用dlib檢測人臉,并框選出人臉部分,只保留框選區域。但額頭的皺紋、發際線這些紋理明顯的地方對識別結果也有非常重要的影響。攻擊失敗則保留整個擾動圖。至于使用關鍵點檢測做五官的mask實測效果不好,因為觀察發現擾動區域有很大一部分并不在五官上,而是周圍的紋理。
第2名分享原文:
https://tianchi.aliyun.com/forum/postDetail?postId=79443
第3名分享
作為攻擊者,我們希望獲得更多的數據信息來支持模型和算法的建立。因此,我們結合需要評測的人臉識別數據集LFW構建人臉數據特征、人臉特征距離以及線下攻擊驗證方法。
我們從http://vis-www.cs.umass.edu/lfw/lfw.tgz?下載了lfw.tgz全集,并用MTCNN對原始數據進行對齊并縮放到112*112尺寸,得到5749個人的人臉數據庫,并進行了簡單的數據清洗。在這里,每個人的照片數量不同,對每一張照片計算模型最后一層輸出的特征向量,同時對個人的特征向量進行平均,以該平均向量作為特定人臉的特征標準,最終得到的人臉平均特征向量庫mean.csv。
這里其實隱含了一個假設,即我們所要攻擊的系統具有和我們所建立的類似的人臉數據庫。由于后臺系統需要經過模型計算、距離度量、驗證對比等一系列操作來判斷攻擊是否成功,因此,我們希望建立比較完善的線下驗證機制來提高攻擊算法的開發效率,從而提升攻擊成功率,降低擾動量等相關指標。
距離度量
我們需要嘗試不同的損失函數(余弦距離、L2距離等)來驗證最終的效果,在這里我們采用了MSE作為損失函數,因為MSE比余弦距離約束更強一些。
模型選擇
我們嘗試了很多模型集成的方案,其中有人臉識別模型IR-152,ResNet50, ResNet101,IR-50,最終我們采用了開源的IR-50作為替代模型。
算法設計
我們采用多步迭代的FGSM算法,用L2范數對梯度進行歸一化。這里有一個細節,我們對三個通道分別進行L2范數的歸一話,效果比,所有像素點進行歸一化要來的好。
第3名分享原文:
https://tianchi.aliyun.com/forum/postDetail?postId=79323
第4名分享
首先本問題是基于黑盒的人臉攻擊,考慮到是人臉數據集,我們針對常用的模型結構進行集成,分別集成了IR50,IR101,IR152(模型深度不同)。考慮到線上的評測系統可能是通過相似來判定圖片的類別,我們使用了目標攻擊,通過多模型集成計算出圖片之間的相似度,我們選取第二相似的圖片作為目標圖片進行攻擊。
同時我們的損失函數有三個部分,經典的距離計算loss如L2,cos loss。TV loss是為了保持圖像的光滑性,后面部分會具體介紹。最后生成的noise會經過gauss卷積,最后疊加在原圖上。不斷迭代上述流程,直到當前圖片與自己的矩陣相似度超過0.25之后終止。
除此之外,我們的模型還是用了多進程多顯卡加速,在實際測試中是用兩塊1080Ti多進程計算,生成712張對抗樣本所花費的時間不到1小時。
干擾噪聲區域限制
考慮現有神經網絡模型在訓練人臉數據的時候對于重要的部位是比較敏感的。我們嘗試在圖像上生成attention map,發現面部區域的顏色更加突出。
因此我們添加的噪聲時只針對人臉的五官。具體的實現過程,我們使用dlib標定人臉的68個landmark,選取了17個點連接組成一個非mask區域,對于很少的無法用dlib標定landmark的圖片,我們手動框出人臉范圍。
TV loss
在降噪過程中,圖像上的較大的噪聲可能就會對結果產生非常大的影響,這時候我們就需要在最優化問題的模型中添加一些正則項來保持圖像的光滑性,TV loss是常用的一種正則項,在圖像中,連續域的積分就變成了像素離散域中求和,具體計算過程如下:
高斯濾波
高斯濾波在圖像處理概念下,將圖像頻域處理和時域處理相聯系,作為低通濾波器使用,可以將低頻能量(比如噪聲)濾去,起到圖像平滑作用。
對生成的干擾噪聲進行高斯濾波,使得生成的每個像素的噪聲與周圍像素具有相關性,降低了不同模型生成的干擾噪聲之間的差異,(因為不同模型有相似的分類邊界),有效提升對抗樣本攻擊成功率。同時考慮到線上測試可能會有高斯濾波這種防御機制因而在算法生成噪聲的時候加入高斯濾波一定程度上也能使防御機制失效從而提高樣本攻擊率。使用高斯核函數進行卷積就能完成上述操作,高斯核如下:
動量項
通過將動量項集成到攻擊的迭代過程中,加入動量項之后可以穩定更新方向并在迭代期間從較差的局部最大值中離開,從而產生更多遷移性更強的的對抗樣本。為了進一步提高黑盒攻擊的成功率,我們將動量迭代算法應用于集成,實驗表明加入動量項之后黑盒攻擊的效果更好。計算的公式如下:
第4名分享鏈接:
https://tianchi.aliyun.com/forum/postDetail?postId=79471
第5名分享
本次競賽形式在對抗機器學習領域屬于黑盒非定向攻擊。根據相關領域知識,我們知道黑盒攻擊成功的關鍵就在于替代模型以及相關損失函數的選擇,這也是我們首先需要做的。我們就需要通過不斷的嘗試選擇與目標模型(victim model)相近的模型結構和損失。找到合適的模型和損失后就是要設計合適的攻擊算法,我們認為此次競賽的目的就是找2-范數意義下的魯棒下界,即攻擊者需要找到2-范數度量下的最小對抗擾動。
在模型和損失搜索階段,我們首先采用Project Gradient Desent (PGD)作為基礎攻擊算法,然后通過嘗試不同的模型結構以及損失來估計目標模型的結構和損失.選擇PGD的原因是PGD作為一種迭代攻擊方法,結合了基于梯度攻擊算法的簡單以及優化攻擊方法效果好的特點. 在此過程中我們嘗試了基于傳統分類的結構(卷積,池化加全連接)以及backbone+head的結構。傳統分類器結構一般采用cross-entropy等統計相關損失,backbone+head(backbone就是深度模型分類器來提取人臉特征,head結構完成識別任務主要采用余弦相似度,arcface等損失)。
最終在固定攻擊算法為PGD的情況下我們選擇攻擊效果最好的模型作為我們的攻擊模型。?所以我們最終選擇的本地模型為backbone+head結構backbone結構為IFR-50。損失為余弦相似度。
首先根據我們的知識我們知道基于優化的攻擊算法最有可能實現最小范數攻擊,所以我們就把攻擊算法設計為一種基于優化的攻擊方法,可以形式化描述為:
第5名分享原文:
https://tianchi.aliyun.com/forum/postDetail?postId=79275
其他分享匯總
第7名分享原文:
https://tianchi.aliyun.com/forum/postDetail?postId=79439
第8名分享原文:
https://tianchi.aliyun.com/forum/postDetail?postId=79473
第9名分享原文:
http://tianchi.aliyun.com/forum/postDetail?postId=76834
第11名分享原文:
https://tianchi.aliyun.com/forum/postDetail?postId=79273
往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習及深度學習筆記等資料打印機器學習在線手冊深度學習筆記專輯《統計學習方法》的代碼復現專輯 AI基礎下載機器學習的數學基礎專輯獲取一折本站知識星球優惠券,復制鏈接直接打開:https://t.zsxq.com/662nyZF本站qq群704220115。加入微信群請掃碼進群(如果是博士或者準備讀博士請說明):總結
以上是生活随笔為你收集整理的【竞赛总结】安全AI之人脸识别对抗的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: TAB选项卡
- 下一篇: 原子微型结构信息应用到局部图形信息存储的