對抗樣本引發的系列討論

忙完ISBI和ICLR的投稿之後,接著是一周的上課,由於是第一次,所有slides都需要從頭開始寫,而且需要細讀很多相關的文章,著實花了不少時間,不過近乎一勞永逸,重用性很高,明年的時候會省不少精力。

投稿的這篇ICLR文章是和一位博士生合作的一篇文章是關於神經網路中對抗性樣本(adversarial examples)的問題, 最近我們頻繁討論關於對抗樣本的問題。今天下午的討論,引發了一系列的思考和其他問題,有很多Brain storming的內容,我兩甚至最後都不知所云了 :)。藉此文章介紹一下這「臭名昭著」的對抗樣本的問題——一個會深刻影響當今基於深度學習的AI system的安全性問題,最後記述我們下午由此引發的系列討論。

所謂對抗性樣本,指的是對於訓練好的神經網路(比如是訓練好神經網路用作圖片分類) f(x) ,隨便拿一張能被網路正確分類的圖片 x ,人為的對圖片的像素加一些很小的擾動 epsilon (perturbation),神經網路會以很大的概率將perturbed的圖片 x+ epsilon 分類錯誤,即

begin{equation} f(x+ epsilon) ne y^{true} end{equation} ,重要的是擾動後的圖片人眼是不會分類錯誤的,甚至都無法察覺加了擾動。比如下圖將一個大熊貓的圖片進行很小的擾動就會將其分類為長臂猿。也就說明當今被人們廣為稱道的深度學習模型是如此的脆弱不堪。

注意這個小擾動 epsilon 不是一個隨便的擾動,而是解一個優化問題得到的擾動,我們稱為這個求解過程為攻擊網路,這也是被稱為對抗性樣本的原因。

 begin{equation} max_epsilon J(f(x+epsilon), y^{true}) quad text{s.t. } | epsilon | leq eta end{equation}

其中 J 是選取的某種目標函數比如cross entropy, eta 是擾動在某種norm度量下的上界,是為了不讓擾動太大,不然human eye都會分錯。求解的過程需要知道神經網路的輸出對於輸入的剃度 nabla_{x} f(x) , 做一步的gradient ascent便可以完成攻擊(該方法一般被稱為 Fast Gradient Sign Method)。這種需要知道剃度的攻擊一般被稱為white box攻擊,因為需要知道網路具體的結構來計算剃度信息。關於如何在white box情形下攻擊神經網路的方法,有不少相關的文章,感興趣的話大家可以查看相關論文,不再贅述。

其實更為嚴重的問題是,對抗性樣本會遷移(transfer), 即在一個模型A上產生的對抗樣本讓另外一個模型B去分類該樣本,模型B依然會以比較大的概率分錯該樣本,這種攻擊方式被稱為black box attack。這個遷移問題會給基於神經網路的AI系統帶來極大的安全隱患!大家可想而知,如果我想攻擊一個無人駕駛的轎車,我大體知道你的識別網路是識別一些車牌,路標,以及車道線等等,於是我在本地也以類似的訓練數據集訓練一個神經網路,並以此神經網路產生對抗樣本來攻擊遠程的這個自動駕駛識別系統,對抗樣本的可遷移性會給系統帶來極大的安全問題!這也是對抗樣本引起當今深度學習研究人員關注和探討的重要原因。目前來說對於如何抵抗對抗樣本,尤其是如何抵抗對抗樣本遷移的問題,大家基本沒有好的辦法,目前仍然處於研究當中。

如下回憶以下我兩下午討論引發的一些思考,由於是很隨意的Brain storming,所以邏輯性不強,大家就當聽故事了 :)

  1. 這樣人為產生的對抗樣本到底在不在數據分布 p_{data}(x)?答案如果是yes的話,那就說明目前的深度學習模型的泛化能力是慘得要命,因為對於任意一個圖片我都可以非常容易攻擊網路使得將其分錯,那麼對抗樣本是無窮無盡也,在此意義下當今號稱各種超越human performance的XXXNet瞬間奔潰!

    我們想來想去,這個答案應該是no才會合理一些。因為對抗樣本 x + epsilon 是依賴於某個分類器 f 的,在時間上是後於真實的自然數據樣本產生的,也就是自然界中這樣的對抗樣本出現的幾率是非常小的,這樣的classifier-dependent的樣本 x + epsilon(f) 在真實數據分布 p_{data}(x) 上的測度為0. 似乎make sense?
  2. 既然對抗樣本不屬於數據真實分布,那於是又引發問題:為什麼我們human eye不會卻不會將對抗樣本分錯呢?也就是說我們人眼是很穩定的分類器,由此可推斷宣稱的深度學習能模仿人類識別樣本純屬無稽之談。人類的視覺系統如此穩定的緣由發人深思。識別機制絕對不同於當前的神經網路,也許人腦的神經網路的結構不同於當前的深度學習的一些模型. Google最近有一篇投稿ICLR的工作使用了reinforcement learning來強行搜索對於對抗樣本相對穩定的結構,使用了500塊GPU搜索,估計也只有類似google的公司敢這麼做,也有實力這麼做,下圖是他們搜索出來的一些最優結構,似乎沒看出什麼規律。

可想而知,這樣的搜索耗能是極高的,而想想人腦何曾進行過如此高耗能的計算? 於是我們腦洞大開:也許是人類經過多少年的進化得到了相對穩定的結構,但問題又來了,是這些結構的信息encoding到DNA當中進行了恰當的基因表達得到的大腦穩定結構,還是人類在後天進行學習訓練得到的?似乎當前的神經科學也對此近乎一無所知。

再進一步問:人眼存在對抗性樣本么?推想應該是有的,因為我們會有視覺幻覺,比如不同條紋狀的背景下同樣大小的物體會在我們嚴重變的一大一小。那麼,比我們人眼還要更穩定的系統存在么?也許是oracle,也許是God,哈哈,扯遠了,已經上升到哲學問題了,我相信這些問題終究會解決。但目前的科研還尚未可知。

Moreover, we know nothing about brain or AI. 也許正是我們的這些無知,才讓我們更有餘地去探索這些由此次AI大潮引發的各種深刻的科學問題。而不是像整天各種媒體宣傳的那樣,各種突破各種號外,標題黨遍地,變得有些「娛樂AI」的感覺。今天討論的對抗樣本讓深度學習脆弱不堪就是個典型例子,說明通向真正我們期望的AI還有些路要走。

推薦閱讀:

L1範數與L2範數的區別
打造機器學習的基礎架構平台

TAG:人工智能 | 深度学习DeepLearning | 机器学习 |