只需修改一個像素,讓神經網路連貓都認不出
夏乙 編譯整理
量子位 出品 | 公眾號 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方法不會像基於梯度的方法那麼容易陷入局部最小值,也不需要關於攻擊目標系統的太多信息,因此生成的對抗樣本適用於多種神經網路。
![](https://pic.pimg.tw/zzuyanan/1488615166-1259157397.png)
![](https://pic.pimg.tw/zzuyanan/1482887990-2595557020.jpg)
※AlphaGo Zero代碼遲遲不開源,TF等不及自己推了一個
TAG:量子位 |