Invisible Backdoor Attack with Sample-Specific Triggers 论文笔记

news2024/10/7 20:31:20

1. 论文信息

论文名称Invisible Backdoor Attack with Sample-Specific Triggers
作者Yuezun Li(香港大学)
出版社ICCV 2021
pdf在线pdf 本地pdf
代码
TensorFlow
简介提出了 sample-specific 以及 invisible 的 trigger。使用数字水印技术生成看不见的后门

2. introduction

  • 文章的贡献:

    提出了 sample-specific and invisible 的后门,并进行大量实验验证了效果

    • sample-specific:不同于以往的 trigger 都是统一的图案或者是根据分类条件生成的,本文的 trigger 是根据样本生成的。不同的图像具有不同的 trigger,比较难一检测。
    • invisible:生成的 trigger 是隐形的,更难以被检测
  • 威胁模型:

    • 假设攻击者可以破坏一些训练数据,但是不知道模型的结构,损失的结构,也不能操作训练的过程。

3. method

  • 进攻的过程,重点是如何训练出 encoder

    在这里插入图片描述

    一般后门的流程如上图步骤:

    1. 训练一个用于加毒的 encoder ,并使用该 encoder 生成一些 posion image
    2. 使用加毒数据训练一个分类器
    3. 测试后门的情况
  • encoder 的训练过程

    训练过程较为简单,使用了数字水印的技术

在这里插入图片描述

  • 训练的框架参考了 StegaStamp ,除了中间的过程没做数据增强,其他部分基本相同
  • 最小化 benign image 和 poisoned image 的区别
  • 最小化 target label 产生的 code 和 decoder 产生的 code 之间的区别
  • 整个过程就是将,target label 嵌入到 image 中作为 trigger

4. experiments

4.1 评价指标

PSNR 评价指标

PSNR​ (Peak Signal-to-Noise Ratio) 峰值信噪比

给定一个大小为 m × n m \times n m×n 的干净图像 I I I 和噪声图像 K K K , 均方误差( M S E MSE MSE) 定义为:

M S E = 1 m n ∑ i = 0 m − 1 ∑ j = 0 n − 1 [ I ( i , j ) − K ( i , j ) ] 2 M S E=\frac{1}{m n} \sum_{i=0}^{m-1} \sum_{j=0}^{n-1}[I(i, j)-K(i, j)]^{2} MSE=mn1i=0m1j=0n1[I(i,j)K(i,j)]2

然后 P S N R ( d B ) PSNR(dB) PSNR(dB)定义为:

P S N R = 10 ⋅ log ⁡ 10 ( M A X I 2 M S E ) P S N R=10 \cdot \log _{10}\left(\frac{M A X_{I}^{2}}{M S E}\right) PSNR=10log10(MSEMAXI2)

  • 其中 M A X I MAX_I MAXI 为图片的最大像素值。一般地,针对 uint8 数据,最大像素值为 255,;针对浮点型数据,最大像素值为 1

上面是针对灰度图像的计算方法,如果是彩色图像,通常有三种方法来计算

  • 分别计算 RGB 三个通道的 PSNR,然后取平均值
  • 计算 RGB 三通道的 MSE ,然后再除以 3
  • 将图片转化为 YCbCr 格式,然后只计算 Y 分量也就是亮度分量的 PSNR
# method 1
diff = im1 - im2
mse = np.mean(np.square(diff))
psnr = 10 * np.log10(255 * 255 / mse)

# method 2
psnr = skimage.measure.compare_psnr(im1, im2, 255)

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

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

相关文章

MCE | 肿瘤微环境在癌症中的作用

在过去数十年中,通过使用免疫疗法、靶向疗法和联合方案,癌症治疗领域取得了很大的进步。但这些治疗方案中的绝大多数最终都无法治愈患者,甚至对治疗有显著初始反应的肿瘤也经常复发为耐药恶性肿瘤。另一方面,越来越多的证据表明&a…

A-Level经济例题解析及练习Budget Constraint

知识点:Budget Constraint例题 Question: Budget Constraint Hurley’s income: $1200, Prices: PF $4 per fish, PM $1 per mango A. If Hurley spends all his income on fish, how many fish does he buy? B. If Hurley spends all his income on mangos…

Java开发基础_04

六. 集合框架 #mermaid-svg-g9w5yNcJQzio5Xvm {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-g9w5yNcJQzio5Xvm .error-icon{fill:#552222;}#mermaid-svg-g9w5yNcJQzio5Xvm .error-text{fill:#552222;stroke:#55222…

【总结】Idea 编译maven项目报错NoSuchMethodError DefaultModelValidator

从网上git clone了一个项目,本地编译compile、打包package都没问题。 但是启动服务,启动不了,且查看Dependency Analyzer 没有任何依赖信息。执行Reimport时,报错如下。 错误信息 org.codehaus.plexus.component.repository.exc…

Git的简单使用

Git的简单使用一、关于版本控制1、文件的版本2、版本控制软件1.本地版本控制系统2.集中化的版本控制系统3.分布式的版本控制系统二、Git的简介1、什么是Git2、SVN的差异比较3、Git的记录快照4、Git中的三个区域5、使用Git的基本流程三、Git的基本操作1、配置Git1. 配置用户信息…

