【论文笔记】Pre-activation Distributions Expose Backdoor Neurons

Friday, January 12, 2024
本文共1253字
3分钟阅读时长

⚠️本文是作者P3troL1er原创,首发于https://peterliuzhi.top/posts/%E8%AE%BA%E6%96%87%E7%AC%94%E8%AE%B0/%E5%90%8E%E9%97%A8%E6%94%BB%E5%87%BB/%E8%AE%BA%E6%96%87%E7%AC%94%E8%AE%B0pre-activation-distributions-expose-backdoor-neurons/。商业转载请联系作者获得授权,非商业转载请注明出处!

概述

本论文基于两种防御者的场景进行防御:

  1. 防御者在基于一个被毒化的数据集进行训练,希望训练出干净的模型
  2. 已经训练好了一个感染模型,防御者需要去除其中的毒化神经元

分别对这两种防御场景提出了两种防御方式:

  1. 基于differential entropy的毒化神经元检测
  2. 基于KL散度和BN层记忆的毒化神经元检测

而这两种防御方式都以作者提出的两种假设为前提

并证明论文提出的防御方式是SOTA的

相关工作

相关工作提到了Backdoor attacks、Backdoor defenses、Distributional properties in poisoned dataset。这三个相关工作说明本论文的性质是一篇为了抵抗后门攻击,利用毒化数据集的分布特性进行后门防御的文章。

三个重要定义

后门损失

文内图片

神经元敏感度

文内图片

后门神经元

文内图片

简而言之,后门损失是使用分类器的输出计算的交叉熵损失,神经元敏感度是剪枝前后的后门损失的差值,通过后门神经元是神经元敏感度大于一个预定义阈值的神经元

Differential Entropy

文内图片

离散随机变量的熵公式的连续版本

对熵而言,有一个基本事实:高斯分布的熵是最大的(对于分布在正无穷和负无穷间的实值分布而言)

文内图片

Pre-activation

假设一个模型由线性和非线性函数构成,那么一个模型能定义如下:

文内图片

我们将pre-activation定义为在经过非线性激活函数前第l层第k个神经元的最大值:

文内图片

对pre-activation,有如下观察事实:

文内图片

两个基本假设

假设一保证剪枝能够防御后门攻击

文内图片

假设二保证本论文的理论有效

文内图片 文内图片

这个假设是基于经验(上面的观察事实)归纳所得,简而言之就是每一个pre-activation的分布都是高斯函数的混合,并且两个用于混合的高斯函数都遵循两个限制,并且这两个限制对良性神经元与后门神经元是不同的

场景一的防御:基于熵的剪枝

由上述假设,很容易推导出如下推论:

文内图片

简而言之,意思就是后门神经元的pre-activation的differential entropy小于良性神经元的小于等于标准高斯分布的

原因是高斯分布的熵是最大的,而所有神经元都假设是高斯分布的混合,是近似于高斯分布的分布,但是后门神经元的偏离最大(由观察事实可知),所以这个等式成立

通过这个指标,我们就可以区分后门神经元和良性神经元,从而进行剪枝

场景二的防御:基于BN统计的KL散度剪枝

BN层会统计样本数据用于归一化并进行记忆:

文内图片

因为毒化数据集会使pre-activation的分布严重偏离高斯分布,因此我们可以期望BN层中的统计数据也受到了偏移。

而如果此时我们拥有一小批良性数据,我们就可以获取未受偏移的统计数据

通过计算两个数据之间的KL散度(假设两个数据分布都遵循高斯分布):

文内图片

我们能得到第二个推论:

文内图片

意思是对后门神经元计算的KL散度要大于良性神经元的KL散度,后者趋于(等于)0

如何取阈值τ

场景一

文内图片

意思是,l层的τ = l层的所有神经元的微分熵的均值 - 超参数u * l层l层的所有神经元的微分熵的标准差

场景二

文内图片

意思是,l层的τ = l层的所有神经元的KL散度的均值 - 超参数u * l层l层的所有神经元的KL散度的标准差

实验结果

文内图片

论文的方法有以下优势:

  • Better performance
  • Higher efficiency
  • More robust to hyperparameter choosing