背景
On the one hand, compared with white-box
attacks, attackers under black-box setting cannot calculate
gradients of the target model [
黑盒攻击无法像白盒攻击一样直接计算目标模型的梯度,因此不太可能通过gradient-based or optimization-based攻击来得到拥有小噪声强度的对抗样本
the only way to obtain information
from the black-box target model is to query, which is usu-
ally expensive and limited in number
对于黑盒攻击,只能通过查询目标模型,得到输出(往往是硬标签),这种查询成本高。在有限查询的条件下,要压缩已经得到的对抗样本的噪声难度大
而现有的黑盒攻击存在问题
First, existing transfer-based attacks tend to overfit the substitute
model
transfer-based攻击在替代模型上往往过拟合(对抗样本(包含其步长、迭代次数)只在替代模型上有效),目标模型无法错误分类此对抗样本
Second, existing transfer-based attacks have difficulties to further compress the noises after generating adversarial examples
transfer-based攻击生成对抗样本后,想继续压缩噪声幅度是比较困难的
Third, query efficiency of existing decision-based attacks is low.
现存的decision-based攻击的查询有效性低
Fourth, the attack process of existing decision-based
attacks is prone to fall into local optimum
decision-based攻击趋向于局部最优解
本文要解决的问题
- 解决transfer-based攻击的过拟合
- 降低对抗样本的噪声幅度
- 实现全局最优
创新点
提出一个高效查询的黑盒对抗攻击的框架
包含4个模块:PAM, TAM, NCM, STM
- PAM 是黑盒攻击框架的第一步,它的目的是适应性地设置攻击参数和策略,以减轻基于转移的攻击对替代模型的过拟合问题。在现有的基于转移的攻击方法中,通常存在多个参数,例如迭代攻击的步长、迭代次数等。对于基于转移的攻击来说,能够成功欺骗替代模型的参数集可能无法使目标模型误分类。因此,需要PAM来根据目标模型的反馈,为每个原始图像调整攻击参数。
- TAM 的任务是在替代模型上生成中间对抗样本。它以原始图像作为起点,根据 PAM 提供的参数,使用基于梯度或基于优化的攻击方法来构建对抗噪声,并输出能够使目标模型误分类的对抗样本。
- NCM 的目的是进一步压缩对抗样本的噪声幅度。它以 TAM 输出的中间对抗样本为起点,通过在原始图像邻域内进行采样来寻找更接近原始图像的对抗样本。这个过程旨在减少对抗样本与原始样本之间的差异,同时保持对抗样本能够误导目标模型的能力。
- STM 用于在噪声压缩过程中调整对抗样本的更新。在 NCM 中的基于决策的攻击会在对抗样本的邻域内搜索,并使用新采样的对抗样本来查询目标模型。STM 根据新采样的对抗样本是否被目标模型误分类以及它是否更接近原始图像,来决定如何为 NCM 的下一次采样更新对抗样本。
在此框架上提出CISA攻击方法
方案
CISA的方案:
- 参数调整模块(Parameter Adjustment Module, PAM):
- 在PAM中,首先向原始图像添加高斯噪声。
高斯步长调整方法通过添加高斯噪声到原始图像并逐步调整噪声的方差来动态确定步长。初始时,步长设置得较小,然后逐渐增加,直到生成的对抗样本能够使目标模型误分类。通过这种方式,可以为每张图像找到合适的步长,从而在保持对抗样本噪声大小最小化的同时,减少所需的查询次数。
- 通过不断增加高斯分布的方差,找到接近原始图像的对抗样本。
- 根据找到的对抗样本与原始图像之间的距离来设置步长。
- 在PAM中,首先向原始图像添加高斯噪声。
- 替代攻击模块(Transfer Attack Module, TAM):
- 在TAM中,沿着替代模型损失函数的梯度上升和下降方向进行双向迭代。
首先,通过更新原始图像沿梯度下降方向的一步,当替代模型上的交叉熵损失低于前一步时,继续沿梯度下降方向更新。然后,当目标模型上的损失仍在下降时,转向梯度上升方向进行更新
- TAM 接受原始图像,并根据 PAM 设置的参数,开始构建对抗样本
- 从梯度上升和下降的两个方向添加噪声,为NCM提供中间对抗样本 x0
- 在TAM中,沿着替代模型损失函数的梯度上升和下降方向进行双向迭代。
- 噪声压缩模块(Noise Compression Module, NCM):
- Customized Sampling:
- 方差调整:根据当前噪声的方差,自适应调整采样分布的方差,以引导新样本远离当前噪声的方向。
- 均值调整:根据历史失败样本的方向,调整采样分布的均值,避免新样本落入失败区域。
- 步长调整:根据成功查询次数,动态调整步长,平衡噪声压缩速率和查询成功率。
- 放松状态转换函数(Transition Function Relaxation):NCM模块根据噪声压缩的单调性,放松状态转换函数,以避免攻击陷入局部最优。这意味着NCM模块在接受新样本作为噪声更新起点时,不仅考虑新样本的噪声大小,还考虑其与原始图像的距离,以及是否能够扩大搜索空间。
- Customized Sampling:
- 状态转换模块(State Transition Module, STM):
- 在STM中,放宽了(Transition Function Relaxation)基于决策的攻击的接受条件,以减少搜索过程陷入局部最优解的概率。
- Transition Function Relaxation决定了何时接受或拒绝一个新的对抗样本,避免搜索过程陷入局部最优解
实验
实验设置
ImageNet, Tiny-Imagenet, and CIFAR-10.The image shapes of three datasets are 224 × 224 × 3, 64 ×64 × 3 and 32 × 32 × 3
- ImageNet:包含1000个类别,从中选择了10000张验证集图像,每个类别10张图像。
- Tiny-Imagenet:包含200个类别,选择了2000张图像,每个类别10张图像。
- CIFAR-10:包含10个类别,作者测试了测试集中的所有10000张图像。
性能比较
比较8种不同结构的神经网络模型,包括resnet-18、resnet-101、inception v3、inception-resnet v2、nasnet、densenet-161、vgg19-bn和senet-154。
关于table1-5的解释
- 参数调整模块(PAM):
PAM分为三种情况:‘N/A’表示不包含参数调整模块,‘Binary Search’表示通过二分搜索找到最小化噪声大小的步长,‘GSA’表示论文中提出的高斯步长调整方法。 - 转移攻击模块(TAM):
TAM包括9种情况,除了7种现有的基于转移的攻击方法,还包括‘Random’(不使用基于转移的攻击,而是直接向原始图像添加高斯噪声直到目标模型误分类)。 - 噪声压缩模块(NCM)和状态转换模块(STM):
NCM包括自定义采样(CS)和直接输出未经噪声压缩的基于转移的攻击生成的对抗样本(Vanilla)。
STM包括三种情况:‘N/A’(不进行噪声压缩时不适用状态转换),‘Greedy Search’(仅在目标模型误分类且噪声幅度更小的情况下更新采样起点),‘Relax’(提出的转换函数放松策略)。
每个表格的第一行代表使用的目標模型和替代模型。
表格的每一行代表一种基于转移的攻击及其关联的PAM。
表格的每一列代表一种噪声压缩方法及其关联的STM策略。
为了公平比较,所有方法报告的噪声大小是在目标模型上对每个图像进行1000次查询后的结果。
实验结果复现
公开在 g i t h u b github github上的代码,无法直接运行,缺少相关模型的预训练权重
只进行了 r e s n e t 18 resnet18 resnet18(target_model), i n c e p t i o n _ r e s n e t _ v 2 inception\_resnet\_v2 inception_resnet_v2(sub_model)在tiny-imagenet-200的实验
实验遇到的问题
- 代码给出的 r e s n e t 18 resnet18 resnet18、 i n c e p t i o n _ r e s n e t _ v 2 inception\_resnet\_v2 inception_resnet_v2模型,无法正常分类:一开始使用源代码给出的这几个模型进行训练,结果训练后得到的准确率很低。所以, r e s n e t 18 resnet18 resnet18使用了torchvision.models中的resnet18, i n c e p t i o n _ r e s n e t _ v 2 inception\_resnet\_v2 inception_resnet_v2使用的是 g i t h u b github github上的开源代码。
- 因为没使用仓库给的模型的代码,所以在 f o o l b o x foolbox foolbox和添加高斯噪声方面的代码遇到了大量的数据类型不一致的问题。解决方法:一点一点地debug进行转换
- foolbox一直不生产对抗样本:因为1中提到的,一开始进行训练的时候没有注意到模型的准确率,使用仓库给的模型,一直无法进行正确识别,自然不会生成对抗样本
实验设置
根据项目中的 r e a d m e readme readme文件配置环境
执行python cisa_main.py --serial_num 001 --init_attack_num 10 --sub_model_num 3 --target_model_num 1 --total_capacity 10 --all_access 1000 --dataset TinyImagenet --big_size 64 --center_size 40 --IFGSM_iterations 20 --IFGSM_binary_search 25
得到结果