集合~List

List List集合概述和特点 List集合概述 有序集合(也称为序列),用户可以精确控制列表中每个元素的插入位置。用户可以通过整数索引访问元素,并搜索列表中的元素与Set集合不同,列表通常允许重复的元素 List集合特点 …

【JavaSE】String类总结,StringBuilder、StringBuffer、String的区别讲解

文章目录String对象的构造String类的一些常用方法求字符串的长度字符串判空字符串对象的比较字符串对象的查找字符串对象的转化字符串对象的截取字符串对象的替换字符串对象的拆分字符串对象的大小写转换常用方法总结StringBuilder与StringBuffer字符串为什么不可变String Stin…

Alibaba架构师内部最新发布SpringCloud开发手册,Github限时开源

微服务是SOA之后越来越流行的体系结构模式之一! 如果您关注行业趋势,就会发现,如今商业机构不再像几年前那样,开发大型应用程序,来管理端到端之间的业务功能,而是选择快速灵活的微服务。 通过微服务,架构师…

寒气难抵,跨境电商年底仍有一批卖家要出局!

2020年初的新冠疫情仍历历在目,跨境电商在这两年间也是经历了许多不同的波折和困难。从2020年到2022年,由于各国之间出于疫情防控等多方面的考虑,逐渐的增加贸易壁垒,致使跨境电商的物流成本大概增长了50%,物流成本占订…

UE4 回合游戏项目 22- 控制新角色

在上一节(UE4 回合游戏项目 21- 添加多种类型的敌人)基础上新添加一个玩家角色 效果: 步骤: 1.打开进阶游戏资源,解压“回合迁移_第七节(只是新人物包)” 2.解压后双击打开工程 3.选中“ziyuan…

免费查题接口系统

免费查题接口系统 本平台优点: 多题库查题、独立后台、响应速度快、全网平台可查、功能最全! 1.想要给自己的公众号获得查题接口,只需要两步! 2.题库: 查题校园题库:查题校园题库后台(点击跳…

微信小程序 | 小程序开发

🖥️ 微信小程序专栏:小程序开发 初级知识 🧑‍💼 个人简介:一个不甘平庸的平凡人🍬 ✨ 个人主页:CoderHing的个人主页 🍀 格言: ☀️ 路漫漫其修远兮,吾将上下而求索☀️ &#x1f…

51单片机学习笔记2 仿真器的使用及STC89Cxx简介

51单片机学习笔记2 仿真器的使用及STC89Cxx简介)一、连接步骤1. 硬件连接2. 安装软件驱动3. 检查是否安装成功二、仿真步骤1. 打开一个51工程2. 选择仿真设备3. Settings设置4. Utilities设置5. 点击仿真三、连接开发板四、STC89Cxx单片机简介1. 单片机2. 51单片机3…

红黑树的插入与验证——附图详解

文章目录红黑树性质红黑树的插入前言寻找插入位置情况 1.0情况 1.1情况 1.2情况 1.3情况 2.0情况 2.1情况 2.2情况 2.3完整代码红黑树的检验验证代码和用例红黑树 上篇文章我们说到 AVL 树在新增 / 减少结点的时候会进行旋转以保持 AVL 树的高度平衡, 但是实际上在需要 频繁加…

【构建ML驱动的应用程序】第 2 章 :制定计划

🔎大家好,我是Sonhhxg_柒,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎 📝个人主页-Sonhhxg_柒的博客_CSDN博客 📃 🎁欢迎各位→点赞…

【线程】多线程安全

考点,线程同步有哪些操作: 一、概念 如果一个函数能被多个线程同时调用且不发生竞态条件,则成为它是线程安全,也叫可重入函数。通俗地说就是多线程程序无论调度顺序怎么样都可以得到正确的结果,运行时程序不出错。可重…

2023年浙大MBA项目的后备考阶段三大策略:你永远要相信光的力量

有些人,走着走着就掉队了。距离今年的管理类联考还有一个月时间,一切看似终成定局,但实际上仍有很大转圜空间。对浙大MBA的准考生来说,走到目前这一步,剩下的一个月时间务必要坚持走完,而且要更加的勇敢和底…

SDN功能实现(四)--- 实现自定义action(1)修改OVS源码<队列去重(内核态实现)>

实现功能:设计一个新的action,实现在冗余链路中的数据包去重 一:在内核级定义OVS action (一)在datapath/linux/compat/include/linux/openvswitch.h中添加: enum ovs_action_attr {/* ... *//** after…

SparkStreaming

sparkstreaming 1.批处理与流处理 spark本身作为引擎时是批处理,从信息源全部读取数据,然后一批一批处理数据。处理sparkSQL等之后再存入hdfs。 sparkstreaming是实时引擎,在一个窗口时间内(比如1s)积攒数据&#x…

Spring IOC源码:实例化前的准备工作

前言 上篇文章我们讲解了IOC比较重要的后置处理器注册方法,本篇文章讲解实例化前的准备工作,包括国际化、多播器创建、监听器注册等节点。 正文 进入refresh方法中,可以看到在正式实例化初始化方法前,还有4个方法: …