黑盒攻击中迁移攻击和通用对抗扰动的讲解及实战(附源码)

简介: 黑盒攻击中迁移攻击和通用对抗扰动的讲解及实战(附源码)

需要源码请点赞关注收藏后评论区留言私信~~~

黑盒攻击

人们发现结构类似的神经网络模型在面对相同的对抗样本攻击时,会有类似的表现。也就是说,基于类似已知模型,采用白盒攻击来产生对抗样本,可能对未知模型也有攻击作用,称之为对抗样本的迁移能力(transferable)。

下表中左侧列表表示生成对抗样本的模型,最上面行表示被迁移攻击的模型,表格中的数据表示被迁移攻击模型对生成模型基于优化的方法产生的迁移攻击样本的识别率

从左上角到右下角对角线的数据为0,表明针对本模型的白盒攻击能够在本模型上做到全部攻击成功,当生成模型和迁移攻击模型不同时,对抗样本被识别率大约为百分之十到百分之四十

基于集成的对抗样本生成方法

基本思想是用多个白盒模型共同产生具有高迁移性的对抗样本。 假设有k个白盒模型,它们的输出层采用softmax激活函数,输出向量记为J_1,J_2,…,J_k。原始图像记为x,它的真实标签记为y。记对抗样本为x^∗,定向攻击的标签为y^∗。 基于集成的方法的优化目标为:

优化目标是尽量减少模型输出与定向攻击标签之间和对抗样本与原始样本之间的差异,常量λ用来调节两个差异的重要性。

通用对抗扰动

通用对抗扰动是可以用来以较大概率成功攻击某模型的所有样本的扰动。 记分类模型为k,对d维实数空间中服从分布u的样本x,分类模型的预测标签为k ̂(x)。

d维实数空间中的通用对抗扰动v是满足以下两个条件的扰动:

1)‖v‖_p≤ϵ。 ‖v‖_p是v的p范数(范数的定义见式4‑17),此条件即要求扰动v的大小要限制在常量ϵ以内。

2)P_x~u(k ̂(x+v)≠k ̂(x))≥1−δ。此条件要求添加扰动后的样本的误判率要大于指定的值1−δ。

生成通用对抗扰动的算法先从所有样本中抽样出一批分类均衡的有代表性的测试样本。将通用对抗扰动v设为0初值。然后,从第一个测试样本开始迭代直至最后一个测试样本:如果当前测试样本x_i添加扰动v后不能使模型判断错误,则计算x_i+v到最近分类超平面的向量∆v_i,并更新v←v+∆v_i。∆v_i常通过DeepFool算法得到。

对于上述条件1),在每次更新v后,都要检测p范数是否超出限制ϵ。如果超出了,则按范数的含义进行收缩。比如,对于2范数,则按把2范数收缩到1的比例缩小v的每一维。

对于上述条件2),在每一轮全部测试样本迭代完后,将扰动v添加到所有测试样本上进行预测,并计算成功率,如果达不到1−δ,则继续新一轮迭代。

UPA通用对抗样本下结果如下图

可见成功率还是不低的

部分代码如下

# 时间原因,只取小部分样本进行实验
X_val1 = X_val[:100]
delta = 0.2 # 1-delta为对抗成功率
max_iter = 10 # 最多训练轮数
xi = 10 # 扰动的幅度
fooling_rate = 0.0
n_samples = np.shape(X_val1)[0]
v = 0 # 通用对抗扰动
itr = 0 # 迭代次数
while itr < max_iter:
    np.random.shuffle(X_val1) # 打乱顺序
    # 遍历所有测试样本,计算通用对抗扰动v
    for k in range(n_samples):
        print('序号:', k, '开始调整扰动...')
        cur_img = X_val1[k].reshape(1, 28, 28, 1)
        cur_label = model(cur_img)
        v_label = model(cur_img + v)
        if np.argmax(cur_label) == np.argmax(v_label): # 如果当前扰动不起作用。。。
            succ, adv, r_tot, epochs, label1 = deepfool(cur_img+v, v_label, model, 600) # 找到到最近分类超平面的向量r_tot
            #print('itr:', itr, 'k:', k, 'succ', succ, 'epochs:', epochs)
            if succ: 
                v = v + r_tot
                v = proj_l2(v, xi) # 限制v的大小
    # 验证通用对抗扰动v的效果
    X_perturbed = X_val1 + v # 所有样本加上扰动
    est_labels_pert = np.argmax( model(X_perturbed), axis=1 ) # 扰动后的标签
    est_labels_orig = np.argmax( model(X_val1), axis=1 ) # 扰动前的标签
    fooling_rate = float(np.sum(est_labels_pert != est_labels_orig) / float(n_samples)) # 计算成功率
    if fooling_rate < 1 - delta:
        print('轮次:', itr, '成功率 = ', fooling_rate)
    else:
        print('完成。成功率 = ', fooling_rate)
        break;
    itr += 1

