【论文阅读】ICCV 2023 计算和数据高效后门攻击
文章目录
- 一.论文信息
- 二.论文内容
- 1.摘要
- 2.引言
- 3.主要图表
- 4.结论
一.论文信息
论文题目: Computation and Data Efficient Backdoor Attacks(计算和数据高效后门攻击)
论文来源: 2023-ICCV(CCF-A)
论文团队: 南洋理工大学&清华大学&中关村实验室

二.论文内容
1.摘要
针对深度神经网络(DNN)模型的后门攻击已被广泛研究。针对不同的领域和范式提出了各种攻击技术,如图像、点云、自然语言处理、迁移学习等。在DNN模型中嵌入后门最常用的方法是毒害训练数据。他们通常从良性训练集中随机选择样本进行投毒,而不考虑每个样本对后门有效性的不同贡献,使得攻击不太理想。
最近的一项研究[40]提出使用 遗忘分数 来 衡量每个中毒样本的重要性 ,然后过滤掉冗余数据以进行有效的后门训练。然而,这种方法是经验设计的,没有理论证明。它也非常耗时,因为它需要经过几个训练阶段来进行数据选择。为了解决这些限制,我们提出了一种新的基于置信度的评分方法,该方法可以基于距离后验有效地测量每个中毒样本的贡献。我们进一步引入贪婪搜索算法,以更快地找到信息最丰富的后门注入样本。对二维图像和三维点云分类任务的实验评估表明,我们的方法可以达到相当的性能,甚至超过基于遗忘分数的搜索方法,而只需要对标准训练过程进行几个额外的epoch计算。我们的代码可以在https://github.com/WU-YU-TONG/ computational_efficient_backdoor找到。
2.引言
深度神经网络(dnn)安全威胁的多样性[1,23]阻碍了其在许多计算机视觉(CV)任务中的商业化进程。最严重和最广为人知的威胁之一是后门攻击[23]。对手可以在训练期间向目标模型注入一个与唯一触发器相对应的隐形后门[43,28,25,17,5,10,13]。在推理过程中,妥协模型(Compromised model)在良性样本上表现良好,但在具有触发器的恶意样本上可能出现错误行为。
实现后门攻击最常见的方法是数据中毒,攻击者通过破坏某些训练样本来嵌入后门。成功后门攻击的一个关键标准是中毒样本的比例。从对抗的角度来看,我们希望在保持相同攻击成功率(ASR)的情况下投毒尽可能少的样本,原因有两个:(1)较小的投毒率可以增强攻击的可行性。攻击者只需要破坏一小部分训练数据,因此攻击要求放宽了。(2)中毒样本较少的后门攻击将更加隐蔽。许多工作通过调查训练样本提出了后门检测解决方案[7,15,29,35,38,34,18]。较小的投毒率会显著增加检测难度,降低防御效能。
大多数后门攻击随机选择固定比例的训练样本进行投毒,该比例是启发式确定的[12,16,21,41,24]。这种策略不是最优的,因为它忽略了不同样本对后门贡献的区别。 为了克服这一局限性,最近的一项工作[40]提出了一种新的方法——遗忘评分来优化中毒样本的选择过程。以模型训练过程中每个样本遗忘事件的频率作为得分,表示每个样本对后门注入的重要性。然后,在N个完整的训练周期内,通过过滤和更新策略(FUS)过滤出得分较高的样本;与随机选择策略相比,遗忘分数可以有效降低中毒率25 ~ 50%,同时达到相近的ASR。验证了不同样本对攻击性能的不同影响。
遗忘分数可以提高数据效率,但以计算效率低为代价。 具体来说,它根据经验计算每个样本在训练期间被遗忘的次数,以定位对中毒贡献更大的关键样本。遗忘分数的计算需要多个完整的训练周期([40]中的ImageNet-10的N = 10)来减少中毒样本的数量,这引入了大量的工作,对于攻击大规模数据集是不切实际的。因此,一个有趣的问题出现了:是否可能在后门中毒中同时实现数据效率和计算效率,即毫不费力和精确地识别关键中毒样本?
本文提出了一种新的攻击方法来验证上述问题。我们的贡献是双重的。提出了表示距离(RD)分数,一种新的触发无关和结构无关的度量,以识别对后门攻击成功更关键的中毒样本。具体来说,我们的目标是定位那些与目标类有较大距离的中毒样本,因为它们将在训练期间对重塑决策边界的形成做出更多贡献(后门嵌入)。通过采用该RD分数,我们可以过滤掉对后门感染不敏感的中毒样本,以降低中毒率。其次,RD分数可以在模型训练的早期阶段(即训练开始后的几个epoch)使用贪婪搜索方案来选择中毒样本。与遗忘分数相比,这显著减少了计算量。
我们在5个最先进的模型和4个常见的数据集上进行了广泛的实验,用于2D图像和3D点云分类任务。评估表明,我们的解决方案可以有效地减少毒化样本的数量,从而成功地进行后门攻击。最重要的是,与基于遗忘分数的方法相比,我们的解决方案可以使用得分模型找出重要的有毒样本,只需要几次训练,与基于遗忘分数的方法相比,这是一个很小的成本。因为后者需要经过整个培训过程才能达到同样的目标。
3.主要图表

