Blind Backdoors in Deep Learning Models 论文笔记

news2025/2/27 1:59:44

#论文笔记#

1. 论文信息

论文名称Blind Backdoors in Deep Learning Models
作者Eugene Bagdasaryan Vitaly Shmatikov Cornell Tech
出版社USENIX Security Symposium 2021 (网安A类会议)
pdf论文主页 本地PDF
代码
pytoch_Backdoors_101

2. introduction

2.1 背景

blind backdoor attack

文章提出了一种新的 backdoor attack 的方式。文中称为 blind backdoor attack

文中关于 blind backdoor attack 的解释如下:

Our attack is blind: the attacker cannot modify the training data, nor observe the execution of his code, nor access the resulting model

具体来说:攻击者知道主要任务,可能的模型架构和常用的数据。但是不知道具体的训练数据,参数和结果模型。由于上述限制,blind attack 比其他 backdoor attack 更加难做到。

backdoor attack 的分类

如何做到 blind backdoor attack ,以及 blind backdoor attack 和其他的攻击方法有什么区别。作者画了一张图来描述 attack 的类型。其中 blind backdoor attack 的方法属于 backdoor attack 中的 Code poisoning 的方法。即对开源代码库进行攻击。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Eq1sREsM-1669019216760)(assets/image-20220308154127-tsfbp11.png)]

上图总结了 5 中常见的代码攻击类型:

  • Poisoning:对训练数据进行投毒
  • Trojaning:对模型进行修改,注入后门(待了解)
  • model replacement:替换模型。联邦学习中的一种攻击方式(待了解)
  • Adversarial Example:对抗样本
  • Code poisoning:对代码进行投毒

关于 Code poisoning:

为什么可以进行代码攻击?

因为机器学习很多代码和开源框架都托管在Github等代码平台,这就导致了攻击者可以向开源代码中注入恶意代码,而且这些恶意代码比较难被审核者发现。文中的方法就是在代码中加入了一个后门学习的任务,导致使用者使用该代码训练模型会留下后门。

Code poisoning 和 data Poisoning 有什么区别?

Code poisoning 可以不用知道训练数据是什么。在 Data Poisoning 中,为了实现更好的效果往往需要根据数据的分布学习出一个带有目标类信息的 trigger 。所以 Data Poisoning 要预先得到训练数据,并在训练数据上构建模型,生成用于攻击的 poison data 。而 Code poisoning 不用考虑训练集的分布,只需要在 batch 中对数据集进行修改,即不管是什么样的训练集都可以用同一种方式攻击。

Data Poisoning 也有一定的局限性,在文章中提出,有一些数据是难以更改的(例如使用安全相机产生的数据)

2.2 文章的贡献

  1. 提出了 blind attack,并通过实验验证了 blind attack 的攻击效果
  2. 使用 multi-objective optimization 来看待 backdoor attack,并且使用了动态调整系数的方法
  3. 对防御方法进行分析,并验证了 blind attack 的有效性

3. method

3.1 模型结构图

模型结构图
攻击过程

