Data-Efficient Backdoor 论文笔记

news2024/10/5 12:39:30

#论文笔记#

1. 论文信息

论文名称Data-Efficient Backdoor
作者Pengfei Xia 中国科学技术大学
会议/出版社IJCAI 2022
pdf📄在线pdf
代码
💻pytorch

概要:本文是 backdoor attack 中的数据加毒。不同于以往随机在干净数据中选择样本加毒的方法,本文考虑了不同样本加毒会产生不同的攻击效率。主要的贡献是,研究了样本遗忘效应对加毒数据学习的影响,提出了一种过滤和更新的策略(FUS),筛选出容易遗忘的加毒样本,构建加毒数据集。与随机选择相比,只需要47% ~ 75%的中毒样本量就能获得相同的攻击成功率。并且还有更好的迁移性。

2. introduction

2.1 背景与问题

  • 数据加毒

    • 数据加毒是 backdoor attack 中的一个分支,大致的做法是给数据集中加入 trigger 然后发布。被攻击者使用加毒的数据集进行训练模型,就会给自己的模型中留下后门。
    • 大部分数据加毒的研究方向主要集中在如何生成更好的 trigger 去提升攻击的准确率以及降低数据中的加毒比例。数据中的加毒比例越低,检测算法就越难检测到数据中存在的问题。
    • 之前的方法都遵循一个共同的过程:随机从干净的数据集中选择一些数据,然后加入 trigger 构建加毒数据。这种随机选择的策略默认任何加毒样本对攻击的贡献是相等的,这不符合实际情况。因此本文提出了一个选择加毒的策略。
  • forgettable samples

    • 容易被遗忘的样本

    • 本文方法的核心是找到对后门注入贡献比较大的加毒样本,分类任务中对于决策边界影响比较大的样本有两种,hard or forgettable samples。本文重点讨论 forgettable samples。

    • 关于 forgettable samples 的定义可以参考知乎博客。这里做一个简述

      • 样本遗忘主要是受到灾难性遗忘现象启发而提出的,灾难性遗忘:描述的是在一个任务上训练出来的模型,如果在一个新任务上进行训练,就会大大降低原任务上的泛化性能,即之前的知识被严重遗忘了。

        在这里插入图片描述

      • 下图统计了数据集中样本的被遗忘次数,纵坐标表示样本的比例,横坐标表示 forgetting events。forgetting events:当一个样本本次预测正确,下次预测错误,就记一次 forgetting event。说明了越复杂的数据集中,forgettable samples 的数目就越多。

        在这里插入图片描述

      • forgettable samples 和分类任务的关系。样本在训练中被遗忘的次数越多,它对分类任务的作用可能越大。可以从下图中看出,红色线为不移除样本中的数据,绿色线为移除样本中不容易被遗忘的数据,蓝色线为随机移除样本中的数据。由三条曲线的变化趋势可以看出 forgettable samples 可以促进模型的学习

      在这里插入图片描述

  • forgettable poisoned samples

    • 许多论文已经证实了 forgettable samples 的存在,并且 forgettable samples 的存在对分类任务具有促进作用。本论文通过实验探讨了在加入了 trigger 的 poisoned samples 中是否存在容易被遗忘的现象。

    • 作者在 cifar10 上统计了 poisoned samples 的 forgetting events,结果如下图所示,发现在 poisoned samples 中也存在着forgettable poisoned samples。并且也通过移除加毒数据中 poisoned samples 的方法,去证明 forgettable poisoned samples 对于攻击具有积极的作用。

      在这里插入图片描述

      poisoned forgetting events:if x ′ x^{\prime} x is correctly classified at the time step s s s, i.e., I ( f θ s ( x ′ ) = t ) = 1 \mathbb{I}\left(f_{\theta^s}\left(x^{\prime}\right)=t\right)=1 I(fθs(x)=t)=1, but is misclassified at s + 1 s+1 s+1, i.e., I ( f θ s + 1 ( x ′ ) = t ) = 0 \mathbb{I}\left(f_{\theta^{s+1}}\left(x^{\prime}\right)=t\right)=0 I(fθs+1(x)=t)=0, then we record this as a forgetting event for that sample.

2.3 文章的贡献

  1. 将 poisoned samples 的选择问题视为优化问题
  2. 提出了 Filtering-and-Updating Strategy (FUS) 策略去选择加毒的数据

3. method

通过文章对于 forgettable poisoned samples 的讨论,我们已经得知 forgettable poisoned samples 对攻击效果具有促进作用。所以本文的方法就是将 forgettable poisoned samples 选择出来。