创作不易 觉得有帮助请点赞关注收藏~~~

相关文章
|
JavaScript Java 应用服务中间件
使用 Docker 高效搭建本地开发环境(详细教程)
使用 Docker 高效搭建本地开发环境(详细教程)
16717 0
使用 Docker 高效搭建本地开发环境(详细教程)
|
7天前
|
数据采集 自动驾驶 算法
道路设施目标检测数据集(约5000张已标注)|YOLO训练与智能交通应用数据集
本数据集含约5000张真实道路图像,精准标注交通标志、热塑标线、金属护栏、减速带4类设施,采用YOLO标准格式(归一化bbox),已划分train/val/test集。覆盖多场景、多光照、多尺度,支持YOLOv5/v8等直接训练,适用于智能巡检、自动驾驶感知与交通管理。
205 11
道路设施目标检测数据集(约5000张已标注)|YOLO训练与智能交通应用数据集
|
算法 机器人 Linux
开源项目推荐:3D点云处理软件CloudCompare,基于Qt和OpenGL
开源项目推荐:3D点云处理软件CloudCompare,基于Qt和OpenGL
6800 0
开源项目推荐:3D点云处理软件CloudCompare,基于Qt和OpenGL
|
机器学习/深度学习 人工智能 文字识别
ultralytics YOLO11 全新发布!(原理介绍+代码详见+结构框图)
本文详细介绍YOLO11,包括其全新特性、代码实现及结构框图,并提供如何使用NEU-DET数据集进行训练的指南。YOLO11在前代基础上引入了新功能和改进,如C3k2、C2PSA模块和更轻量级的分类检测头,显著提升了模型的性能和灵活性。文中还对比了YOLO11与YOLOv8的区别,并展示了训练过程和结果的可视化
24624 0
|
安全 网络安全
网络漏洞
指硬件、软件或策略上的缺陷,这种缺陷导致非法用户 未经授权而获得访问系统的权限或提高其访问权限。有了这种访问权限,非法用户就可以为所欲为,从而造成对网络安全的威胁。 区别于后门。后门:是软硬件制造者为了进行非授权访问而在程序中故意设置的万能访问口令,这些口令无论是被攻破,还是只掌握在制造者手中,都对使用者的系统安全构成严重的威胁。 漏洞与后门是不同的,漏洞是难以预知的,后门则是人为故意设置的。
|
数据可视化 Python
Python绘制定制3D曲面图
8月更文挑战第19天
451 14
|
网络协议 Linux C语言
Intel HDSLB 高性能四层负载均衡器 — 基本原理和部署配置
本篇主要介绍了 Intel HDSLB 的基本运行原理和部署配置的方式,希望能够帮助读者们顺利的把 HDSLB-DPVS 项目 “玩” 起来。
1102 9
Intel HDSLB 高性能四层负载均衡器 — 基本原理和部署配置
|
机器学习/深度学习 并行计算 PyTorch
使用PyTorch Profiler进行模型性能分析,改善并加速PyTorch训练
加速机器学习模型训练是工程师的关键需求。PyTorch Profiler提供了一种分析工具,用于测量CPU和CUDA时间,以及内存使用情况。通过在训练代码中嵌入分析器并使用tensorboard查看结果,工程师可以识别性能瓶颈。Profiler的`record_function`功能允许为特定操作命名,便于跟踪。优化策略包括使用FlashAttention或FSDP减少内存使用,以及通过torch.compile提升速度。监控CUDA内核执行和内存分配,尤其是避免频繁的cudaMalloc,能有效提升GPU效率。内存历史记录分析有助于检测内存泄漏和优化批处理大小。
1966 1
|
存储 机器学习/深度学习 测试技术
模型量化技术综述:揭示大型语言模型压缩的前沿技术
在这篇文章中,我将在语言建模的背景下介绍量化,并逐一探讨各个概念,探索各种方法论、用例以及量化背后的原理。
813 0
模型量化技术综述:揭示大型语言模型压缩的前沿技术
|
计算机视觉
图像处理之常见二值化方法汇总
图像处理之常见二值化方法汇总
810 0

热门文章

最新文章

下一篇
开通oss服务