可以看到在攻击的过程中,攻击者只是在原本的代码中加入了几行新的代码。所以整个攻击比较隐秘且难以发现。攻击的方法可以理解为是多任务学习。

  1. 多任务学习

    攻击使用的方法为多任务学习。多任务学习同时优化多个目标函数loss,学习出来的模型可以适应与不同任务。文章中将原本的分类任务视为主任务,将 backdoor attack 视为另一个任务。加入代码,让模型在学习主任务的同时,学习到次要任务。

    • Main task:分类任务 θ ∗ ( x ) = y , ∀ ( x , y ) ∈ ( X \ X ∗ , Y ) \theta^{*}(x)=y, \forall(x, y) \in\left(\mathcal{X} \backslash \mathcal{X}^{*}, \mathcal{Y}\right) θ(x)=y,(x,y)(X\X,Y)
    • Backdoor task:将带有trigger的图片学习到目标类 θ ∗ ( x ) = y , ∀ ( x , y ) ∈ ( X \ X ∗ , Y ) \theta^{*}(x)=y, \forall(x, y) \in\left(\mathcal{X} \backslash \mathcal{X}^{*}, \mathcal{Y}\right) θ(x)=y,(x,y)(X\X,Y)

    训练的过程中,只增加了一个用于学习 backdoor 数据的 loss,并未改变优化器和模型结构

  2. 训练过程

    开始仅训练主任务,在主任务 loss 小于一定阈值(接近收敛时),再开始训练多目标任务。这样的做法是为了减少开销,使得攻击过程更加隐蔽。

    当然,从头直接训练多目标任务也是可行的。

  3. 损失函数

    ℓ blind  = α 0 ℓ m + α 1 ℓ m ∗ [ + α 2 ℓ e v ] \ell_{\text {blind }}=\alpha_{0} \ell_{m}+\alpha_{1} \ell_{m^{*}}\left[+\alpha_{2} \ell_{e v}\right] blind =α0m+α1m[+α2ev]

    • main task loss:$ \ell_{m}$

    • backdoor loss: ℓ m ∗ \ell_{m^{*}} m

    • optional evasion loss: ℓ e v \ell_{e v} ev

      ℓ e v \ell_{e v} ev 是为了对抗防御模型 Neural Cleanse 设计的损失

  4. loss 间的系数

    多任务学习中存在一个问题:不同任务 loss 之间的系数取决于数据和模型,使用固定的系数组合不是最优解。

    文章中给出了一个解决方法,use Multiple Gradient Descent Algorithm with the Franke-Wolfe optimizer [16, 81] to find an optimal 。

    使用 MGDA 算法,动态调整损失函数的权重

    MGDA: min ⁡ α 1 , … , α k { ∥ ∑ i = 1 k α i ∇ ℓ i ∥ 2 2 ∣ ∑ i = 1 k α i = 1 , α i ≥ 0 ∀ i } \min _{\alpha_{1}, \ldots, \alpha_{k}}\left\{\left\|\sum_{i=1}^{k} \alpha_{i} \nabla \ell_{i}\right\|_{2}^{2} \mid \sum_{i=1}^{k} \alpha_{i}=1, \alpha_{i} \geq 0 \forall i\right\} minα1,,αk{i=1kαii22i=1kαi=1,αi0i}

  5. 关于 μ \mu μ v v v

    v v v 可以设置为不同的 target label, μ \mu μ 的数量也可以灵活变

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

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

相关文章

《第一行代码》核心知识点:Android简介

前言 自本文开始,我将更新《第一行代码 Android 第2版.pdf》,(提取码:n5ag ) 核心要点系列,通过阅读本系列文章可以帮助有Android基础的开发人员,去除冗余的基础讲解,直击核心知识点…

GEE开发之Modis_ET数据分析和获取

