李宏毅——對抗模型 attack and defence

motivation

想在脫離實驗室,實際環境中使用
要做到:
強:要對噪音robust
對付來自人類的惡意:要對惡意的騙過機器的數據robust
偵測帶有惡意的東西:垃圾郵件,惡意軟件檢測,網絡侵入等

攻擊

例子

在圖片上加上特製的噪聲,網絡會得到不同的答案
[外鏈圖片轉存失敗(img-DSIkPpXH-1568948245655)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p36)]

如何找出特製的噪聲

通常訓練過程,最小化y‘和y_true間的距離
訓練時:x是不變的,獲得theta
攻擊時,網絡是不變的,固定theta,獲得x’
沒有目標的攻擊:加上x‘,希望y’跟y_true越小越好
有目標的攻擊:加上x‘,希望y’跟y_true越小越好,同時跟一個錯誤答案越近越好
額外的限制:x’和x越接近越好,不能被人發現
[外鏈圖片轉存失敗(img-jDGZoHH7-1568948245656)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p37)]

限制

如何定義distance
圖中的例子表示,在使用l-infinity時,值越大,人眼的分辨更明顯些
[外鏈圖片轉存失敗(img-nZijBsDq-1568948245656)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p39)]

how to Attack

想法:像訓練神經網絡一樣,但是不是最小化時的參數theta,而是x’
做法:gradient Descent,但是加上限制
。判斷xt是否符合限制,如果不符合,那麼要修正xt
修正方法:窮舉x0附近的所有xt,用符合限制的xt來取代
[外鏈圖片轉存失敗(img-YrVMmnJy-1568948245657)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p42)]
修正算法的圖形化表示如下圖,如果xt跑出圈圈範圍外了,就把它抓回來。
[外鏈圖片轉存失敗(img-T4Jzsx1A-1568948245657)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p43)]

實例

使用一個貓,讓它輸出海星
[外鏈圖片轉存失敗(img-P97jVWk6-1568948245658)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p44)]
分析兩張圖片的不同,很小,要乘以50倍才能看出
[外鏈圖片轉存失敗(img-vez8UEGo-1568948245658)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p45)]
把貓變成鍵盤
[外鏈圖片轉存失敗(img-sbkJ8QEn-1568948245659)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p46)]

是否是因爲網絡很弱呢?
隨機加噪聲,但是對結果的影響不大,加的噪聲逐漸增大以後會有影響
[外鏈圖片轉存失敗(img-WRZ2Lh9b-1568948245659)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p47)]

到底是因爲什麼呢?
x0隨機移動,多數時候,在該點附近,網絡判斷爲tiger cat的confidence很高
對於在高維空間中的一個點,有某些神奇的方向會出現這種現象:只要稍微推一點,預測爲某個不相干的東西的confidence就會很高。但是整個網絡在其他方向上比較長,在某個特定的方向比較窄。
[外鏈圖片轉存失敗(img-fe7jdjUn-1568948245659)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p48)]

攻擊方法

不同方法主要區別在不同的限制和不同的優化方法。
[外鏈圖片轉存失敗(img-j2haJSWc-1568948245659)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p49)]

FGSM(Fast Gradient Sign Method)

FGSM一種非常簡單的方法。只更新一次,一次攻擊成功
[外鏈圖片轉存失敗(img-B5LBntr5-1568948245660)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p50)]
具體的做法是先求gradient,然後更新x0,它並不在意gradient的值,只在乎方向。
[外鏈圖片轉存失敗(img-JbRz2aRn-1568948245661)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p51)]
它的原理等於給了一個非常大的learning rate,所以一次update就能跑出範圍,然後把它拉回對應的角。
[外鏈圖片轉存失敗(img-fzbdp6QQ-1568948245662)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p52)]
它還有一種進階的方法,可以多次更新。

白盒和黑盒

在之前的攻擊中,我們都知道theta,去尋找最有的x’。
爲了攻擊,需要知道網絡的參數theta,這種就是白盒攻擊。
如果我們不知道網絡,就安全了嗎?
並不是的,因爲可以進行黑箱攻擊。

黑盒攻擊

