用一個像素攻陷神經網路

簡評:僅用一個像素就能讓神經網路蒙圈,產生對圖片錯誤的判斷。

One Pixel Attack

如果我們只改變一個像素點,能否讓深度神經網路把圖片錯誤分類?

相信我們,用一個像素點,足以實現對神經網路攻陷。

在很多情況下,我們甚至可以讓神經網路給出我們想要的任何答案。

以下項目是 Keras 重現和教程:One pixel attack for fooling deep neural networks

它是如何工作的

在這套攻擊中,我們使用了 Cifar10 dataset。數據集的任務是將 32X32 像素的圖片進行正確分類,分類池有十個選項(如鳥、鹿、卡車等)。這個黑盒(black-box)攻擊僅需要由神經網路輸出的概率標籤(每個分類的概率值)即可。我們通過選擇一個像素並且將其修改為某種顏色來生成偽分類。

通過使用被稱為差分進化(Differential Evolution,DE)的進化演算法,迭代出對抗圖像以試圖最小化神經網路分類的置信度。

  • 首先,生成幾個對抗樣本,隨機修改一個像素點,用神經網路運行圖像。
  • 接下來,將改變後的圖像和先前的像素位置和顏色結合在一起,從產生更多的對抗樣本,然後繼續通過神經網路運行這些樣本。如果上一步,有像素降低了神經網路的置信度,那就將它們替換為當前的 best know 解決方案。
  • 重複上述的步驟並進行幾次迭代;在最後一步返回對抗圖像,最大程度的降低神經網路的置信度。如果成功了,置信度會大大降低,以至於新的(不正確的)類別現在具有最大概率的可信度。

可以參考以下攻擊成功的示例:

示例攻擊過程詳解:Hyperparticle/one-pixel-attack-keras

Getting Started

如果你想要閱讀項目和代碼,可以看:View the tutorial notebook on GitHub.

要運行教程中的代碼,推薦使用適合運行 keras 專用 GPU(TensorFlow - GPU)。

需要 python 3.5+。

1.克隆倉庫(repository)

git clone https://github.com/Hyperparticle/one-pixel-attack-kerascd ./one-pixel-attack-keras

2.如果你還沒有安裝過 requirement.txt 中的 python 包,那就先安裝它

pip install -r ./requirements.txt

3.用 Jupyter 運行 iPython tutoriol notebook

jupyter notebook ./one-pixel-attack.ipynb

訓練和測試

運行 train.py 來訓練模型,在運行模型後,會自動將檢查點保存在 networks/models 目錄下。

舉個例子,用 200 個檢查點和 128 位元組的批處理來訓練 ResNet:

python train.py --model resnet --epochs 200 --batch_size 128

目前可用的模型:

  • lecun_net
  • pure_cnn
  • net_in_net
  • resnet
  • densenet
  • wide_resnet
  • capsnet

結果

運行幾次試驗後的初步結果:

對每個 100 個樣本的 1、2、3 個像素無差別攻擊

看起來攻擊成功率和本文闡述的還有一些差距,但是這主要是由於差異演化實施的低效率,這也是下一步我們要儘快解決的問題。

圖表中可以看出,CapsNet 對比其他神經網路,能更好的抵禦一個像素的攻擊,但是仍然也是很脆弱的。

里程碑

  • Cifar10 dataset(√)
  • Tutorial notebook(√)
  • Lecun Network, Network in Network, Residual Network, DenseNet models(√)
  • CapsNet (capsule network) model(√)
  • Configurable command-line interface(√)
  • Efficient differential evolution implementation
  • MNIST dataset
  • ImageNet dataset

原文:Hyperparticle/one-pixel-attack-keras


園長:對抗圖像隨機改變一個像素點,用神經網路運行;然後這個點和對抗圖樣再結合結合繼續用神經網路運行;如果有像素點讓神經網路的置信度降低,就將這個替換為當前最佳解決方案;重複迭代上述步驟,將使神經網路產生誤判。

更詳細過程請閱讀:Hyperparticle/one-pixel-attack-keras

極光日報,極光開發者旗下媒體。

每天導讀三篇英文技術文章。


推薦閱讀:

2018 年 4 個需要關注的人工智慧趨勢
谷歌的AI相冊「事故」:它把我的三張照片擬合成了一張恐怖片
集智課堂全新改版升級(含新課上線)
用PaddlePaddle調戲郵件詐騙犯(完結篇)
他研究了5000家AI公司,說人工智慧應用該這麼做!

TAG:神經網路 | 機器學習 | 人工智慧 |