back to index

Attack ML Models (1/8)


link |
00:00.000
各位同學大家好,那我們來上課吧。
link |
00:05.000
我先解釋一件事,尤其有人會問說,為什麼老師的門牙不見了?
link |
00:10.000
這件事情一點都不重要,只要你講話沒有太漏風,你還聽得懂就好了。
link |
00:15.000
因為我門牙裂了,所以又把裂掉的門牙拔掉,然後現在在植牙中。
link |
00:22.000
好,那我今天要講的是Attack跟Defense。這邊的Attack跟Defense指的是什麼呢?
link |
00:31.000
就是我們都知道說Machine Learning的技術,今天非常的popular。
link |
00:38.000
我們當然期待這樣的技術,不只是用在寫paper上,不只是存在實驗室中,而是能夠在日常生活中真正被使用。
link |
00:50.000
但是如果我們要把Machine Learning的技術用在日常生活中,它光是好是不夠的,它還要能夠對抗帶有惡意的攻擊。
link |
01:01.000
所謂帶有惡意的攻擊是說,假設有人製造一些特殊的輸入,這些特殊的輸入他製造的目的就是為了要騙過Machine Learning的model。
link |
01:13.000
我們希望這些Machine Learning的model,他不只是能夠對抗一般的雜訊,他還要能夠對抗這些人類刻意製造出來的,要騙過Machine的input。
link |
01:26.000
也就是說,我們希望今天Machine Learning的model,他不只是要強,而且他還要能夠對付人類惡意的攻擊。
link |
01:37.000
就好像說蟻王他雖然很強,但是他不了解來自人類的惡意,所以他最後就還是被人類殺死了。
link |
01:44.000
所以我們希望機器不只是強,他還要能夠對抗來自人類的惡意。
link |
01:49.000
而那你可不可以想說,真的有人會惡意攻擊Machine Learning所學出來的model嗎?
link |
01:56.000
其實是有可能的,因為有很多Machine Learning的應用,他本身就是想要偵測帶有惡意的東西。
link |
02:05.000
舉例來說,垃圾郵件的偵測,或者惡意軟體的偵測,或者是網路入侵的偵測,我們都是用Machine Learning的技術來偵測垃圾郵件的話,
link |
02:16.000
那編寫垃圾郵件的人就會想要把那些垃圾郵件進行改寫,隱藏成可以騙過Machine Learning的垃圾郵件。
link |
02:26.000
所以今天假設你的Machine Learning model存在的目的是為了偵測帶有惡意的東西的話,那他就需要應付有人會把輸入做惡意的改造,
link |
02:38.000
想要試圖騙過Machine Learning的model。
link |
02:41.000
這個是為什麼我們需要研究如何攻擊一個Machine Learning的model,還有如何防禦一個Machine Learning的model。
link |
02:50.000
那今天這個課就分成兩個部分,我們先講如何攻擊一個model,再講如何防禦一個model。
link |
02:58.000
那等一下多數的時間我們其實都會集中在講攻擊的部分,因為其實今天我們發現攻擊是比較容易的,
link |
03:08.000
多數的Machine Learning的model其實都相當容易被各式各樣的方法攻破,但是防禦目前仍然是比較困難的。
link |
03:17.000
那我們今天到底想要做什麼樣的攻擊呢?
link |
03:22.000
這邊舉個例子,你現在有一個影像偵測的模型,比如說它是一個很深的residual network,
link |
03:29.000
那本來它可以做影像的辨識,你給它看一張圖片,它就告訴你說這張圖片裡面是什麼樣的東西。
link |
03:38.000
舉例來說,我實際上把這張圖片丟到50層的residual network裡面,它跟我說它是Tiger Cat,那它的信心分數是64%。
link |
03:50.000
其實我本來覺得Tiger Cat這個答案應該是正確的,但我後來仔細Google一下,我覺得好像又沒有那麼正確。
link |
03:58.000
Tiger Cat,我Google一下,它的中文是小虎斑貓,好像是一個正確的答案,因為這個確實是一隻貓,根據它的斑紋,也許可以說它是虎斑貓。
link |
04:13.000
但是後來我再更仔細地Google一下,發現小虎斑貓其實也不算是一種貓,它其實比較類似石虎那種生物。
link |
04:20.000
所以這個辨識結果好像沒有說完全的正確,不過沒有關係,我們就當作是Machine得到了一個頗為正確的結果就是了。
link |
04:30.000
如果Machine它說看到這張圖片,它說這個是一個Tiger Cat,是一個小虎斑貓,你其實也不會覺得說它是一個很笨的model,你會覺得說它是一個做得還不錯、好聰明的模型。
link |
04:42.000
我們現在想要做的事情是這樣,我們把圖片上面加上一些雜訊,但這些雜訊不是隨機生成的雜訊。
link |
04:52.000
等一下我們會看到說其實隨機生成的雜訊並沒有辦法真的對Network造成太大的傷害。
link |
04:59.000
我們今天這些雜訊它不是什麼從Caution Distribution裡面隨機生成的雜訊,它是一些很特殊的雜訊。
link |
05:07.000
它是一些很特殊的訊號,把這些很特殊的訊號加到一張圖片上以後,你得到一張稍微有點不一樣的圖片,把這張稍微有點不一樣的圖片丟到你的Network裡面,然後Network就會得到非常不一樣的結果。
link |
05:24.000
本來的圖片我們叫做X0,而我們現在把X0加上一個很特別的signal,加上一個我們人類特別製造出來的雜訊,把這個X0加上丟在X0。
link |
05:41.000
得到一張新的圖片,我們這邊寫作X',把X'丟到這個Network裡面,本來看到X0的時候你的Network會說它是一隻Tiger Cat,好像是一個否為正確的答案。
link |
05:52.000
但是這個Network看到Tiger的image,X'的時候,它會得到一個截然不同的答案。
link |
06:00.000
這個就是所謂的攻擊要做的事情。