只需修改一個像素,讓神經網路連貓都認不出 | 論文+代碼

夏乙 編譯整理

量子位 出品 | 公眾號 QbitAI

想騙過神經網路,讓它認錯圖像,需要對圖像做多少修改?

一個像素就夠了。

一項來自日本的研究表明,改動圖片上的一個像素,就能讓神經網路認錯圖,甚至還可以誘導它返回特定的結果。

研究由日本九州大學的Jiawei Su、Danilo Vasconcellos Vargas和Kouichi Sakurai三人共同完成,他們不僅寫論文詳細介紹了這項改一個像素就騙過神經網路的神技,還開源了相應的Keras實現。這項技術被稱為「一像素攻擊」(One Pixel Attack)。

可惜了VGG一世英名,連貓都認錯

在CIFAR-10和ImageNet兩個數據集上,一像素攻擊分別實現了68.36%和41.22%的成功率。

一個像素,怎麼攻擊神經網路?

實驗在CIFAR-10和ImageNet數據集上進行,我們以CIFAR-10為例來做一下說明。CIFAR-10是一個圖像識別數據集,包含60000張32×32像素的RGB彩色圖片,共10類。神經網路在這個數據集上的任務,就是正確預測圖片所屬的分類。

而一像素攻擊的目標,是通過從圖片上選定一個像素,更改它的顏色來製造對抗性圖像,改變神經網路輸出的類別標籤,降低對正確類別的置信度,提高對其他某個類別的置信度。也就是說,讓神經網路將它分到錯誤的類別。

任務看似簡單,但是,32×32=1024個像素,該選哪一個?改成什麼顏色?

這些研究人員用了一種名叫差分進化(Differential Evolution,簡稱DE)的進化演算法(Evolutionary Algorithm)。

具體來說,首先要通過隨機修改像素來生成400個對抗樣本,輸入到神經網路中;然後,將這些修改像素的位置和顏色結合起來,再生成400個對抗樣本,輸入到神經網路中;接下來,如果某個新樣本與父代相比,降低了神經網路對正確類別的置信度,就將用這個樣本上修改的像素替換父代,作為目前已知的最優解。

之後就要多次重複以上三步,然後在最後一次迭代時,選出將神經網路對正確類別的置信度降得最低的對抗樣本。

如果有其他類別的置信度高於正確類別最終的置信度,我們就成功了。最後選出的樣本就是我們所要的結果。

在對全卷積神經網路(AllConv)、Network

in Network(NiN)、VGG16、和AlexNet的測試中,這種方法取得的成功率如下表所示:

表中的targeted attack,指的是在攻擊中讓神經網路將圖像誤認為特定某個類別

幾位研究人員還把這種方法用在了ImageNet上,將圖像大小統一為227×227,大約是CIFAR-10圖像尺寸的50倍。

在ImageNet上的測試表明,這種欺騙神經網路的方法也適用於解析度比較高的圖像。

據論文介紹,DE方法不會像基於梯度的方法那麼容易陷入局部最小值,也不需要關於攻擊目標系統的太多信息,因此生成的對抗樣本適用於多種神經網路。

相關鏈接

論文 One pixel attack for fooling deep neural networks

arxiv.org/pdf/1710.0886

Keras實現 github.com/Hyperparticl

開頭提到的迷幻貼 Adversarial Patch

arxiv.org/pdf/1712.0966

歡迎大家關注我們的專欄:量子位 - 知乎專欄

誠摯招聘

量子位正在招募編輯/記者,工作地點在北京中關村。期待有才氣、有熱情的同學加入我們!相關細節,請在量子位公眾號(QbitAI)對話界面,回復「招聘」兩個字。

量子位 QbitAI · 頭條號簽約作者

?? ? 追蹤AI技術和產品新動態


推薦閱讀:

世界類腦AI巨系統研究綜述,論ET大腦是不是全球首個類腦架構AI
【豬臉識別哪家強?】智能養豬成千萬級別飼養規模殺手鐧
緒論:計算機時代,電力專業該如何轉型
人工智慧驅動一站式全場景交互,華住會引領酒店業未來
論人類圍棋水平的極限

TAG:人工智慧 | 神經網路 | 深度學習DeepLearning |