BackdoorBench: A Comprehensive Benchmark of Backdoor Learning

论文地址:BackdoorBench

开源代码:https://github.com/SCLBD/BackdoorBench

文章目录

  • BackdoorBench: A Comprehensive Benchmark of Backdoor Learning
    • 现状:
    • 贡献:
    • 攻击
      • Data poisoning
      • training controllable
    • 防御
      • pre-training
      • In-training
      • post-training
    • Benchmarks的比较
      • 攻防方法的选择标准
      • 代码模块化
    • 实验设置
      • poisoning ratios
      • models
    • 补充:
现状:

由于后门攻防的快速发展,设置的多样,以及复现遇到的困难。当前对后门攻击和防御新方法的评估往往不详尽,难以验证新方法的实际性能,以及它所建立的假设或观察的正确性。

贡献:
  1. 构建了一个可扩展的模块化代码库,包括8种后门攻击方法和9种后门防御方法的实现。
  2. 基于4个数据集5个模型,对8种攻击方法和9种防御方法做了8000余次评估
  3. 从不同的角度对上述评估进行了深入的分析,研究了不同因素对后门学习的影响,并提出了一些有趣的发现,以启发未来的研究方向。
攻击

threat model

  1. Data poisoning

数据投毒攻击意味着攻击者只能操纵训练数据。现有的这类方法侧重于设计不同种类的触发器,以提高其不可感知性和攻击效果。

visible triggers

  • BadNets:领域开山之作,插入一个固定模式和位置的小补丁来替换干净图像中的原始像素,获得一个有毒的图像。

invisible triggers

  • Blended:利用α混合产生不可见的triggers,是BadNets的改进
  • Refool:产生反射并添加到训练数据中,反射作为新的后门模式。
  • Invisible Backdoor:利用图像隐写术和正则化嵌入triggers

local triggers

  • label consistent attack:通过对抗攻击破坏干净样本中的主对象信息,然后在被攻击的样本中插入触发器,得到有毒样本。不改变标签。

global triggers

  • SIG:正弦信号作为triggers来扰动目标类的干净图像,不改变标签

additive

  • Blended:良性样本与钥匙模式混合注入的策略,生成投毒样本

non-additive

  • smooth low frequency:从频域角度分析triggers,创建没有高频伪影的smooth backdoor triggers。

  • FaceHack:面部特征的变化作为triggers

sample agnostic

  • BadNets:patch是可感知的

sample specific

  • SSBA:图像隐写术嵌入特定字符串编码

  • Sleeper agent:采取梯度匹配,数据选择,重新训练目标模型。

  1. training controllable

假设attackers能控制训练过程和训练数据

,attackers能知道模型权重

  • Input-aware:每个图像都有特定的trigger,一个图像的trigger在其他图像上不起作用。
  • WaNet:对干净样本进行扭曲构造投毒样本。


防御
  1. pre-training

    在训练之前移除或者破坏有毒样本(输入异常检测和输入预处理阻止有毒数据的后门激活)

    Februus:通过Grad-CAM(热力图)确定triggers的位置,使用GAN-based inpainting方法重构triggers所在的区域以破坏triggers

    NEO提出使用图像中的主色生成补丁覆盖已经识别出来的triggers

    Confoc提出改变输入图像的风格来破坏triggers

  2. In-training

    阻止训练阶段时后门的注入

    anti-backdoor learning利用有毒样本比干净样本你和速度快的事实,通过早期epochs的损失值区分,然后areunlearn不学习有毒的样本

    DBD利用有毒样本在特征空间会聚集在一起

  3. post-training

    Fine-pruning和NAD都是观察到后门模型中干净样本和有毒样本的激活路径不一致,通过剪枝和后门有关的神经元来减轻后门攻击的效果。

    AC利用target class的样本会在特征空间形成两个聚类,较小的聚类和投毒样本有关。

    spectral signatures利用同一个class对应的投毒样本和干净样本的特征表示分布式光谱可分离的

    neural cleanse假设triggers提供了sample与target class之间的shortcut

    adversarial neuron pruning利用与注入后门相关的神经元比其他神经元对对抗性神经元扰动(即干扰神经元权重以实现对抗性攻击)更为敏感


Benchmarks的比较

先前的Benchmarks主要是关注对抗样本(RobustBench、Adversarial Robustness Toolbox)或者关注后门attack但是评估不够全面,也没有包含最新的方法(TrojanAI)。

TrojanZoo与本文工作类似,本文优点在于,包含TrojanZoo没有的新方法,而且评估更加详细丰富。

攻防方法的选择标准

1)classic或者advanced;2)easily implemented and reproducible

代码模块化

attack module:sub-module-one提供triggers生成函数,投毒数据生成函数,label转换函数,输出投毒数据集;sub-module-two提供模型架构和干净样本,triggers学习函数,模型参数学习函数,输出后门模型和triggers

defense module:前提依据attack module的输出。sub-module-one:如果输入投毒数据集,则提供triggers检测函数,有毒样本检测函数,后门注入阻止函数。sub-module-two:如果输入后门模型和少量干净样本子集,则提供后门检测函数,后门神经识别函数,后门减弱函数。

evaluation and analysis module:高CA,高ASR说明攻击效果好;高R-Acc,低ASR说明防御效果好;

CA(clean accuracy);ASR(attack success rate);R-Acc(robust accuracy预测有毒样本为原始类的准确率)

4个分析工具:

t-SNE(提供了模型中一组样本的特征表示的全局可视化,用于观察后门是否形成)

Gradient-CAM和Shapley value map(用于可视化模型中一个图像的不同像素的作用,它们可以显示触发器是否激活了后门)

