8.2.3 高斯数据增强
8.2.3 高斯数据增强
高斯数据增强(gaussian data augmentation)最早由zantedeschi等人在论文《efficient defenses against adversarial attacks》中提出。高斯数据增强的原理非常简单,虽然对抗训练落地非常方便,但是问题也显而易见,就是难以穷尽所有的对抗样本,始终还是处于被动挨打的地位。那么是否有种方法可以尽量多地穷尽对抗样本呢?高斯数据增强算法认为,绝大多数的对抗样本相当于在原始图像上叠加了噪声,理想情况下可以用高斯噪声模拟这种噪声。高斯数据增强的流程如图8-22所示,在模型的训练环节中,在原始数据的基础上叠加高斯噪声,然后进行监督学习,这样训练出来的模型就是加固后的模型。
图8-22 高斯数据增强的基础过程
advbox上实现了高斯数据增强,并提供了演示示例。
https://github.com/baidu/advbox/tree/master/tutorials
首先需要生成攻击用的模型,advbox的测试模型是一个识别mnist的cnn模型,模型保存在mnist目录下。
python mnist_model.py
接着运行gaussianaugmentation加固的模型,模型保存在mnist-gad目录下。
python mnist_model_gaussian_augmentation_defence.py
最后运行攻击代码,攻击gaussianaugmentation加固后的cnn模型。
python mnist_tutorial_defences_gaussian_augmentation.py
运行结果如下,首先攻击没有加固的cnn模型,攻击成功率为54.6%。
[test_dataset]: fooling_count=282, total_count=500, fooling_rate=0.564000
fgsm attack done without any defence
攻击加固后的cnn模型,攻击成功率下降至36.2%。
[test_dataset]: fooling_count=181, total_count=500, fooling_rate=0.362000
fgsm attack done with gaussianaugmentationdefence
高斯数据增强(gaussian data augmentation)最早由zantedeschi等人在论文《efficient defenses against adversarial attacks》中提出。高斯数据增强的原理非常简单,虽然对抗训练落地非常方便,但是问题也显而易见,就是难以穷尽所有的对抗样本,始终还是处于被动挨打的地位。那么是否有种方法可以尽量多地穷尽对抗样本呢?高斯数据增强算法认为,绝大多数的对抗样本相当于在原始图像上叠加了噪声,理想情况下可以用高斯噪声模拟这种噪声。高斯数据增强的流程如图8-22所示,在模型的训练环节中,在原始数据的基础上叠加高斯噪声,然后进行监督学习,这样训练出来的模型就是加固后的模型。
图8-22 高斯数据增强的基础过程
advbox上实现了高斯数据增强,并提供了演示示例。
https://github.com/baidu/advbox/tree/master/tutorials
首先需要生成攻击用的模型,advbox的测试模型是一个识别mnist的cnn模型,模型保存在mnist目录下。
python mnist_model.py
接着运行gaussianaugmentation加固的模型,模型保存在mnist-gad目录下。
python mnist_model_gaussian_augmentation_defence.py
最后运行攻击代码,攻击gaussianaugmentation加固后的cnn模型。
python mnist_tutorial_defences_gaussian_augmentation.py
运行结果如下,首先攻击没有加固的cnn模型,攻击成功率为54.6%。
[test_dataset]: fooling_count=282, total_count=500, fooling_rate=0.564000
fgsm attack done without any defence
攻击加固后的cnn模型,攻击成功率下降至36.2%。
[test_dataset]: fooling_count=181, total_count=500, fooling_rate=0.362000
fgsm attack done with gaussianaugmentationdefence