如果你能夠得到目標網絡的訓練數據
可以訓練一個proxy network網絡
然後利用proxy network網絡得到攻擊數據,再來攻擊原網絡,往往能夠成功[外鏈圖片轉存失敗(img-rNjqvM8D-1568948245662)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p53)]
所以應該保護好訓練資料,但是即便沒有訓練資料,也有可能進行攻擊。
只要丟大量的數據過去,獲得輸出的結果,也能進行黑箱攻擊。
下表中表示黑箱攻擊時,系統辨識的正確率。列表示用的proxy,行表示實際用的模型。數據越低,說明攻擊效果越好。
[外鏈圖片轉存失敗(img-ilXP7ZcQ-1568948245662)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p54)]

衍生研究

Universal Adversarial Attack

之前提到的攻擊,對於每個圖片x,會有不同的噪聲x‘進行攻擊,有人提出了通用的噪聲,可以讓所有圖片的辨識結果都出錯。
這個也可以做黑箱。
[外鏈圖片轉存失敗(img-9jhSg745-1568948245662)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p55)]

Adversarial Reprogramming

有一個辨識魚的網絡,可以將它改造成數方塊的網絡,根據方塊的不同進行輸出。
加一噪聲,就能變成別的網絡
[外鏈圖片轉存失敗(img-Gd2cPEaU-1568948245663)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p56)]

真實世界的攻擊

有人做實驗,把攻擊的圖像打印出來,然後用圖片放在攝像頭上進行攻擊。證明這種攻擊時可以在現實生活中做到的。
可以對人臉識別上進行攻擊,把噪聲變成眼鏡,帶着眼鏡就可以實現攻擊。
[外鏈圖片轉存失敗(img-UAEyrmwp-1568948245663)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p57)]
結果表示,可以被辨識成其他人。
[外鏈圖片轉存失敗(img-QrafdO5m-1568948245663)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p58)]
在現實生活中需要做的以下幾點。

  • 要保證多角度都是成功的
  • 噪聲不要有非常大的變化(比如只有1像素與其他不同),要以色塊方式呈現,這樣方便攝像頭能看清
  • 不要用打印機打不出來的顏色
    在交通符號上加噪聲。
    [外鏈圖片轉存失敗(img-rgJUROQb-1568948245663)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p59)]

其他方向的攻擊

語音
文字
[外鏈圖片轉存失敗(img-AVZPj6vi-1568948245664)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p60)]

防禦

有人說現在網絡之所以會被攻擊,是因爲overfit,其實不然。通過regularization,dropout或者esemble時不能解決

兩種類型

被動防禦

不處理網絡另外加一個防護罩,可以視爲一種特殊的異常檢測。
[外鏈圖片轉存失敗(img-OjsYKURv-1568948245664)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p61)]

主動防禦

主動攻擊是在訓練模型是就加上防禦的思想。

被動防禦

[外鏈圖片轉存失敗(img-cNyeaZ0b-1568948245664)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p62)]
filter的一個例子:可以直接對圖像進行平滑化。這種方法能夠成功的原因,是改變了某個方向上突變的樣子,但是不會改變圖片的原意。

feature Squeeze

squeezer指的是不同的filter
[外鏈圖片轉存失敗(img-dLu2Kplz-1568948245665)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p63)]
比較這些輸出,如果區別很大就有問題。

Randomization at Inference Phase

稍微做些改變,看輸出是否會有變化
[外鏈圖片轉存失敗(img-A3vv1Hy7-1568948245665)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p64)]
在model前面加盾牌的方法,如果filter被泄漏,仍然可能被攻擊

主動防禦

精神:訓練network時把漏洞找出來,補好
給定訓練資料,然後用訓練集來訓練模型
如何找漏洞呢?
訓練T輪,找出每一個輸入對應的的attack,然後把可以被attack成功的數據找出來,再把這些數據加上正確的label,當作新的資料,進行訓練。
訓練T輪是因爲訓練時參數會變,所以要找出新的漏洞,再補起來

如果你用A方法來找漏洞,但是被B方法攻擊,可能仍然防不住
假設你的找漏洞的方法被泄漏出去,別人就可以不用這種方法,換一種方法攻擊。
[外鏈圖片轉存失敗(img-4gm7IEXz-1568948245665)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p66)]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章