图1. 对我们洞察力的直观解释。左图显示的是一个干净的模型,没有任何后门。在中间的图中,当样本被下毒时,越靠近决策边界的样本对后门的影响越小。在右图中,当选择样本进行投毒时,远离决策边界的样本可能会给模型带来更显著的变化。

图2. 我们方法论的工作流程。

图3. 干净和有毒样本的例子。

表1. 搜索的预算。

图4. 三种方法在CIFAR-10上的ASR。我们对基于分数的选择策略重复实验3次,对随机选择策略重复实验10次。我们设置α为0.3,N为10。RD评分模型的epochs为6,遗忘分数模型的epochs设置为50。

图5.三种方法在ImageNet-10上的ASR。我们对基于分数的选择策略和随机选择策略分别重复实验3次和5次。我们设置α为0.3,N为10。RD评分模型的epochs为6,遗忘分数模型的epochs设置为30。

图6. 三种方法在三维点云分类任务上的ASR。评分法重复实验3次,随机法重复实验5次。在对两种评分方法进行贪婪搜索时,我们将迭代时间N减少到7。对于ScanObject,我们将训练epoch设置为75,学习率设置为0.01。

表2. 训练过程中超参数黑箱设置下的ASR(%)。利用CIFAR-10数据集在ResNet18模型上进行了实验。我们训练了6个epoch的评分模型,并将迭代次数和过滤比率分别设置为10。Adam中的其他参数与其PyTorch实现保持一致。对于后门模型,我们将其训练设置固定为使用SGD作为优化器,0.05作为学习率,128作为批大小。

图7. 各种模型和任务的ASR和Accuracy。所有的ASR都是使用我们在实验中使用的最高中毒比的RD分数获得的,即CIFAR10的0.0017,ImageNet-10的0.0095,ModelNet40的0.01,ScanObject的0.09。在上述比率下,后门的ASR趋于稳定。

图8. 贪心搜索中α值变化时,不同毒比下RD评分的ASR。每个实验我们重复三次。在所有的实验中,我们将N设置为10,将评分模型的epochs设置为6。
图9. 贪婪搜索中迭代时间N变化时,不同毒比下RD评分的ASR。每个实验我们重复三次。在所有的实验中,我们将评分模型的epochs设置为6。

图10. 评分模型的训练时间对两种方法的影响。所有实验都在CIFAR-10, ResNet18上使用0.001的中毒比进行。

