玩玩白盒攻击
梯度下降法
使用pytorch 生成对抗样本
一些准备知识
使用深度学习在进行图像分类或者对象检测时候,首先需要对图像做数据预处理,最常见的对图像预处理方法有两种,正常白化处理又叫图像标准化处理,另外一种方法叫做归一化处理,下面就详细的说一下这两种处理方法。

图像标准化是将数据通过去均值实现中心化的处理,根据凸优化理论与数据概率分布相关知识,数据中心化符合数据分布规律,更容易取得训练之后的泛化效果, 数据标准化是数据预处理数据预处理的常见方法之一
归一化 反归一化
参考 https://blog.csdn.net/qq_38929105/article/details/106733564
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| def preprocess(PIL_img, image_shape): process = torchvision.transforms.Compose([ torchvision.transforms.Resize(image_shape), torchvision.transforms.ToTensor(), torchvision.transforms.Normalize(mean=rgb_mean, std=rgb_std)]) return process(PIL_img).unsqueeze(dim = 0)
def postprocess(img_tensor): inv_normalize = torchvision.transforms.Normalize( mean= -rgb_mean / rgb_std, std= 1/rgb_std) to_PIL_image = torchvision.transforms.ToPILImage() return to_PIL_image(inv_normalize(img_tensor[0].cpu()).clamp(0, 1))
|
简单的梯度下降
简单的梯度下降实践 见 notebook
FGM/FGSM
最求微小的修改 通过激活函数的作用 对分类结果产生最大化的变化
如果我们的变化量与梯度的变化方向完全一致,那么将会对分类结果产生较大的变化
Adversarial Example Generation — PyTorch Tutorials 1.12.1+cu102 documentation
听听
SFFAI 77—对抗样本专题《李茂森:目标对抗样本的迁移性》_哔哩哔哩_bilibili
【论文速读】对抗样本的可转移性 - 知乎 (zhihu.com)