當前位置:
首頁 > 知識 > 深度神經網路中的對抗樣本與學習

深度神經網路中的對抗樣本與學習

深度神經網路中的對抗樣本與學習



AI 研習社按:本文作者向志洪,原文載於作者個人博客,獲授權。

概述


最近大半年,人工智慧領域成為科技領域提到的最多的名詞之一。在kdnuggets此前發布的文章(Deep Learning』s Deep Flaws)』s Deep Flaws中,深度學習大神Yoshua Bengio和他的博士生、Google科學家Ian Goodfellow在評論中與作者就深度學習對抗樣本(Adversarial Examples)展開了熱烈的討論,kdnuggets編輯邀請Ian Goodfellow撰文詳解他的觀點以及他在這方面的工作。那麼什麼是對抗樣本,對抗樣本又是如何生成的呢?


對抗樣本


對抗樣本(Adversarial Examples)的概念最早是Christian Szegedy 等人在ICLR2014發表的論文中提出來的,即在數據集中通過故意添加細微的干擾所形成輸入樣本,受干擾之後的輸入導致模型以高置信度給出了一個錯誤的輸出。

在他們的論文中,他們發現包括卷積神經網路(Convolutional Neural Network, CNN)在內的深度學習模型對於對抗樣本都具有極高的脆弱性。他們的研究提到,很多情況下,在訓練集的不同子集上訓練得到的具有不同結構的模型都會對相同的對抗樣本實現誤分,這意味著對抗樣本成為了訓練演算法的一個盲點。二將這一矛頭直指深度學習,似乎要為深度學習熱潮降一降溫。Anh Nguyen等人在CVPR2015上發表的論文中,面對一些人類完全無法識別的樣本(論文中稱為 Fooling Examples),深度學習模型居然會以高置信度將它們進行分類,例如將雜訊識別為獅子。


對於上面的漏洞,研究提出,一方面促使人們更深入思考機器和人的視覺的真正差異所在,一方面,加上深度模型本身具有的不可解釋性缺陷,也讓一些人開始認為深度學習不是deep learning, 而是deep flaw.對深度學習來說,這多少是不公平的指責,因為 kdnuggets上的一篇文章(Deep Learning』s Deep Flaws)指出,深度學習對於對抗樣本的脆弱性並不是深度學習所獨有的,事實上,這在很多機器學習模型中都普遍存在(Box 大人不就說嗎,all models are wrong, but some are useful),而深度學習反而可能是目前為止對對抗訓練最有抵抗性的技術。如下圖,原始圖像以60%的置信度判斷為「熊貓」,但是加入了微小的干擾,在人眼完全看不出差別的情況下卻以99%的執行度歸為了長臂猿。

深度神經網路中的對抗樣本與學習



對抗樣本的根本問題

那麼,導致深度模型對反抗樣本力不從心的真實原因有哪些呢?一般我們知道,可能是模型過擬合導致泛化能力不夠,泛化能力不夠可能是由於模型均化不足或者正則不足,然而,通過更多模型均化和加入更多雜訊訓練等方式來應對對抗樣本的企圖均告失敗。外一個猜測是模型的高度非線性,深度模型動輒千百萬的參數個數確實讓人有點不太舒服,但 Ian Goodfellow 在論文explaining and harnessing adversarial examples中,通過在一個線性模型中加入對抗干擾,發現只要線性模型的輸入擁有足夠的維度(事實上大部分情況下,模型輸入的維度都比較大,因為維度過小的輸入會導致模型的準確率過低,即欠擬合),線性模型也對對抗樣本表現出明顯的脆弱性,這駁斥了關於對抗樣本是因為模型的高度非線性的解釋。


事實上,該文指出,高維空間中的線性性就足以造成對抗樣本,深度模型對對抗樣本的無力最主要的還是由於其線性部分的存在。


如下圖,展示了線性設計造成的抵抗對抗擾動的模型之間的關係。

深度神經網路中的對抗樣本與學習


對抗樣本的利用


