用一個像素攻陷神經網路
簡評:僅用一個像素就能讓神經網路蒙圈,產生對圖片錯誤的判斷。
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公司,說人工智慧應用該這麼做!