GEE开发之Modis_ET数据获取1 ET(蒸散量)2 MOD16A2(500米/8天)2.1 MOD16A2下的所有指数2.2 ET影像获取和查看3 ET日数据下载(以MOD16A2为例)4 ET月数据下载(以MOD16A2为例)5 ET年数据下载(以MOD16A2为例)前言:主要介绍Modis下的ET数据的获取和下载(日数据…

工厂模式【简单工厂+工厂+抽象工厂】总结

一、简单工厂模式 描述 简单工厂模式是属于创建型模式,又叫做静态工厂方法模式,但不属于23种GOF设计模式之一。简单工厂模式中专门定义一个简单工厂类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。简单工厂类根据传入的参数&a…

wireshark工具详解、数据包抓取分析、使用教程

Wireshark界面 Wireshark查看数据捕获列表 数据包概要信息窗口:描述每个数据包的基本信息。如图,点击某行数据,即可在下方显示该数据包的信息。 1、数据包解析窗口:显示被选中的数据包的解析信息,包含每个数据包的整体…

通过request请求和servlet实现注册跳转界面案例及问题解决

案例:用户登录 * 用户登录案例需求: 1.编写login.html登录页面 username & password 两个输入框 2.使用Druid数据库连接池技术,操作mysql,day14数据库中user表 3.使用JdbcTemplate技术封装JDBC 4.登录成功跳转到Suc…

机器人操作系统ROS(19) 雷达和摄像头融合的资料

搜集的有关雷达和摄像头融合的资料。仅供参考: #1 传感器融合:激光雷达摄像头 摄像头产生的数据是2D图像,对于物体的形状和类别的感知精度较高。深度学习技术的成功起源于计算机视觉任务,很多成功的算法也是基于对图像数据的处理…

图神经网络 | Python基于图卷积的U-Net架构进行交通流量和速度的预测

图神经网络 | Python基于图卷积的U-Net架构进行交通流量和速度的预测 目录 图神经网络 | Python基于图卷积的U-Net架构进行交通流量和速度的预测效果分析基本描述程序实现核心概念参考资料效果分析 基本描述 此版本包含了训练和评估模型的代码,以预测Traffic4Cast挑战数据的交…

ssh-keygen和openssl的区别

OpenSSL OpenSSL是用于应用程序的软件库,该应用程序可保护计算机网络上的通信免遭窃听或需要识别另一方的身份,是SSL和TLS协议的开源实现。采用C语言作为开发语言,具备了跨平台的能力,支持Unix/Linux、Windows、Mac OS等多种平台…

力扣LeatCode算法题第9题-回文数

要求: //给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。 //回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 //例如,1…

百世的数智化供应链凭何融入企业生命周期?

在供应链这个词出现前,供应链的本体就已经存在。 萨缪尔森说,现代经济生活的命脉是交换。当不同的物资、资金、信息在产业链上流动起来时,产业才能形成模型,经济才会有活力。然而,供应商增加、活动变多、地理距离拉长…

智慧气象解决方案-最新全套文件

智慧气象解决方案-最新全套文件一、建设背景二、建设架构传统气象所面临的挑战:1、气象数据大幅快速增长,导致计算能力不足2、人工智能应用不足,短临预报精度较低3、气象数据分散,数据融合困难4、气象服务方式单一,体验…

外卖项目04---菜品管理业务开发

效果展示: 目录 一、文件上传下载 50 1.1文件上传 50​编辑 1.2文件下载 1.3文件上传下载---文件上传代码实现1 1.4文件上传下载---文件上传代码实现2 1.5文件上传下载---文件下载代码实现 53 二、新增菜品 54 2.1需求分析 54 2.2数据模型 2.3新增菜品---代码开发--…

uniapp使用nfc功能及详解

公司使用uniapp在android手机端要增加一个nfc识别的功能。在此记录一下实现的过程。 资料查找 我的代码逻辑主要来源于找到的这篇文章: uniapp-安卓NFC读取 - 我要找到我的全世界 - 博客园 文章内附有代码,为防止文章失效代码消失,在这篇文…

向中央超算平台进化 哪吒汽车发布技术品牌“浩智”

电子电气架构是汽车的“大脑和神经系统”,决定了智能汽车的体验上限。为了实现高阶智能,车企须将汽车的电子电气架构从分布式,向集中式转变,打造出中央超算平台 11月21日,哪吒汽车举行“浩智战略2025”全球技术品牌发布…

Mentor Xpedition VX2.11入门遇到的问题和解决方案 (1)

一、前言 平时使用AD绘制板子,最近又朋友强烈推荐Mentor Xpedition。说它的自动布线功能非常强。相比于pads,这款软件的教程很少。但好在B站还是又几个不错的视频。在相关视频的讲解下,慢慢入门。目前来看这款软件的易用性很差,操…

aws eks创建节点组的不同方式和逻辑

该问题来源于,eks节点组能否修改实例类型,不同创建方式修改节点参数的方式是否有区别。结论如下: eksctl创建托管节点组,无法通过修改启动模板修改节点类型(在eks控制台update会报错),但是可以…

网络系统管理 - Server02配置

一、Server02系统基础环境配置 二、DISK配置服务器软RAID工作任务 三、DFS membe端配置工作任务 1.Server02系统基础环境配置 (1)请根据附件说明或提供的基础信息,配置服务器的主机名,IP 地址,创建要求的用户名及密码;

docker镜像、容器 常用命令,容器端口映射

文章目录前言一、docker基础命令二、docker镜像命令1、docker images:列出本地主机的镜像2、 docker search :查看镜像3、docker pull:拉取镜像4、docker rmi : 删除docker镜像三、docker容器命令1、环境准备2、运行容器3、启动、…

Python常见工厂函数用法

工厂函数:能够产生类实例的内建函数。 工厂函数是指这些内建函数都是类对象, 当调用它们时,实际上是创建了一个类实例。 Python中的工厂函数举例如下: int(),long(),float(),complex(),bool()aint(9.9) a 9 blong(45) b 45L ff…

JavaScript 虚拟键盘:Mindfusion JavaScript Keyboard

高度交互,高度可定制--JavaScript 虚拟键盘--Mindfusion JavaScript Keyboard 现在,您的 JavaScript 应用程序可以像本地移动应用程序一样处理屏幕输入。 特征 键盘布局 扩展、紧凑和标准布局模式。KeyboardLayout 工具可帮助您根据需要创建和排列自定义…