針對上面的問題,毫無疑問,對抗樣本帶來了對深度學習的質疑,但其實這也提供了一個修正深度模型的機會,因為我們可以反過來利用對抗樣本來提高模型的抗干擾能力,因此有了對抗訓練(adversarial training) 的概念。


隨著對對抗樣本研究的深入,可以利用對抗樣本生成對抗網路(GANs)。在 GANs 中,包含一個生成模型G和一個判別模型D,D要判別樣本是來自G還是真實數據集,而G的目標是生成能夠騙過D的對抗樣本,可以將G看做假幣生產者,而D就是警察,通過G和D的不斷交手,彼此的技能都會逐漸提高,最終使得G生產的假幣能夠以假亂真。


對抗樣本的防禦

Papernot等人表明蒸餾技術(使用概率分布作為目標訓練)也可以用於大大降低網路對抗擾動的脆弱性。對於MNIST數據集訓練的DNN,防禦性蒸餾將對抗樣本的成功率從95.89%降低到0.45%!針對CIFAR數據集而言,成功率由87.89%降至5.11%。事實上,防禦性蒸餾可以降低DNN對輸入擾動的靈敏度。


以下是MNIST和CIFAR的一些示例,顯示正當樣本和對抗樣本:

深度神經網路中的對抗樣本與學習



下面介紹防禦性蒸餾如何工作以及其原理。考慮一般的對抗框架,首先搞清楚工作方向是圍繞給定的輸入樣本,然後使用這些信息選擇輸入維度之間的擾動。

深度神經網路中的對抗樣本與學習



如果梯度方向陡峭,就會對小擾動產生很大的影響。為了防止這種擾動,必須通過網路更好地泛化訓練數據集以外的樣本來平滑訓練過程中學到的模型。DNN對對抗樣本的「魯棒性」與給定樣本鄰域相一致地分類輸入相關。

深度神經網路中的對抗樣本與學習



為了實現這種平滑,蒸餾防禦首先按照正常的方式訓練分類網路,然後用從第一個模型學到的概率向量訓練另外一個完全相同架構的新模型。

深度神經網路中的對抗樣本與學習



下圖展示蒸餾溫度如何影響模型對抗樣本的防禦能力。直觀上,溫度越高防禦越好。

深度神經網路中的對抗樣本與學習



防禦性蒸餾僅適用於基於能量概率分布的DNN模型,因此建立通用對抗樣本強大的機器學習模型的重要一步。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 唯物 的精彩文章:

如何用 TensorFlow 實現基於 LSTM 的文本分類
看了這篇再決定要不要學TensorFlow
什麼才算是真正的數據科學家?你算么?
深度學習之父的神經網路第三課!
看了這篇文章,了解深度卷積神經網路在目標檢測中的進展

TAG:唯物 |

您可能感興趣

深度學習和神經網路的七大顯著趨勢
神經網路圖靈機:深度學習中與內存進行交互的基本方法
深度學習神經網路方法獲改進
掌握神經網路,入門深度學習
深度學習和神經網路的6大發展趨勢,值得關注!
學界 | 牛津大學提出神經網路新訓練法:用低秩結構增強網路壓縮和對抗穩健性
AI的口述歷史:深度學習三巨頭講述神經網路復興史
數據挖掘乾貨總結-神經網路和深度學習
深度|生物神經網路基礎:從尖峰放電神經元談起
人工神經網路中的神經元
神經網路並不是生物神經網路的模擬
當深度學習遇到系統和網路安全
牛津大學提出神經網路新訓練法:用低秩結構增強網路壓縮和對抗穩健性
深度學習入門指南!六步構建深度神經網路
牛津大學神經網路新訓練法:低秩結構增強網路壓縮和對抗穩健性
會在精讀和泛讀中自由切換的神經網路
深度網路揭秘之深度網路背後的數學
機器學習—神經網路
影響堪比登月!谷歌等探索深度學習新理論藍圖,讓神經網路更深更窄
深度全解卷積神經網路