对抗训练
分类模型:对已有图片训练模型并分类
生成模型:分类模型的反向过程生成一张图片, 从一个类别向量反向生成一张图片
对抗样本
对图片通过算法增加一些噪声,变成新的图片,新的图片人眼无法分辨出变化,但是机器能分辨出来而且还会判错类别。
目前一些对抗样本生成算法:
FGSM、FGMT:基于攻击者设置的对抗目标函数,利用梯度来优化原数据样本feature的值。
JSMA:基于模型输入输出之间的雅可比矩阵(Jacobian)来决定对输出影响最大的输入feature,进而改变这些feature来生成对抗样本。
DeepFool: 目的是寻找可以使分类器产生误判的最小扰动。简单理解就是点到分界面的各个最小距离。
开源项目
cleverhans
Tensorflow下的子项目,完成了FGSM、FGMT、deepfool、CW2、JSMA等对抗样本攻击算法,提供tensorflow,keras,pytorch接口支持,可加载预训练模型。
https://github.com/tensorflow/cleverhans.git
Foolbox
用来产生对抗样本的python工具箱,支持Pytorch、TensorFlow、Keras
https://github.com/bethgelab/foolbox.git
AdvBox
百度提供的AI模型安全工具箱,可产生对抗样本
https://github.com/baidu/AdvBox.git
adversarial-robustness-toolbox
IBM提供的对抗训练和对抗样本生成工具包
https://github.com/IBM/adversarial-robustness-toolbox.git
cleverhans-imagenet
在cleverhans 基础上加入经典的图片分类算法,如vgg16, vgg19, googlenet, resnet50, resnet152, inceptionv3
https://github.com/vaisakh-shaj/cleverhans-imagenet.git
来源:oschina
链接:https://my.oschina.net/u/4129643/blog/3047202