在这里插入图片描述

直接选择:

一种最直观的方法就是将数据集中的绝大部数据都变成 poison data,然后通过 forgetting event 计数的方法将 forgettable poisoned samples 选择出来。但是作者通过实验证明这种想法是错误的。

在这里插入图片描述

由下表可以看出,随着加毒数据比例的增大,筛选出的 forgettable poisoned samples 并没有增多(可以看到黄色线条,forgetting event > 2 的样本数目并没有增多。)所以这种直接筛选的方法是不合理的。文中对这种现象的解释是 trigger 更加容易学习。

We think this phenomenon happens because the features of the trigger are too easy to learn. Namely, the increase in the number of adversaries results in the differences between samples failing to emerge, as the model learns the backdoor more easily and more quickly.

在这里插入图片描述

举个不恰当的例子就是,如果我们在一堆狗的图片中混入一个噪声并且告诉模型这噪声也是狗,模型会比较容易忘记这个噪声。如果我们在狗这种数据集中加入大量相同的噪声,并且告诉模型这个噪声是狗,模型就很容易记住了。

FUS:

为了解决上述的问题,本文设计了 FUS 算法。算法图如下:

在这里插入图片描述

简单来说就是 poisoned training data 分成了 n 份,然后在这其中筛选出 forgettable poisoned samples 最后构成 forgettable poisoned data

在这里插入图片描述

4. experiments

4.1 数据集以及评价指标

🟠数据集一
CIFAR-10

🟠数据集二
ImageNet-10:从 ImageNet-1k 中选择了 10 类

实验

本文 trigger 的选择以及攻击的方式参照论文:Targeted Backdoor Attacks on Deep Learning Systems Using Data Poisoning 2017 这是一个比较简单的攻击方法,如下图所示

在这里插入图片描述

可以看到在白盒模型中,RSS(随机筛选)的策略不如本文提出的 FUS 策略。证明了该方法的优越性。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/25612.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

磁盘怎么删除分区,磁盘管理怎么删除分区

为了高效地利用磁盘分区,会删除部分磁盘分区,但是很多的用户都不知道应该怎么删除磁盘分区,所以,易我小编将讲解磁盘怎么删除分区。 一、为什么要删除磁盘分区 因为不同用户的磁盘分区管理需求不同,为了适应用户的具体…

spring boot yaml自定义配置传入代码

目录 一、在项目代码中,直接读取配置文件application.yml中的数据 二、通过yaml配置文件,给类注入数据 一、在项目代码中,直接读取配置文件application.yml中的数据 使用Value注解。 如: 在spring boot 中,applica…

Spring实战之容器、上下文、Bean的生命周期

