AdvBox 0.2发布|助力AI时代 支持Caffe2和TensorFlow平台
摘要
AdvBox是一款支持PaddlePaddle、Caffe2以及TensorFlow的针对深度学习模型生成对抗样本的工具包。对抗样本是深度学习领域的一个重要问题,比如在图像上叠加肉眼难以识别的修改,就可以欺骗主流的深度学习图像模型,产生分类错误,指鹿为马,或者无中生有。这些问题对于特定领域(比如无人车、人脸识别)会产生严重的后果,尤为重要。百度安全实验室研发了AdvBox,它能够为安全工程师研究模型的安全性提供极大的便利,免去重复造轮子的精力与时间消耗。AdvBox可以高效地使用最新的生成方法构造对抗样本数据集用于对抗样本的特征统计、攻击全新的AI应用,加固业务AI模型,为模型安全性研究和应用提供重要的支持。之前AdvBox作为PaddlePaddle开源项目的一个模块,获得了广泛好评。这次因为项目发展的需要,特此作为独立项目开源。为了帮助更多开发者在更大数据集上更快速生成对抗样本,AdvBox从0.2版本开始支持Caffe2和TensorFlow平台,并支持多GPU并行计算;为了进一步降低学习成本,还提供了基于常见的CIFAR10和MNIST数据集和经典图像识别模型ResNet和Vgg16的攻击案例,项目地址为:
https://github.com/baidu/AdvBox
对抗样本简介
对抗样本(Adversarial Example Attack)是机器学习模型的一个有趣现象,攻击者通过在源数据上增加人类难以通过感官辨识到的细微改变,但是却可以让机器学习模型接受并做出错误的分类决定。一个典型的场景就是图像分类模型的对抗样本,通过在图片上叠加精心构造的变化量,在肉眼难以察觉的情况下,让分类模型产生误判。开发者可以轻松基于AdvBox对经典的图像识别模型InceptionV3进行攻击,在猪的图片上叠加了微小的修改,肉眼可以轻松识别为猪,但是InceptionV3却会识别为烤面包机。
无独有偶,百度安全实验室的研究员基于AdvBox针对中文智能音箱进行了Hidden Voice Command攻击。Hidden Voice Command由国外研究者提出,指的是构造一段人耳难以识别的声音,但是却可以让智能音箱等具有语音识别功能的设备执行命令。国外研究者针对英文智能音箱成功的进行了攻击,百度安全实验室的研究员联合工信部泰尔实验室基于AdvBox针对常见的中文智能音箱进行了攻击,相对英文语音识别系统,中文语音识别系统需要处理更加复杂的中文,对其攻击难度更大。使用AdvBox构造的攻击样本,通过常见的PC设备即可播放,实际攻击效果为,播放人耳难以识别的声音,却可以让智能音箱唤醒并执行转账、手机充值等操作。
对抗样本的基本原理其实很简单,以经典的二分类问题为例,机器学习模型通过在样本上训练,学习出一个分割平面,在分割平面的一侧的点都被识别为类别一,在分割平面的另外一侧的点都被识别为类别二。
生成对抗样本时,我们通过某种算法,针对指定的样本计算出一个变化量,该样本经过修改后,从人类的感觉无法辨识,但是却可以让该样本跨越分割平面,导致机器学习模型的判定结果改变。
如何高效的生成对抗样本,且让人类感官难以察觉,正是对抗样本生成算法研究领域的热点。
What's New
AdvBox正式发布后,增加了许多新功能和特性。
对Caffe以及TensorFlow平台的支持
AdvBox除了原生支持PaddlePaddle平台,还增加了对Caffe2以及TensorFlow平台训练的模型的支持。
如何将Caffe平台的模型转换成PaddlePaddle格式
提供了转换工具caffe2paddle,使用方法如下:
https://github.com/PaddlePaddle/models/tree/develop/image_classification/caffe2paddle
如何将TensorFlow平台的模型转换成PaddlePaddle格式
提供了转换工具tf2paddle,使用方法如下:
https://github.com/PaddlePaddle/models/tree/develop/image_classification/tf2paddle
多GPU支持
针对单独一个图片或者语音生成对抗样本时,并不需要使用GPU资源,但是大量原始数据批量生成对抗样本时,CPU甚至单GPU卡都需要花费大量时间。AdvBox针对这一情况,提供了对多GPU的支持,目前基于nccl2框架,nccl2支持的NVIDIA GPU均可以使用。
更加丰富的使用案例
新增了针对CIFAR10数据集的ResNet和Vgg16模型的攻击案例,攻击算法包括以下几种:
• Deepfool
• JSMA
• FGSM
• BIM
结语
AdvBox为研究者研究模型安全性提供极大的便利,免去重复造轮子的精力与时间消耗,可以高效地使用最新的生成方法构造对抗样本数据集用于对抗样本的特征统计、攻击全新的AI应用,加固业务AI模型,为模型安全性研究和应用提供重要的支持。AdvBox从0.2版本开始支持Caffe2和TensorFlow平台,并支持多GPU并行计算,帮助更多开发者,帮助更多开发者在更大数据集上更快速生成对抗样本,助力AI安全。
参考文献:
Intriguing properties of neural networks,C. Szegedy et al., arxiv 2014
Explaining and Harnessing AdversarialExamples, I. Goodfellow et al., ICLR 2015
Adversarial Examples In ThePhysical World, A. Kurakin et al., ICLR workshop 2017
Boosting Adversarial Attacks withMomentum, Yinpeng Dong et al., arxiv 2018
The Limitations of Deep Learning inAdversarial Settings, N. Papernot et al., ESSP 2016
DeepFool: a simple and accurate methodto fool deep neural networks, S. Moosavi-Dezfooli et al., CVPR 2016
Foolbox: A Python toolbox to benchmarkthe robustness of machine learning models, Jonas Rauber et al., arxiv 2018
CleverHans:An adversarial example library for constructing attacks, building defenses, andbenchmarking both
Threat of Adversarial Attacks on DeepLearning in Computer Vision: A Survey, Naveed Akhtar, Ajmal Mian, arxiv2018
https://medium.com/@ageitgey/machine-learning-is-fun-part-8-how-to-intentionally-trick-neural-networks-b55da32b7196
*点击阅读原文进入AdvBox项目主页