数据浓缩下的后门攻击
1. 摘要
数据集蒸馏已成为训练机器学习模型时提高数据效率的一项重要技术。它将大型数据集的知识封装到较小的综合数据集中。在这个较小的蒸馏数据集上训练的模型可以获得与在原始训练数据集上训练的模型相当的性能。然而,现有的数据集蒸馏技术主要旨在实现资源利用效率和模型效用之间的最佳权衡。由此产生的安全风险尚未得到探讨。这项研究对图像域中的数据集蒸馏模型所蒸馏的数据进行训练的模型进行了第一次后门攻击。具体来说,我们在蒸馏过程中而不是在执行所有先前攻击的模型训练阶段将触发器注入到合成数据中。我们提出两种类型的后门攻击,即 NAIVEATTACK 和 DOORPING。
NAIVEATTACK 只是在初始蒸馏阶段向原始数据添加触发器,而 DOORPING 在整个蒸馏过程中迭代更新触发器。我们对多个数据集、架构和数据集蒸馏技术进行了广泛的评估。实证评估表明,NAIVEATTACK 在某些情况下取得了不错的攻击成功率(ASR)分数,而 DOORPING 在所有情况下都达到了较高的 ASR 分数(接近 1.0)。此外,我们进行了全面的消融研究,以分析可能影响攻击性能的因素。最后,我们评估了针对后门攻击的多种防御机制,并表明我们的攻击实际上可以绕过这些防御机制。
2. 序言
PASS
3. 后门攻击
3.1 威胁模型
攻击场景假设:
购买的浓缩数据集里有毒
攻击者能力:
控制蒸馏过程
攻击者目标:
将触发器注入到浓缩数据集中
攻击挑战:
需要确保有效的同时人工检查无法区分。
3.2 简单攻击
就是把某些图片加上触发器后标记为某个错误标签, 浓缩时正常浓缩。
3.3 DOORPING
动机: 简单数据中毒之后浓缩效果不好,触发器 t 是预先定义的,无法调整;因此在更新过程中没有得到有效保留。为了提高下游模型的后门攻击性能,必须在每个时期对触发器进行微调。
什么意思,就是每轮,在训练之前,先更新triiger,trigger怎么更新:
- 获得trigger,丢入神经网络!得到输出层前一层的输出!
- 获得输出前k大的输出单元!tok-k
- 把这top-k个放大 α \alpha α倍!
- 计算这个loss MSE(out, α \alpha α*out)
- 更新trigger!
over
4 实验结果
全是100%,但是我比较好奇,这样bp trigger,trigger数值都超出0~255了,是否合理。