back to index
【機器學習2021】來自人類的惡意攻擊 (Adversarial Attack) (下) – 類神經網路能否躲過人類深不見底的惡意?

link |
到目前為止,我們在上課講的內容,其實都是White Box的Attack
link |
什麼意思呢?也就是說,我們要計算這個Gradient
link |
我們做FGSN要計算這個Gradient
link |
在計算Gradient的時候,我們需要知道模型的參數
link |
知道模型的參數,才有辦法計算這個Gradient
link |
才有辦法在Image上加上Notice
link |
像這種知道模型參數的攻擊,叫做White Box的Attack
link |
白箱就是一個動畫,這個是白箱,沒有很重要
link |
但是你可能會覺得說,攻擊需要知道Network的參數
link |
線上的服務它的模型,你又不知道參數是什麼
link |
所以也許要攻擊一個線上的服務,並沒有那麼容易
link |
所以其實如果我們要保護我們的模型不被別人攻擊
link |
也許我們只要記住,不要隨便把自己的模型放到網路上
link |
不知道模型參數下的攻擊,叫做Black Box Attack
link |
我們到目前為止講說,我們在做攻擊的時候都需要計算Gradient
link |
計算Gradient需要知道Model的參數
link |
那我們的作業,剛才助教也有講過,就是黑箱攻擊
link |
所以網路上有一個模型,這個模型你是沒有辦法拿到的
link |
這個其實就是Judge Board上面的那個模型
link |
假設你知道這個Network是用什麼樣的訓練資料訓練出來的話
link |
那你可以去訓練一個Proxy的Network
link |
讓這個Network來模仿我們要攻擊的對象
link |
我們要攻擊的對象跟Proxy的Network
link |
如果都是用同樣的訓練資料訓練出來的話
link |
如果Proxy的Network跟要被攻擊的對象
link |
那我們只要對Proxy的Network進行攻擊
link |
拿去丟到我們不知道參數的Network上
link |
那這個其實就是在我們作業裡面做的事情
link |
你從某一個地方找來某一個已經訓練好的影像辨識的模型
link |
這個是你的Proxy的Network
link |
你在CodeLab上攻擊這個自己的Network
link |
在作業裡面我們知道是Cypher10
link |
我們要被攻擊的對象是用Cypher10訓練出來的
link |
所以你只要用一個Cypher10訓練出來的模型
link |
但是假設我們完全沒有訓練資料的話怎麼辦呢
link |
線上的Service就算是他不會告訴你Network的參數
link |
再把輸入輸出的成對資料拿去訓練一個模型
link |
當作Proxy Network進行攻擊
link |
ResNet 152層 ResNet 101層
link |
那這個Column代表要被攻擊的Network
link |
那這個Row代表說我們有五個Proxy的Network
link |
代表說Proxy的Network跟要被攻擊的Network
link |
所以如果你拿ResNet 152當作Proxy Network
link |
攻擊的時候其實是攻擊一個一模一樣的Network
link |
所以這個正確率越低代表你的攻擊是越成功
link |
White Box Attack的部分
link |
舉例來說你用ResNet 101當Proxy Network去攻擊
link |
ResNet 152得到的正確率是19%
link |
或者是你拿ResNet 152當作是Proxy Network去攻擊ResNet 50
link |
所以顯然黑箱攻擊也有一定的成功的可能性
link |
Non-Target Attack的時候比較容易成功
link |
Target Attack就不太容易成功
link |
就是假設你用Proxy Network
link |
那如果你把Attack的Image拿到
link |
這個Target Attack比較難成功
link |
但Non-Target Attack還是非常容易成功的
link |
那如果你要增加這個Black Box Attack的成功率怎麼辦呢
link |
剛才助教也講了一個可以過Strong Baseline的Tip
link |
就是Ensembled Network
link |
那這個Ensembled Network要怎麼做呢
link |
這個Column代表要被攻擊的Network
link |
你會發現每一個模型的名字前面放了一個簡號
link |
它就代表說我們現在把這五個模型都集合起來
link |
在ResNet-152以外的模型都是成功的
link |
我們假設我們手上沒有ResNet-152
link |
但是有ResNet-101 ResNet-50 VGG-16
link |
我們Google LANet找一張Image
link |
然後看看在ResNet-152上會發生什麼事
link |
下面這個表格跟上面這個表格的看法是不一樣的
link |
所以這個地方是我們要攻擊ResNet-152
link |
但是用了另外四個Network一次再推
link |
那你發現說當你有做ensemble的時候
link |
當你找一個Attack Image可以成功騙過多個Network的時候
link |
騙過一個你不知道參數的黑箱Network
link |
你看對角線上的正確率基本上都是10%以下
link |
這個圖上面的圓點代表一張小丑魚的圖片
link |
分別是把這張圖片往兩個不同的方向移動
link |
把這個高微的向量往某一個方向移動是橫軸
link |
那這邊的橫軸跟縱軸分別是什麼樣的方向呢
link |
雖然這個橫軸是讓BGG16可以攻擊成功
link |
ResNet50 ResNet101 152 GoogleNet上面
link |
你看這個圖的話會發現他們有很大的類似之處
link |
他們中間這個深藍色的區域都還蠻相近的
link |
但是如果你是往可以攻擊成功VGG16的方向來移動的話
link |
他就掉出會被辨識成小丑魚的區域範圍之外
link |
他就掉出會被辨識成小丑魚的區域範圍之外
link |
對不同的network影響都是蠻類似的
link |
他說adversary examples are not bugs
link |
不是只有對deep learning有一樣的問題
link |
為什麼Machine會把這些非常小的雜訊
link |
所以也許adversal attack會成功的原因
link |
也許就有機會避免adversal attack
link |
data是造成attack會成功的元兇
link |
那attack的signal我們希望它越小越好
link |
在文獻上有人成功的做出one pixel attack
link |
所謂one pixel attack的意思是說
link |
你只能動圖片裡面的一個pixel而已
link |
那你會發現說one pixel attack
link |
在這個地方某一個pixel的顏色被改變了
link |
機器把teapot變成joystick
link |
所以感覺這個攻擊並沒有非常的powerful
link |
這個是one pixel attack
link |
叫universal adversarial attack
link |
universal的attack是什麼意思呢
link |
你會分別找出不同的attack signal
link |
那如果你今天要hack某一個監視系統
link |
那你可能需要真的hack進去那個監視系統
link |
你都要客製化找出一個attack signal
link |
如果universal attack可以成功的話
link |
那如果這個訊號這個attack signal非常強
link |
只要加上這個attack signal
link |
你只要把這個signal直接放在攝像頭上
link |
那universal attack有可能成功嗎
link |
universal attack是有可能成功的
link |
有一個作業是做question answering
link |
Why? How? Because? To kill American people
link |
To kill American people
link |
所以你可以在文字上進行adversal attack
link |
To kill American people
link |
叫做adversarial reprogramming
link |
這個就是adversarial reprogramming
link |
那adversarial reprogramming裡面
link |
又train在image內的模型上面
link |
如果三個方塊就看到white shark
link |
如果四個方塊就看到tiger shark
link |
這個image內train出來的模型
link |
你希望丟到image內的classifier裡面
link |
丟進image classifier裡面
link |
這個是adversarial reprogramming
link |
但是你的image classifier
link |
可以削減attack signal的威力
link |
擋住adversarial attack
link |
這個adversarial attack
link |
並不是隨便sample一個noise
link |
但是它的confidence的分數就下降
link |
給image classifier的圖片
link |
但是這種passive defense
link |
你的隨機的distribution的話
link |
universal attack是有可能的
link |
那別人只要用universal attack
link |
這樣子randomization的方式
link |
叫做adversarial training
link |
那這個adversarial training
link |
這個跟一般的training是一樣的
link |
變成x1 tilde到xN tilde
link |
這個y1 tilde到yN tilde
link |
這個y1 tilde到yN tilde是一樣的
link |
Universal Training的概念就是
link |
這個就是Universal Training的精神
link |
Data Augmentation的方法
link |
做了Data Augmentation這件事
link |
所以有人也會把Universal Training
link |
你也可以用Universal Training
link |
那像這樣Universal Training
link |
你用的是algorithm ABCDE
link |
並沒有在Universal Training的時候
link |
那Universal Training
link |
所以Universal Training
link |
另外Universal Training
link |
但是Universal Training
link |
Universal Training
link |
所以Universal Training
link |
Universal Training for free
link |
做到Universal Training的效果
link |
卻沒有Universal Training
link |
那麼大的computing的intensity
link |
Universal Training for free
link |
就達到Universal Training的效果