對抗性攻擊的原理簡(jiǎn)介
由于機器學(xué)習算法的輸入形式是一種數值型向量(numeric vectors),所以攻擊者就會(huì )通過(guò)設計一種有針對性的數值型向量從而讓機器學(xué)習模型做出誤判,這便被稱(chēng)為對抗性攻擊。和其他攻擊不同,對抗性攻擊主要發(fā)生在構造對抗性數據的時(shí)候,該對抗性數據就如正常數據一樣輸入機器學(xué)習模型并得到欺騙的識別結果。
什么是對抗樣本?
這些數據樣本看起來(lái)像正常樣本,但以某種方式受到干擾以欺騙機器學(xué)習系統。例如在給定的圖像中,并非所有像素都具有相同的重要性,如果可以識別最重要的像素(用于 ML 系統做出分類(lèi)決策)并更改它們,那么算法決策也會(huì )發(fā)生變化,樣本的結果也會(huì )發(fā)生變化,但是從肉眼看起來(lái)它還是正常的。
右邊的熊貓在加入對抗性噪聲后看起來(lái)仍然像熊貓,但現在它會(huì )被原來(lái)的分類(lèi)器分類(lèi)到一個(gè)完全不同的類(lèi)中。
所有圖片都可以通過(guò)這樣一種方式受到干擾,以至于所有的圖片都被預測為一架飛機。
為什么會(huì )發(fā)生對抗性攻擊?
在我們指出它們發(fā)生的原因之前,我們再次強調無(wú)論是邏輯回歸、softmax 回歸、SVM、決策樹(shù)、最近鄰還是深度學(xué)習模型,沒(méi)有任何 ML 算法可以免受對抗性攻擊。對抗性示例的發(fā)生是因為系統中的excessive linearity(過(guò)度線(xiàn)性?)造成的。你可能認為深度學(xué)習很容易形成非線(xiàn)性決策邊界,是的整體上是這樣的,但幾乎每一個(gè)深度學(xué)習架構都是分段線(xiàn)性的(想想激活函數)。所以當一個(gè)點(diǎn)靠近線(xiàn)性邊界時(shí),即使是少量的噪聲也能將其推到?jīng)Q策邊界的另一側。從下圖中還可以看到,在實(shí)踐中深度學(xué)習分類(lèi)器具有非常線(xiàn)性的響應。
深度學(xué)習架構是分段線(xiàn)性的
通常這些類(lèi)的類(lèi)間距離很小,因此使用快速符號梯度法FGSM(Fast Gradient Sign Method)可以輕松更改給定對象的類(lèi)。FGSM通過(guò)向圖像添加線(xiàn)性量的不可感知噪聲并導致模型對其進(jìn)行錯誤分類(lèi)。這個(gè)噪聲是通過(guò)將梯度的符號與我們想要擾動(dòng)的圖像乘以一個(gè)小的常數 epsilon 來(lái)計算的。隨著(zhù) epsilon 的增加模型更有可能被愚弄,但擾動(dòng)也變得更容易識別。對抗噪聲可能看起來(lái)像隨機噪聲,但它肯定不是。它會(huì )根據像素在最終分類(lèi)結果中的重要性,為每個(gè)像素添加不同數量的噪聲。
它們如何被用來(lái)破壞機器學(xué)習系統?
Andrej karpathy在他的論文中展示了如何打破ImageNet數據集上的線(xiàn)性分類(lèi)器。但這并不僅限于圖像,甚至可以欺騙表格數據,這在金融領(lǐng)域是非常致命的。對抗性攻擊是我們不信任自治系統(autonomous system)的原因。我們需要能夠處理噪音并能在不同環(huán)境中保持穩定的系統。
對抗性魯棒性工具集(ART)是用于機器學(xué)習安全性的Python庫。ART提供的工具可 幫助開(kāi)發(fā)人員和研究人員針對以下方面捍衛和評估機器學(xué)習模型和應用程序:逃逸,數據污染,模型提取和推斷的對抗性威脅,有興趣的可以看看。
https://github.com/Trusted-AI/adversarial-robustness-toolbox
對抗樣本非常危險的另一個(gè)關(guān)鍵領(lǐng)域是人工智能醫療。僅 5 個(gè)像素就足以使模型變得毫無(wú)用處, 這表明模型不是整體的,并且以完全錯誤的方式在查看數據。盡管從結果來(lái)看它看起來(lái)很聰明,但在所有結果的背后只是一種數字運算技術(shù)并且缺乏上下文的支持,這就是為什么對抗性攻擊的風(fēng)險如此之高。
有哪些防御措施?
正如我們之前確定的那樣,對抗樣本的存在是因為系統中的線(xiàn)性度,如果我們能以某種方式減少這種線(xiàn)性度會(huì )怎樣。先談?wù)?VC維(Vapnik–Chervonenkis dimension),vc理論(Vapnik–Chervonenkis theory )是由 Vladimir Vapnik 和 Alexey Chervonenkis發(fā)明的,該理論試圖從統計學(xué)的角度解釋學(xué)習的過(guò)程。而VC維是VC理論中一個(gè)很重要的部分。對一個(gè)指示函數集,如果存在h個(gè)樣本能夠被函數集中的函數按所有可能的2^h種形式分開(kāi),則稱(chēng)函數集能夠把h個(gè)樣本打散;函數集的VC維就是它能打散的最大樣本數目h.若對任意數目的樣本都有函數能將它們打散,則函數集的VC維是無(wú)窮大. VC維反映了函數集的學(xué)習能力,VC維越大則學(xué)習機器越復雜(容量越大).學(xué)習能力越強。
現在,你是否知道一種具有非常高 VC 維度的算法,這意味著(zhù)它可以在非常高的維度上分離點(diǎn)?我所知道的唯一算法是 SVM 的高斯或 RBF 核,它的 VC 維數為無(wú)窮大,這意味著(zhù)理論上它甚至可以在神經(jīng)網(wǎng)絡(luò )無(wú)法做到的無(wú)窮維中分離點(diǎn)。正是因為這個(gè)原因,RBF-SVM 對對抗樣本具有魯棒性。對于除 RBF-SVM 之外的任何其他分類(lèi)器,研究人員都可以生成任何被預測為 0、1、2….、9 的數字并且無(wú)論從人還是從機器角度看輸入中也沒(méi)有任何明顯的噪聲。下圖顯示,當他們嘗試為 RBF-SVM 生成對抗樣本時(shí),數字實(shí)際上發(fā)生了很大變化。RBF-SVM 將數據推向無(wú)限維度,因此每個(gè)類(lèi)之間的類(lèi)間距離很大。
對于神經(jīng)網(wǎng)絡(luò ),可以使用對抗性示例訓練網(wǎng)絡(luò ),這往往會(huì )增加網(wǎng)絡(luò )的魯棒性。對抗訓練提供正則化和半監督學(xué)習 ,下圖顯示了對抗樣本訓練的性能提升。其他想法是訓練模型使其不可微。此外對抗性攻擊不會(huì )因為傳統的正則化技術(shù)而消失。
以下都是對于對抗性攻擊沒(méi)有任何作用的一些方法
最初研究人員認為GAN可以解決這個(gè)問(wèn)題,他們認為如果我們知道輸入的真實(shí)分布,我們就可以避免這個(gè)問(wèn)題,但事實(shí)證明,識別對抗樣本仍然非常困難??纯聪旅娴膱D片,一組是好的,另一組是壞的,但是對人類(lèi)的眼睛來(lái)說(shuō),它們看起來(lái)是一樣的。
線(xiàn)性模型:支持向量機/線(xiàn)性回歸不能學(xué)習階躍函數,所以對抗訓練的用處不大,作用非常類(lèi)似于權值衰減
k-NN:對抗訓練容易過(guò)度擬合。
結論
神經(jīng)網(wǎng)絡(luò )實(shí)際上可以變得比其他模型更安全。對抗性訓練的神經(jīng)網(wǎng)絡(luò )在任何機器學(xué)習模型的對抗性示例上都具有最佳的經(jīng)驗成功率。
對抗訓練提供正則化和半監督學(xué)習
進(jìn)攻很簡(jiǎn)單
防守很困難
*博客內容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀(guān)點(diǎn),如有侵權請聯(lián)系工作人員刪除。