COMPASS
写 /在 /前 /面
介绍自己 / 介绍论文
来了嗷,今天是一点都不叛逆、不玩内卷游戏、没有被迫营业的COMPASSer熊晖时间。很高兴可以和大家分享论文。今天我分享的这篇论文是来自ICLR 2022的一篇文章:
“
ADVERSARIAL UNLEARNING OF BACKDOORS VIA IMPLICIT HYPERGRADIENT
”
这篇文章在我手上已经一年了,我亲自看着它从一篇籍籍无名的论文到ICLR接受,再想到我的科研还在原地踏步我真的哭死。那么这篇“养成系”论文到底有什么出彩之处呢?今天我们就来一起看看。
说 / 正 / 事 / 专 / 用 / 分 / 割 / 线
神经网络后门攻击的原理我已经在过去的几期推送中解释过了,这里的背景知识我们就不赘述了,我们简单了解一下Unlearning。
我从是在42nd IEEE Symposium of Security and Privacy的一篇论文“Machine Unlearning”
了解到Unlearning技术。Unlearning是learning的一个逆过程。如果将模型学习数据的分布过程视为一个“记忆数据”的过程,那么Unlearning就是一个模型的“遗忘数据”的过程。对于一个学习用户隐私数据的模型,在用户和服务提供商解除关系时,服务提供商有义务将保存在公司的用户的隐私信息销毁,当然也包括将模型中的“记忆”销毁,这时就会用到Unlearning技术,它可以在最小的模型性能损失下抹去学习到的数据。
到目前为止我接触到了三种Unlearning算法,最简单的就是将去除被遗忘数据的数据集拿来重新训练模型,还有第一篇推送中分享的NC的模型净化算法也介绍了一种简单的Unlearning方法,以及今天我要和大家介绍的方法。
本篇文章提出了一个有理有据的后门攻击防御方法,文章中的方法利用了Unlearning的特性,用来遗忘模型学习到的后门攻击触发器。
为了实现Unlearning,文章提出了优化的目标:
其中δ为触发器,x为输入,yi为输入的正确类,f为模型,θ为模型的权重,L(.)为损失函数。作者将模型的净化过程视为一个最小最大问题,即最小化模型参数和最大化触发器对模型判决的扰动。这也是本文的核心目标。根据这个目标文章作者提出了内部优化(生成触发器)和外部优化(调整模型参数)。
这个优化目标和先前的工作相比有三点不同(1)这个优化目标是先前工作的集大成者。不同于以往的方法将内部优化和外部优化分开解决,本文将内部优化和外部优化联系起来共同求解。(2)本文对触发器没有任何设定,这样可以提升通用性,解决更多问题。(3)该公式提供了后门鲁棒性的定量度量。证明在文章的第五节,内容比较多我们这里就不赘述了。感兴趣的观众老爷可以去文章中研究。
用什么样的算法可以实现这个优化目标呢?文章提出了对应的Unlearning算法。首先,将优化目标中的函数用ψ(θ)代替,则需要对ψ(θ)求导:
∇1为对损失函数第一元求一阶偏导,∇2为对损失函数第二元求一阶偏导,下面第三个大括号里第一个雅可比矩阵转置等价于下面的式子。
∇21为对损失函数第一元求二阶偏导,∇21,2为对损失函数第一元求一阶偏导后对第二元求二阶偏导,∇δ(θ)的值可以由多种算法求解,文章中使用的是fixed-point算法。
整体算法如图下图所示:
在迭代的过程中首先生成触发器,生成的触发器参与到模型的Unlearning过程中去。最终产生净化的模型。
接下来就是激动人心的实验环节。本文设计了三项实验证明提出的算法I-BAU的有效性,稳定性和敏感性。文章使用的后门攻击方式为BadNets、Blend、l0 inv、l2 inv、Smooth、Troj SQ和Troj WM。后门攻击目标为单触发器单目标,单触发器all to all,多触发器多目标。对比的防御算法为:Neural Cleanse、Deepinspect、TABOR、Fine-pruning、Neural Attention Distillation和
Differential Privacy training使用的数据集为CIFAR10和GTSRB,模型架构如下。
第一个实验探究I-BAU的有效性,作者分别在单触发器和多触发器两种情形下使用两个数据集使用不同方法污染模型,并用各类方法进行防御,得到的结果如下:
数据集CIFAR10下,单目标攻击防御的结果
数据集GTSRB下,单目标攻击防御的结果
上表为数据集CIFAR10下,多目标攻击防御的结果,x表示没有检测出攻击。下表为数据集GTSRB下,多目标攻击防御的结果
从结果上可见I-BAU在尽可能地保留了模型准确率的情形下降低了模型的攻击成功率。
第二个实验是验证了I-BAU的稳定性,在相同的攻击条件下,作者选择了一个简单的Unlearning算法和I-BAU进行对比,结果如下图:
可见I-BAU在可以在尽可能保护模型准确率的情况下快速净化模型,而简单的Unlearning算法的ASR呈现不稳定的特点。
第三个实验验证了I-BAU的敏感性,首先是对不同规模污染数据训练的模型的敏感性,实验结果如下:
可见即使是小规模污染数据训练的模型,I-BAU也可以将其很好地净化。
然后是对不同规模的纯净数据,I-BAU的模型净化效果进行测试,结果如下:
可见I-BAU可以在低数据成本的情况下实现后门攻击的防御。
作者还追加了一个防御方法运行速度的对比,结果如下:
I-BAU对模型进行净化在10s以内,可以说是相当快速了。
当然在附录里面还有I-BAU“暴打”非加性(如生成类)后门攻击的实验,效果也很不错,这里就不赘述了。
这玩意真的这么勇?让我看看!
接下来就是论文复现环节,我们不按照论文中的数据集和模型来。我们这里使用数据集CIFAR10和模型Resnet18(受blend攻击)来测试I-BAU的可行性。
可喜的是文章提供了源代码,还是jupyter-notebook版本的,可视化效果很好,作者提供的模型防御结果如下:
额,好像没有我想象中的那么好,不要紧,先换上我的污染模型,再多净化几轮,效果应该会好很多。
接下来我们换用Resnet18(blend attack)作为污染模型,经过净化后的结果如下:
额,好像其实没咋净化到模型呢。
本文是一篇ICLR2022的文章,权威性不言自明,但是看它的peer review,这篇文章入选的经历也是一波三折,最终踩线入选的。当时reviewer给出了两个让我印象深刻的drawback:
一是在生成触发器时假定触发器和原图的关系是直接加性是不太合理的,这是因为有很多后门攻击方式原图和触发器的叠加都是非线性的。但是原文作者认为这是为提高防御通用性的举措。
二是虽然文章中提出这个优化目标有解,但是也是在一定条件下成立,模型也难免会有不满足条件的情况,这时本文的防御算法效力会大打折扣。(虽然我现在还没遇到这种情况)
随后复现和测试时我们发现了这个方案似乎并不那么令人满意,这是因为这个触发器生成算法并没有针对性,即不是针对目标类生成触发器,且没有考虑数据增强的问题。我后面修改了一下代码,这个算法的效果还是相当令我满意的。
其次关于算法的运行速度,我使用的过程中感觉其实并没有那么快(至少10s完不成)。可能是我使用了更大的模型的缘故。
总之,虽然有些许瑕疵,但是这无疑是我目前使用到的最好的模型净化方法,是一种真正的Unlearning,这个算法也让我的科研进了一大步。
结 / 束 / 逼 / 逼 / 专 / 用 / 分 / 割 / 线
营业结束,提桶跑路
原文:https://arxiv.org/pdf/2110.03735.pdf
原文始发于微信公众号(COMPASS Lab):隐式超参数的后门遗忘