AI 到底是怎么「想」的?
本文作者:kurffzhou,騰訊 TEG 安全工程師
最近,Nature發表了一篇關于深度學習系統被欺騙的新聞文章,該文指出了對抗樣本存在的廣泛性和深度學習的脆弱性,以及幾種可能的解決方法。安全平臺部基礎研究組自2017年來在對抗樣本的生成及防守方法進行了深入研究,在這里團隊通過在攻擊方面的經驗,分享我們對于防守對抗樣本的一些思考,歡迎共同討論。
深度學習在現實生活中的應用越來越廣,然而越來越多的例子表明,深度學習系統很容易受到對抗樣本的欺騙。那么,AI到底是怎么“想”的?為什么這么容易被騙?
要回答這個問題,我們首先看圖片來做個小實驗——
圖1圖1左圖:原始圖片(圖片來源:ImageNet數據集)
圖1中圖:局部塊保持像素的布局不變,但是整體圖像的全局布局改變
圖1右圖:局部塊的像素的布局變化,但是整體圖像的全局布局不變
對于這三幅圖,神經網絡會“認為”圖1中圖和圖1右圖哪張圖片更與圖1左圖是一致的呢?
毫無疑問,對于人的直覺來說,相對圖1中圖而言,圖1右圖更與圖1左圖一致,因為人類普遍傾向于對整體圖像的布局進行識別。
然而我們通過統計實驗發現,利用神經網絡進行預測,圖1中圖的預測結果更加傾向于與圖1左圖的預測結果保持一致。可見,人與機器對圖片的識別結果存在較大差異。
為了深入解釋這種差異,下文首先對深度學習常用的模型進行簡單介紹,再對深度學習模型所學習得到的特征進行可視化來解釋深度學習模型在圖像方面的優勢,并通過相關實驗研究深度學習模型到底在“想”什么、學習了什么。
1、深度學習常用模型以及特征可視化
深度學習常用模型之一的Alexnet模型:Alexnet模型通過多層卷積以及max-pooling操作,最后通過全連層得到最后預測結果,通過計算損失L來刻畫網絡預測結果與我們人工標注類別的差異大小,然后通過計算損失對可學習參數的梯度,通過梯度下降的方式來更新網絡的權重,直到損失L下降到網絡預測的結果與我們人工標注差異很小時,即神經網絡通過對輸入圖像的層層卷積、max-pooling、全連等操作獲得了正確的結果。
圖2:Alex網絡結構(圖片來源:文獻9)我們首先對多種不同類型的網絡(AlexNet, ResNet等)的底層卷積核進行可視化,我們發現這些底層特征存在一定的共性:這些網絡底層卷積核都在提取梯度、顏色等局部模式,對應圖像中邊和線等,如圖3所示。
圖3:神經網絡底層卷積核可視化(圖片來源:鏈接11)為了可視化高層特征,我們通過梯度上升優化目標函數的方式來直觀認識高層特征所對應的直觀圖像。我們首先將圖像初始化為0,并通過計算如圖4中損失函數對圖像的梯度,并不斷修改圖像像素就會得到圖5中的可視化結果。這些圖表示,要使得最終某類的分數最大,那么所對應的輸入圖像應該是什么樣子,從圖5中可以直觀看出大概所屬類別洗衣機、鍵盤、狐貍、鵝、鴕鳥以及轎車。如果我們換一種考慮特征多面性的可視化方法,就可以得到一個更加清晰的可視化圖,從中可以更加清晰、直觀地看出所屬類別不同層次的特征,如圖6所示。
圖4:神經網絡高層特征的使用方法(圖片來源:鏈接11)圖5:高層特征可視化結果(圖片來源:文獻12)圖6:不同層次特征可視化結果(圖片來源:文獻13)
2、深度學習模型到底學習了什么?
那么,深度學習模型到底都在學習什么呢?
首先輸入一張正常圖像,我們通過放大的方式來可視化神經網絡看到的模式:首先將原始圖片通過神經網絡進行計算,得到當前圖片的輸出結果,然后用梯度上升的方式最大化該輸出結果,利用如圖4中所使用的方法,最后得到如圖8所示的結果。
圖7:自然風景圖片(圖片來源:鏈接14)從圖中可以看出,神經網絡對輸入圖像中的顏色和紋理進行了語義類別的放大,并產生對應的語義理解。例如,在山的區域,神經網絡進行了建筑以及動物的解釋,在天空區域有某些海洋生物的解釋。但是由于這幅輸入圖像的這種解釋所產生的特征響應并沒有達到一定的程度,因此不會影響最后網絡的識別,即神經網絡不會把山那塊區域識別成動物等。
圖8:DeepDream結果(圖片來源:鏈接14)從上述可視化的結果可以看出,神經網絡是對紋理顏色等進行了語義的理解,但并沒有顯著對全局的形狀等信息進行了理解,最近一系列工作都表明了這點,例如Geirhos, Robert等人指出,在ImageNet預訓練的網絡對紋理存在偏向,他們利用實驗做了說明:如下圖所示:
圖9:紋理實驗(圖片來源:文獻2)第一幅沒有任何全局形狀的信息,神經網絡預測該幅圖像為大象,對于第二幅圖像預測為貓,對于第三幅圖像,神經網絡依然預測為大象,盡管人可能會識別出是一只貓,因此從這個對比實驗中可以看出,神經網絡更傾向于對紋理等信息進行了語義理解。
本文開頭的小實驗也進一步驗證了這個假設:局部紋理的打亂,能夠顯著破壞神經網絡的高層語義理解,但是全局結構的打亂并不能顯著破壞神經網絡的語義理解。
3、對抗樣本生成
那么,一般是如何生成對抗樣本呢?主要有兩種方法:
1)基于梯度的方法:一般采用類似可視化的方法,只不過優化的目標不同,通過梯度更新的方式使得損失變大,并將生成紋理擾動疊加到原始圖像上得到對抗樣本。比較常用的方法有FGSM,BIM,基于momentum的方法,基于所有圖片的梯度進行平滑的方法UAP,以及我們為了解決黑盒遷移性提出的TAP方法,這類方法速度較慢,一般通過多次迭代得到對抗樣本,這類方法簡單易擴展到其他任務。
2)基于神經網絡的對抗樣本生成方法:采用神經網絡直接輸出對抗樣本,例如,AdvGAN、ATN等方法。這類方法的速度較快,但由于神經網絡參數固定后生成的對抗樣本會存在不豐富的問題。
4、如何避免“被騙”?
如Nature新聞中所說,不停的加入對抗樣本訓練能夠獲得對對抗樣本的魯棒性嗎?我們給出答案是NO。對于對抗訓練生成的模型,我們論文中的方法已經實驗證明無法扛住低頻擾動的對抗樣本,文獻3通過大量的實驗也已證明,NIPS 2017對抗樣本挑戰賽中所使用的防守方法都無法防住包含低頻擾動的對抗樣本。
此外,底層圖像去噪這種方法也是見效甚微。底層圖像去噪只能防止高頻的噪聲的對抗樣本,對于低頻的噪聲的對抗樣本也無法完全抵抗。
通過在攻擊方面的經驗,團隊對于對抗樣本的防守方法有以下思考:
1)對特征值進行截斷限制
對神經網絡里使用truncated relu這類激活函數,對特征值進行截斷處理,防止因為對抗樣本造成的特征突變太大,影響網絡最終預測結果。
2)設計模型更加關注圖像整體結構,而不是紋理特征獲得更強的魯棒性
如Nature新聞中指出的,DNN和符號AI的結合,加入結構化的規則來融合整體的結構信息。
安全平臺部公共平臺中心基礎研究組在對抗樣本方面進行了深入的研究,并在計算機視覺頂級會議之一的ECCV 2018上發表對抗樣本生成的論文,在NIPS 2017對抗樣本挑戰賽、極棒上海邀請賽等國內外大賽中均取得優異成績。歡迎各位對對抗樣本生成以及防守感興趣的同學與我們交流。
參考文獻:
1、Zhou, Wen, et al. "Transferable adversarial perturbations." Proceedings of the European Conference on Computer Vision (ECCV). 2018.
2、Geirhos, Robert, et al. "ImageNet-trained CNNs are biased towards texture; increasing shape bias improves accuracy and robustness." arXiv preprint arXiv:1811.12231 (2018).
3、Sharma, Yash, Gavin Weiguang Ding, and Marcus Brubaker. "On the Effectiveness of Low Frequency Perturbations." arXiv preprint arXiv:1903.00073 (2019).
4、https://www.nature.com/articles/d41586-019-03013-5
5、Krizhevsky, A., Sutskever, I., Hinton, G.E.: Imagenet classification with deep con- volutional neural networks. In: Advances in neural information processing systems. (2012) 1097–1105
6、Carlini, N., Wagner, D.: Towards evaluating the robustness of neural networks. arXiv preprint arXiv:1608.04644
7、Dong, Y., Liao, F., Pang, T., Su, H., Zhu, J., Hu, X., Li, J.: Boosting adversar- ial attacks with momentum. In: The IEEE Conference on Computer Vision and Pattern Recognition (CVPR). (June 2018)
8、Shumeet Baluja and Ian Fis- cher. Adversarial transformation networks: Learn- ing to generate adversarial examples. arXiv preprint arXiv:1703.09387, 2017
9、Krizhevsky A, Sutskever I, Hinton G E. Imagenet classification with deep convolutional neural networks[C]//Advances in neural information processing systems. 2012: 1097-1105.
10、http://www.image-net.org
11、http://cs231n.stanford.edu
12、Simonyan K, Vedaldi A, Zisserman A. Deep inside convolutional networks: Visualising image classification models and saliency maps[J]. arXiv preprint arXiv:1312.6034, 2013.
13、Nguyen A, Yosinski J, Clune J. Multifaceted feature visualization: Uncovering the different types of features learned by each neuron in deep neural networks[J]. arXiv preprint arXiv:1602.03616, 2016.
14、https://ai.googleblog.com/2015/06/inceptionism-going-deeper-into-neural.html
文中鏈接若打不開,可下方跳轉到知乎查看收藏:
總結
以上是生活随笔為你收集整理的AI 到底是怎么「想」的?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 腾讯运维技术专家集结,揭秘高效智能运维
- 下一篇: Techo 大会:AI 会替代 DBA