图11. 遗忘分数和RD分数的ASR。我们使用ResNet18作为受害者模型,并将评分模型的架构改为MobileNet和VGG16。
4.结论
在本文中,我们提出了一个新的分数,通过评估给定中毒样本对目标类的L2范数来衡量中毒样本对后门学习过程的贡献。通过过滤掉得分较低的样本,我们的方法获得了比随机选择策略更好的后门ASR。我们在各种数据集和模型架构上进行了广泛的实验,以显示与先前工作相比,我们的方法的通用性和可移植性。
对于未来的工作,我们认为虽然RD分数具有很高的适应不同任务的能力,但其在某些场景中的有效性尚未得到充分的研究。在未来,我们希望将我们的研究兴趣转向两个方向。首先,对于像目标检测这样的高级任务[33],评分机制应该处理以下独特的挑战:(1)多任务,如目标定位和分类,如何通过同时采取这些方面来减少有毒预算是一个关键问题;(2)多实例,如一个样本可能包含多个对象,在设计评分方法时,如何衡量给定中毒样本的重要性使问题变得更加复杂。其次,对自然语言生成等非分类任务的中毒效率研究较少[9]。搜索方法需要满足多种损失函数。因此,调整类似的方法来选择重要的毒物样本可能是具有挑战性的。
相关文章:
【论文阅读】ICCV 2023 计算和数据高效后门攻击
文章目录 一.论文信息二.论文内容1.摘要2.引言3.主要图表4.结论 一.论文信息 论文题目: Computation and Data Efficient Backdoor Attacks(计算和数据高效后门攻击) 论文来源: 2023-ICCV(CCF-A) 论文团…...
JavaAPI常用类03
目录 java.lang.Math Math类 代码 运行 Random类 代码 运行 Date类/Calendar类/ SimpleDateFormat类 Date类 代码 运行 Calendar类 代码 运行 SimpleDateFormat类 代码一 运行 常用的转换符 代码二 运行 java.math BigInteger 代码 运行 BigDecimal …...
SpringBoot/Java中OCR实现,集成Tess4J实现图片文字识别
场景 Tesseract Tesseract是一个开源的光学字符识别(OCR)引擎,它可以将图像中的文字转换为计算机可读的文本。 支持多种语言和书面语言,并且可以在命令行中执行。它是一个流行的开源OCR工具,可以在许多不同的操作系…...
【深度学习目标检测】十九、基于深度学习的芒果计数分割系统-含数据集、GUI和源码(python,yolov8)
使用深度学习算法检测芒果具有显著的优势和应用价值。以下是几个主要原因: 特征学习的能力:深度学习,特别是卷积神经网络(CNN),能够从大量的芒果图像中自动学习和提取特征。这些特征可能是传统方法难以手动…...
骑砍战团MOD开发(48)-多人联机模式开发环境搭建
一.多人联机模式网络拓扑图 <1.局域网网络拓扑图 <2.互联网网络拓扑图 二.多人联机模式配置 MOD目录下module.ini修改配置项 has_multiplayer 1 has_single_player 1 三.服务端创建 引擎内置presentation页面: prsnt_game_multiplayer_admin_panel start_multi…...
Java+SpringBoot+Vue+MySQL:美食推荐系统的技术革新
✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…...
【服务发现--ingress】
1、ingress介绍 Ingress 提供从集群外部到集群内服务的 HTTP 和 HTTPS 路由。 流量路由由 Ingress 资源所定义的规则来控制。 Ingress 是对集群中服务的外部访问进行管理的 API 对象,典型的访问方式是 HTTP。 Ingress 可以提供负载均衡、SSL 终结和基于名称的虚拟…...
Yolov8有效涨点:YOLOv8-AM,添加多种注意力模块提高检测精度,含代码,超详细
前言 2023 年,Ultralytics 推出了最新版本的 YOLO 模型。注意力机制是提高模型性能最热门的方法之一。 本次介绍的是YOLOv8-AM,它将注意力机制融入到原始的YOLOv8架构中。具体来说,我们分别采用四个注意力模块:卷积块注意力模块…...
苹果分拣检测YOLOV8NANO
苹果分拣,可以检测成熟、切片、损坏、不成熟四种类型,YOLOV8NANO,训练得到PT模型,然后转换成ONNX,OPENCV的DNN调用,支持C,PYTHON 苹果分拣检测YOLOV8NANO,检测四种类型苹果...
使用 Verilog 做一个可编程数字延迟定时器 LS7211-7212
今天的项目是在 Verilog HDL 中实现可编程数字延迟定时器。完整呈现了延迟定时器的 Verilog 代码。 所实现的数字延迟定时器是 CMOS IC LS7212,用于生成可编程延迟。延迟定时器的规格可以在这里轻松找到。基本上,延迟定时器有 4 种操作模式:…...
戏说c语言文章汇总
c语言的起源GNU C和标准C第一篇: hello c!第二篇: 为什么需要编译第三篇: 当你运行./a.out时,发生了什么?第四篇: 简单的加法器第五篇: 两个正数相加竟然变成了负数!第六篇: 西西弗斯推石头(循环)第七篇: 九九乘法表(双循环)第八篇: 如果上天…...
面试redis篇-12Redis集群方案-分片集群
原理 主从和哨兵可以解决高可用、高并发读的问题。但是依然有两个问题没有解决: 海量数据存储问题高并发写的问题 使用分片集群可以解决上述问题,分片集群特征: 集群中有多个master,每个master保存不同数据每个master都可以有…...
【Java EE初阶二十三】servlet的简单理解
1. 初识servlet Servlet 是一个比较古老的编写网站的方式,早起Java 编写网站,主要使用 Servlet 的方式,后来 Java 中产生了一个Spring(一套框架),Spring 又是针对 Servlet 进行了进一步封装,从而让我们编写网站变的更简单了;Sprin…...
c++ http操作接口
很简单的使用libcurl来操作http与服务器来通讯,包含http与https,对外只开放 #include "request.h" #include "response.h" #include "url.h" 三个头文件,简单易用,使用的实例如下: vo…...
oracle官网下载早期jdk版本
Java Downloads | Oracle JDK Builds from Oracle 以上压缩版,以下安装版 Java Downloads | Oracle 该链接往下拉能看到jdk8和jdk11的安装版 -- end...
Python爬虫实战:图片爬取与保存
引言: 在本文中,我们将学习如何使用Python创建一个简单的图片爬虫。 我们将利用requests库来发送HTTP请求,BeautifulSoup库来解析HTML页面,以及os和shutil库来下载和保存图片。通过这个教程,你将学会如何爬取网…...
CMS垃圾回收器
CMS垃圾回收 CMS GC的官方名称为“Mostly Concurrenct Mark and Sweep Garbage Collector”(最大-并发-标记-清除-垃圾收集器)。 作用范围: 老年代 算法: 并发标记清除算法。 启用参数:-XX:UseConMarkSweepGC 默认回收…...
【力扣白嫖日记】184.部门工资最高的员工
前言 练习sql语句,所有题目来自于力扣(https://leetcode.cn/problemset/database/)的免费数据库练习题。 今日题目: 184.部门工资最高的员工 表:Employee 列名类型idintnamevarcharsalaryvarchardepartmentIdint …...
JAVA讲解算法-排序算法-选择排序算法-02
一、定义 选择排序法是一种不稳定的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素&a…...
【初始RabbitMQ】高级发布确认的实现
在生产环境中由于一些不明原因,导致 rabbitmq 重启,在 RabbitMQ 重启期间生产者消息投递失败, 导致消息丢失,需要手动处理和恢复。于是,我们开始思考,如何才能进行 RabbitMQ 的消息可靠投递呢? …...
Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误
HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误,它们的含义、原因和解决方法都有显著区别。以下是详细对比: 1. HTTP 406 (Not Acceptable) 含义: 客户端请求的内容类型与服务器支持的内容类型不匹…...
CTF show Web 红包题第六弹
提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了 先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...
day52 ResNet18 CBAM
在深度学习的旅程中,我们不断探索如何提升模型的性能。今天,我将分享我在 ResNet18 模型中插入 CBAM(Convolutional Block Attention Module)模块,并采用分阶段微调策略的实践过程。通过这个过程,我不仅提升…...
系统设计 --- MongoDB亿级数据查询优化策略
系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log,共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题,不能使用ELK只能使用…...
Python实现prophet 理论及参数优化
文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候,写过一篇简单实现,后期随着对该模型的深入研究,本次记录涉及到prophet 的公式以及参数调优,从公式可以更直观…...
Nginx server_name 配置说明
Nginx 是一个高性能的反向代理和负载均衡服务器,其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机(Virtual Host)。 1. 简介 Nginx 使用 server_name 指令来确定…...
【python异步多线程】异步多线程爬虫代码示例
claude生成的python多线程、异步代码示例,模拟20个网页的爬取,每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程:允许程序同时执行多个任务,提高IO密集型任务(如网络请求)的效率…...
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南 在数字化营销时代,邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天,我们将深入解析邮件打开率、网站可用性、页面参与时…...
并发编程 - go版
1.并发编程基础概念 进程和线程 A. 进程是程序在操作系统中的一次执行过程,系统进行资源分配和调度的一个独立单位。B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。C.一个进程可以创建和撤销多个线程;同一个进程中…...
【从零开始学习JVM | 第四篇】类加载器和双亲委派机制(高频面试题)
前言: 双亲委派机制对于面试这块来说非常重要,在实际开发中也是经常遇见需要打破双亲委派的需求,今天我们一起来探索一下什么是双亲委派机制,在此之前我们先介绍一下类的加载器。 目录 编辑 前言: 类加载器 1. …...
