AdvBox是一款支持PaddlePaddle、Caffe2、Keras以及TensorFlow的針對AI模型生成對抗樣本的工具包。對抗樣本是深度學習領域的一個重要問題,比如在圖像上疊加肉眼難以識別的修改,就可以欺騙主流的深度學習圖像模型,產生分類錯誤,指鹿爲馬,或者無中生有。這些問題對於特定領域(比如無人車、人臉識別)會產生嚴重的後果,尤爲重要。百度安全實驗室研發了AdvBox,它能夠爲安全工程師研究模型的安全性提供極大的便利,免去重複造輪子的精力與時間消耗。AdvBox可以高效地使用最新的生成方法構造對抗樣本數據集用於對抗樣本的特徵統計、攻擊全新的AI應用,加固業務AI模型,爲模型安全性研究和AI應用提供重要的支持。AdvBox今天發佈0.3版本,支持常見的黑盒攻擊算法以及防禦算法,新增對Keras平臺的支持,項目地址爲:

  https://github.com/baidu/AdvBox

  對抗樣本簡介

  對抗樣本(AdversarialExample Attack)是機器學習模型的一個有趣現象,攻擊者通過在源數據上增加人類難以通過感官辨識到的細微改變,但是卻可以讓機器學習模型接受並做出錯誤的分類決定。一個典型的場景就是圖像分類模型的對抗樣本,通過在圖片上疊加精心構造的變化量,在肉眼難以察覺的情況下,讓分類模型產生誤判。開發者可以輕鬆基於AdvBox對經典的人臉識別模型進行黑/白盒攻擊,把比爾蓋茨識別爲喬丹。

  

  What’s New

  

  

  支持黑盒攻擊算法

  

  對抗樣本按照攻擊需要的條件和方式可以區分爲白盒攻擊、黑盒攻擊和物理世界攻擊,其中白盒攻擊需要對模型結構深入瞭解,知道模型的結構和各層的參數,可以計算梯度。

  

  黑盒攻擊完全把模型當做一個黑盒,根據一定的算法,不斷根據輸出的反饋調整輸入數據。黑盒攻擊相對白盒攻擊,攻擊難度更大。

  

  AdvBox從0.3版本開始支持黑盒攻擊算法,目前已經支持的列表如下:

  Single Pixel Attack

  Local Search Attack

  

  支持防禦算法

  

  安全攻防通常都是相輔相成,黑產使用AI的速度已經大大超出我們的想象,目前公開的案件中,已經出現了多起使用AI技術進行網絡攻擊的案例,比如使用圖像識別模型破解圖形驗證碼,使用智能客服技術進行自動化網絡欺詐。在對抗樣本領域亦是如此,AdvBox新增了通用加固算法,方便開發者快速加固AI模型,目前已經支持的列表如下:

  Feature Fqueezing

  Spatial Smoothing

  Label Smoothing

  Gaussian Augmentation

  Adversarial Training

  

  支持Keras

  

  Keras是一個高層神經網絡API,由純Python編寫而成並基於Tensorflow、Theano以及CNTK後端。相對於其他深度學習平臺,完成相同的功能,Keras的語法更加簡潔,開發效率更高。爲了進一步降低使用門檻,AdvBox從0.3版本開始支持Keras平臺。

  以使用Keras自帶的ResNet50模型進行白盒攻擊爲例,設置爲預測模式,加載測試圖片。

  #設置爲測試模式

  keras.backend.set_learning_phase(0)

  model = ResNet50(weights=modulename)

  img = image.load_img(imagename, target_size=(224, 224))

  original_image = image.img_to_array(img)imagedata = np.expand_dims(original_image, axis=0)

  對比生成的對抗樣本和原始圖像的差別。

  adversary_image=np.copy(adversary.adversarial_example) #強制類型轉換 之前是float 現在要轉換成uint8 #BGR -> RGB adversary_image=adversary_image[:,:,::-1] adversary_image = np.array(adversary_image).reshape([224,224,3]) original_image=np.array(original_image).reshape([224, 224, 3]) show_images_diff(original_image,adversary_image)

  實際運行代碼,原始圖像和對抗樣本的差別如下圖所示。

  

  新增使用案例

  

  爲了進一步降低學習成本,AdvBox提供大量的學習教程。

  示例1:白盒攻擊基於MNIST數據集的CNN模型

  示例2:白盒攻擊基於CIFAR10數據集的ResNet模型

  示例3:白盒攻擊caffe下基於MNIST數據集的LeNet模型

  示例4:黑盒攻擊基於MNIST數據集的CNN模型

  示例5:使用FeatureFqueezing加固基於MNIST數據集的CNN模型

  示例6:使用GaussianAugmentation加固基於MNIST數據集的CNN模型

  結語

  AdvBox爲研究者研究AI模型的安全性提供極大的便利,免去重複造輪子的精力與時間消耗,可以高效地使用最新的生成方法構造對抗樣本數據集用於對抗樣本的特徵統計、攻擊全新的AI應用,加固業務AI模型,爲模型安全性研究和應用提供重要的支持。AdvBox從0.3版本開始支持Keras平臺,支持常見的黑盒攻擊算法以及防禦算法,進一步降低了使用門檻,助力AI安全。

  專欄

查看原文 >>
相關文章