Neural Activation(计算一个批次样本在一层的每个神经元的平均激活,用于分析有毒和干净样本的激活路径,并分析当模型权重因攻击或防御而改变时的激活变化)

实验设置

4个数据集5个模型5种投毒率

poisoning ratios

1.可视化:随着投毒率的增加,FT,FP,NAD,NC中的ASR急剧下降

原因:都用干净数据子集微调,防御前后平均神经激活的改变。当中毒率不是很高(如5%)时,模型对干净样本的拟合很好,而如果中毒率超过阈值后继续增加,拟合效果变差。

2.可视化:随着投毒率增加,基于CIFAR10,LC攻击下,5%投毒率,ABL不能正确分离投毒样本,但是10%投毒率时可以。

原因:ABL方法下高中毒率的损失差距比低中毒率的损失差距大

3.可视化:随着投毒率增加,基于CIFAR10,SIG攻击下,5%投毒率分离效果不佳,10%投毒率分离效果有改进。

原因:当中毒率较高时,更多的神经元会被修剪,因此ASR可能会降低。

结论:投毒率提高,攻击效果不一定越好;更高的中毒率可能会突出干净样本和投毒样本的差异。

思考:如何使用少量中毒样本达到预期的攻击效果;如何防御低中毒率的弱攻击。

models

发现:

不是所有攻击都能在EfficientNet-B3中注入后门;大多数攻击可以在PreAct-ResNet-18中注入后门;

大多数防御方法从PreAct-ResNet-18和VGG19中移除后门失败(除了ANP)

ANP对基于EfficientNet-B3的SIG攻击防御效果差;

·····

结论:同一种攻击或者防御方法,在不同的模型架构上可能有完全不同的效果。

思考:探讨模型体系结构与后门性能之间的关系,并在未来设计出更健壮的体系结构。

补充:

1.该论文不是一个新领域,研究建立统一的标准来评估后门攻击方法和后门防御方法的性能。

2.之前的评估用的模型、投毒率、数据集不同,缺少对最新方法的评估。

3.该论文指出了部分SOTA的假设,并且按照假设对不同SOTA进行分类。

4.核心贡献在于构建了最前沿的模块化的代码库。与TrojanZoo的工作类似,但是TrojanZoo没有包含最近的SOTA。本文为了先发表,也有部分SOTA正在测试中,没有添加到代码库。

5.设置不同的模型、数据集、投毒率,进行大量实验工作,比较不同方法的结果。设计的优点在于容易复现,模块化程度高。但是兼容性较差,存在代码冗余。

6.在models的影响分析中,不能有条理的列出共同点和区别。数据集都是中小规模的数据集。

4.核心贡献在于构建了最前沿的模块化的代码库。与TrojanZoo的工作类似,但是TrojanZoo没有包含最近的SOTA。本文为了先发表,也有部分SOTA正在测试中,没有添加到代码库。

5.设置不同的模型、数据集、投毒率,进行大量实验工作,比较不同方法的结果。设计的优点在于容易复现,模块化程度高。但是兼容性较差,存在代码冗余。

6.在models的影响分析中,不能有条理的列出共同点和区别。数据集都是中小规模的数据集。

7.没有包含ViT模型架构,RobustART架构等

BackdoorBench相关推荐

  1. Stetman读paper小记:BackdoorBench - A Comprehensive Benchmark of Backdoor Learning

    之前因为参与了实验室后门攻击的项目,阅读了一下这篇关于后门学习的综合性基准测试的研究工作,在此记录一下学习笔记与心得. 1 摘要 这篇文章介绍了一个名为BackdoorBench的基准测试,用于评估后 ...

  2. 【论文合集】Awesome Backdoor Learning

    关于后门攻击&防御的博客与论文. ECCV2022对抗攻击&防御论文汇总 | Li's Blog (tuoli9.github.io) ICLR2022对抗攻击&防御论文汇总 ...

最新文章

  1. Python案例:使用正则表达式的爬虫
  2. 胳膊上无缘无故起了个大包
  3. js计算价格,保留小数
  4. ajax delete 传递参数,springMVC使用PUT、DELETE方法传递参数解决方案
  5. 高晓松侃5G!2019开年大讲揭示运营商的秘密
  6. 百度云文章的链接地址抓取工具
  7. Windows 下的坐标系
  8. 全网首发:JProfiler11运行时找不到库的解决办法
  9. 歌声合成:mid与xml 乐谱文件解析(3)
  10. ACCESS数据库查询
  11. ROS安装教程(ubuntu18.04+melodic版本)
  12. java 命名规则_java中命名规范
  13. C# OpenCV OpenCVSharp应用实例--LCD屏幕脏污检测
  14. android ios 录音功能,iOS与Android的音频互通
  15. python提取文件指定列_python 提取文件指定列的方法示例
  16. 自学网站大全(值得收藏)
  17. BIOS锁定纯UEFI启动的解锁办法
  18. c语言程序设计数独,C语言求解数独
  19. Oracle安装时先决条件检查失败
  20. 【前端实战项目】手把手教你做出小米商城官网(HTML+CSS)

热门文章

  1. IDM下载器最新版本6.32.7
  2. java读写Txt文件
  3. 玩家打卡圣地!首家“ALIENWARE红店”空降三里屯太古里
  4. 《凤凰项目》读书笔记一
  5. 【使用Pytorch实现ResNet网络模型:ResNet50、ResNet101和ResNet152】
  6. Appium原理总结
  7. pytecplot 的安装与启动(tecplot GUI能用但是pytecplot不能用)
  8. 二路归并排序和多路归并排序
  9. 用java怎么做中国象棋的小游戏_java开发中国象棋小游戏
  10. 只要还在路上前行着的,那都是一个个闪闪发光惹人爱的人啊