当前位置: 首页 > news >正文

【论文阅读】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:美食推荐系统的技术革新

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…...

【服务发现--ingress】

1、ingress介绍 Ingress 提供从集群外部到集群内服务的 HTTP 和 HTTPS 路由。 流量路由由 Ingress 资源所定义的规则来控制。 Ingress 是对集群中服务的外部访问进行管理的 API 对象&#xff0c;典型的访问方式是 HTTP。 Ingress 可以提供负载均衡、SSL 终结和基于名称的虚拟…...

Yolov8有效涨点:YOLOv8-AM,添加多种注意力模块提高检测精度,含代码,超详细

前言 2023 年&#xff0c;Ultralytics 推出了最新版本的 YOLO 模型。注意力机制是提高模型性能最热门的方法之一。 本次介绍的是YOLOv8-AM&#xff0c;它将注意力机制融入到原始的YOLOv8架构中。具体来说&#xff0c;我们分别采用四个注意力模块&#xff1a;卷积块注意力模块…...

苹果分拣检测YOLOV8NANO

苹果分拣&#xff0c;可以检测成熟、切片、损坏、不成熟四种类型&#xff0c;YOLOV8NANO&#xff0c;训练得到PT模型&#xff0c;然后转换成ONNX&#xff0c;OPENCV的DNN调用&#xff0c;支持C,PYTHON 苹果分拣检测YOLOV8NANO&#xff0c;检测四种类型苹果...

使用 Verilog 做一个可编程数字延迟定时器 LS7211-7212

今天的项目是在 Verilog HDL 中实现可编程数字延迟定时器。完整呈现了延迟定时器的 Verilog 代码。 所实现的数字延迟定时器是 CMOS IC LS7212&#xff0c;用于生成可编程延迟。延迟定时器的规格可以在这里轻松找到。基本上&#xff0c;延迟定时器有 4 种操作模式&#xff1a;…...

戏说c语言文章汇总

c语言的起源GNU C和标准C第一篇: hello c!第二篇: 为什么需要编译第三篇: 当你运行./a.out时&#xff0c;发生了什么&#xff1f;第四篇: 简单的加法器第五篇: 两个正数相加竟然变成了负数&#xff01;第六篇: 西西弗斯推石头(循环)第七篇: 九九乘法表(双循环)第八篇: 如果上天…...

面试redis篇-12Redis集群方案-分片集群

原理 主从和哨兵可以解决高可用、高并发读的问题。但是依然有两个问题没有解决&#xff1a; 海量数据存储问题高并发写的问题 使用分片集群可以解决上述问题&#xff0c;分片集群特征&#xff1a; 集群中有多个master&#xff0c;每个master保存不同数据每个master都可以有…...

【Java EE初阶二十三】servlet的简单理解

1. 初识servlet Servlet 是一个比较古老的编写网站的方式&#xff0c;早起Java 编写网站,主要使用 Servlet 的方式&#xff0c;后来 Java 中产生了一个Spring(一套框架)&#xff0c;Spring 又是针对 Servlet 进行了进一步封装,从而让我们编写网站变的更简单了&#xff1b;Sprin…...

c++ http操作接口

很简单的使用libcurl来操作http与服务器来通讯&#xff0c;包含http与https&#xff0c;对外只开放 #include "request.h" #include "response.h" #include "url.h" 三个头文件&#xff0c;简单易用&#xff0c;使用的实例如下&#xff1a; vo…...

oracle官网下载早期jdk版本

Java Downloads | Oracle JDK Builds from Oracle 以上压缩版&#xff0c;以下安装版 Java Downloads | Oracle 该链接往下拉能看到jdk8和jdk11的安装版 -- end...

Python爬虫实战:图片爬取与保存

引言&#xff1a; 在本文中&#xff0c;我们将学习如何使用Python创建一个简单的图片爬虫。 我们将利用requests库来发送HTTP请求&#xff0c;BeautifulSoup库来解析HTML页面&#xff0c;以及os和shutil库来下载和保存图片。通过这个教程&#xff0c;你将学会如何爬取网…...

CMS垃圾回收器

CMS垃圾回收 CMS GC的官方名称为“Mostly Concurrenct Mark and Sweep Garbage Collector”&#xff08;最大-并发-标记-清除-垃圾收集器&#xff09;。 作用范围&#xff1a; 老年代 算法&#xff1a; 并发标记清除算法。 启用参数&#xff1a;-XX:UseConMarkSweepGC 默认回收…...

【力扣白嫖日记】184.部门工资最高的员工

前言 练习sql语句&#xff0c;所有题目来自于力扣&#xff08;https://leetcode.cn/problemset/database/&#xff09;的免费数据库练习题。 今日题目&#xff1a; 184.部门工资最高的员工 表&#xff1a;Employee 列名类型idintnamevarcharsalaryvarchardepartmentIdint …...

JAVA讲解算法-排序算法-选择排序算法-02

一、定义 选择排序法是一种不稳定的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小&#xff08;或最大&#xff09;的一个元素&#xff0c;存放在序列的起始位置&#xff0c;然后&#xff0c;再从剩余未排序元素中继续寻找最小&#xff08;大&#xff09;元素&a…...

【初始RabbitMQ】高级发布确认的实现

在生产环境中由于一些不明原因&#xff0c;导致 rabbitmq 重启&#xff0c;在 RabbitMQ 重启期间生产者消息投递失败&#xff0c; 导致消息丢失&#xff0c;需要手动处理和恢复。于是&#xff0c;我们开始思考&#xff0c;如何才能进行 RabbitMQ 的消息可靠投递呢&#xff1f; …...

Zustand 状态管理库:极简而强大的解决方案

Zustand 是一个轻量级、快速和可扩展的状态管理库&#xff0c;特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...

MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例

一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)

概述 在 Swift 开发语言中&#xff0c;各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过&#xff0c;在涉及到多个子类派生于基类进行多态模拟的场景下&#xff0c;…...

Go 语言接口详解

Go 语言接口详解 核心概念 接口定义 在 Go 语言中&#xff0c;接口是一种抽象类型&#xff0c;它定义了一组方法的集合&#xff1a; // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的&#xff1a; // 矩形结构体…...

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...

JVM垃圾回收机制全解析

Java虚拟机&#xff08;JVM&#xff09;中的垃圾收集器&#xff08;Garbage Collector&#xff0c;简称GC&#xff09;是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象&#xff0c;从而释放内存空间&#xff0c;避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...

从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)

设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile&#xff0c;新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...

HTML前端开发:JavaScript 常用事件详解

作为前端开发的核心&#xff0c;JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例&#xff1a; 1. onclick - 点击事件 当元素被单击时触发&#xff08;左键点击&#xff09; button.onclick function() {alert("按钮被点击了&#xff01;&…...

关于 WASM:1. WASM 基础原理

一、WASM 简介 1.1 WebAssembly 是什么&#xff1f; WebAssembly&#xff08;WASM&#xff09; 是一种能在现代浏览器中高效运行的二进制指令格式&#xff0c;它不是传统的编程语言&#xff0c;而是一种 低级字节码格式&#xff0c;可由高级语言&#xff08;如 C、C、Rust&am…...

全志A40i android7.1 调试信息打印串口由uart0改为uart3

一&#xff0c;概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本&#xff1a;2014.07&#xff1b; Kernel版本&#xff1a;Linux-3.10&#xff1b; 二&#xff0c;Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01)&#xff0c;并让boo…...