一、Spring容器 在基于Spring的应用中,你的应用对象生存于Spring容器(container)中,Spring容器负责创建对象,装配它们,配置它们并管理它们的整个生命周期,从生存到死亡。(在这里&am…

程序运行只是单单的编译吗?一文让你深入理解程序运行的过程

前言: 写了这么长时间的c语言代码,我们都没有想过为什么要写头文件吗,而程序执行的过程又是如何呢?只有编译吗 ?要知道机器只能读懂二进制但我们所写的代码编译器是如何读懂的呢?这一篇文章看后一定能解决以…

数据结构之Trie树

Trie树: Tire树可以较为高效的存储和查找字符串集合。 存储方式: 首先Trie有一个根节点,我们按从前往后的顺序将字符串的每个位置上的字符存储到树的每一层中,这样我们存储多个字符串时就可以消除一部分冗余,在查询字…

期货开户后需要银期转账绑定

一、期货公司正规性 如何判断期货公司是否正规? 1、 中国证监会官网有公布所有正规期货公司(一共150家)名录的,我们可以直接参考证监会发布链接:期货公司名录 2、如果你懒得从名录中一个个找,也可以直接…

一款不错的SpringCloud 脚手架项目

文章目录 I 一款不错的SpringCloud 脚手架项目1.1 项目概述1.2 本地启动II. Swagger RESTful 风格的 Web 服务框架2.1 组成部分2.2 springfoxIII 相关辅助脚本3.1 pod 辅助脚本3.2 git 辅助脚本I 一款不错的SpringCloud 脚手架项目 1.1 项目概述 springboot+springcloud注册中心…

基于SpringBoot的电子招标投标管理系统

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SpringBoot 前端:HTML、Vue 数据库:MySQL5.7 数据库管理工具:Navicat 12 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否…

Android BottomSheetDialogFragment 使用详解,设置圆角、固定高度、默认全屏等

转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/127967304 本文出自【赵彦军的博客】 文章目录效果BottomSheetBottomSheetDialogBottomSheetDialogFragment圆角效果去掉背景蒙版设置蒙版透明度点击 dialog 外部区域,dialog 不消失禁…

STC51单片机37——定时器流水灯

// 12MHz晶振 #include "reg52.h" #include "intrins.h" #define time (65536-50000) // 单次定时50ms unsigned char cn; unsigned char temp; unsigned char dir; void main(void) { cn20; //20*50ms1s temp0x80; dir0; TMOD 0x…

Vue简单示例——weex

weex的生命周期: 因为我们的Weex和Vue是绑定在一起的,所以我们讨论关于生命周期时,说的实际上是在Weex中可以使用的Vuex的生命周期,也就是Weex对于Vue生命周期的支持,好消息,Weex支持大部分的Vue中的生命周…

基于Vue+ElementUI+MySQL+Express的学生管理系统(3)

3.搭建学生考试信息的前端页面 1.在E:\vue\shiyan9目录下用cmd打开命令窗口。输入命令vue init webpack score-manage,创建一个基于webpack模板的项目。 图15 创建一个新的vue的脚手架的项目 2.执行cd score-manage,进入目录包下。下载依赖包。命令如下…

Pytorch 图像增强 实现翻转裁剪色调等 附代码(全)

目录前言1. 裁剪1.1 中心裁剪1.2 随机裁剪1.3 随机尺寸裁剪2. 翻转2.1 水平翻转2.2 垂直翻转2.3 随机旋转3. 色调3.1 灰度变换3.2 色彩抖动3.3 随机翻转颜色3.4 随机调整锐度3.5 高斯模糊4. 边缘填充5. 仿射变换前言 下文中有使用到plt,不懂的可看我这篇文章&#…

doker中的Jenkins容器配置github

1、在Jenkins插件 管理中下载github plugin和ssh和git插件 2、在Jenkins->系统管理->系统配置->github下配置凭据认证,添加凭证页面类型选择secret text 3、添加凭证页面secret栏输入githu token,其他任意输入 4、github token获取&#xf…

FANUC机器人零点复归的报警原因分析和零点标定相关步骤

FANUC机器人零点复归的报警原因分析和零点标定相关步骤 FANUC机器人零点复归时需要将机器人的机械信息与位置信息同步,来定义机器人的物理位置。 机器人通过闭环伺服系统来控制机器人各运动轴,当用户通过示教器点动机器人时,经过主板分析此命令后,带动电机旋转,电机上的SP…

软件测试入门概念

满足用户期望或正式规定文档(合同、标准、规范)所具有的条件和权能,包含用户需求和软件需求。 用户需求: 五花八门的用户需求,该需求比较简略。 软件需求: 又叫功能需求,该需求会详细描述开发…

SLAM本质剖析-Boost之Geometry函数大全(二)

4. 点云处理 4.1 add_point 将一个点添加到另一个点 4.2 add_value 将相同的值添加到点的每个坐标 4.3 assign_point 用另一个点指定一个点 4.4 assign_value 为点的每个坐标指定相同的值 4.5 cross_product 计算两个向量的叉积 4.7 divide_point 将一点除以另一点…

Python用27行代码绘制一幅满天星

前言 大家早好、午好、晚好吖 ❤ ~ 每一个孩子都像星空中的一颗星星,散发着自己所特有的光芒照亮着整个夜空。 今天就带大家用27行Python代码绘制一幅满天星吧。 全局设置 在绘制满天星的过程中要运用到turtle工具,它是Python的标准库,也可…

堆排序+TOPK问题

文章目录一.堆排序1.使用向上还是向下调整建堆好?(1)向上调整算法建堆的时间复杂度1. 完整过程(2)向下调整算法建堆的时间复杂度1.完整过程(3)总结2. 排升序(1) 建小堆(2) 建大堆3. 堆排序时间复杂度统计4.完整代码二 、 TOPK问题1. 概念2.两种方法第一种缺陷第二种…

【论文阅读】(2017)The late acceptance Hill-Climbing heuristic

文章目录一、摘要二、Late Acceptance Hill Climbing三、LAHC技术性能的研究3.1 Benchmark problems3.2 Experimental software3.3 Experiments四、LAHC性能评估4.1 评估方法4.2 LAHC不同变体的性能4.3 LAHC与其他技术的比较4.4 LAHC的规模独立性五、Conclusions and future wo…