后门触发器之频域角度——Rethinking the Backdoor Attacks’ Triggers A Frequency Perspective

Rethinking the Backdoor Attacks’ Triggers A Frequency Perspective

尚未发布,收录于arxiv—— 论文链接

本文指出,现有的后门攻击在频域领域上的研究不足。因此本文提出通过频域信息来辨别后门样本,并以此构建了频域不可见的后门样本。

一个直观的想法就是,后门样本与自然图像的概率分布不同。由于后门样本相比自然图像需要添加特定的trigger pattern,从而触发深度模型给出指定的输出结果。这种添加的特定的trigger pattern,也许能够在频域上表达出来。
本文结果也证实了这一点,后门样本相比正常样本,会在频域上存在高频伪影。通过高频伪影能够达到98.50%的后门检出率。

高频伪影

本文首先使用DCT(离散余弦变换)将样本转换到频域。然后绘制热力图。研究发现,自然图像的能量大多集中在低频部分,而后门样本中往往存在较多的高频部分信息。
将一个trigger pattern添加到图像上,就相当于将trigger pattern的频域信息插入正常图像的频域。

比如下图就是正常样本与后门样本的频域对比。下图中,上半部分是从cifar10中取10000张图片生成获得的平均频域图。下半部分从PubFig中取1000张获得的平均频域图。
后门样本的频域对比

后门检测

有了【频域】这一信息,就可以利用这一区别来进行后门样本的检出。
本文使用的是监督学习的方式。因此也就是常见的二分类了。
方式:

  • 数据集:1、使用正常样本。2、对正常样本进行操作,生成存在高频伪影的样本作为后门样本。后门样本的生成就多种多样了——随机添加白色块彩色块噪声,随机混合随机阴影等等方式。这些方式最好和正常的后门样本构建的方式存在相似。数据集的构建就是核心
  • 一个枯燥范围没有新意的训练过程。

结果:
98.5%的后门样本检出率。

这一步我是存在疑虑的。这一步其实和——之前说道的频域的关系不大,其实就是使用正常样本,和现存的后门样本的实现,做一个二分类就行了。所以频域的信息的描述没什么用处。
可能论文是对图像样本进行DCT转换之后再进行训练的吧,但是文中没有提及。

之后还对这种检测方式对不同训练集的迁移性进行了实验,得出较为满意的结果。

创建平滑的触发器 Creating Smooth Triggers

平滑样本——也就是减少样本的高频信息——的创建,是基于优化的方式进行的。这【PS:是因为,直接设计的成功率不高】
看公式可以看出,就是正常的后门样本训练的优化目标函数,加上 一个约束项。这个约束项的目的就是惩罚高频。
在这里插入图片描述
改写目标函数
在这里插入图片描述
这里 r = δ ∗ g r=\delta * g r=δg,其结果是扰动与低通滤波器卷积后的结果。

在这里插入图片描述
通过这种方式构建出的后门样本,可以看出,不存在高频伪影
在这里插入图片描述

然后
从决策边界来看。使用低通滤波器设计的后门样本与正常样本的距离更近,这意味着它更难被检测。
防御方式就是:使用低通滤波器设计的后门样本,加入训练集,进行训练微调。
在这里插入图片描述

个人感觉对该后门样本的检测实验较少,仅仅使用了Detecting AI trojans using meta neural analysis这篇论文中的方式。关于这篇论文我没有看过,就不予评价了。

总结

本文考虑了频域的角度,提出了一种【换汤不换药】的后门检测方式,以及一种新的后门样本生成方式。

  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在MATLAB中,掩蔽是一种在上对信号进行处理的技术。它用于信号处理、图像处理和音处理等领掩蔽的基本思想是将信号从时转换到,然后在上对信号进行操作,最后再将信号从转换回时。这种方法可以有效地处理一些与率相关的问题,例如滤波、降噪、增强等。 在MATLAB中,可以使用FFT(快速傅里叶变换)函数将信号从时转换到,然后对信号进行操作,最后使用IFFT(逆傅里叶变换)函数将信号从转换回时。 以下是一个简单的示例代码,演示如何在MATLAB中进行掩蔽: ```matlab % 生成一个正弦信号 fs = 1000; % 采样率 t = 0:1/fs:1; % 时间向量 f = 10; % 正弦信号率 x = sin(2*pi*f*t); % 正弦信号 % 将信号从时转换到 X = fft(x); % 对信号进行操作(这里以简单的低通滤波为例) cutoff_freq = 50; % 截止率 X_filtered = X; X_filtered(abs(X_filtered) > cutoff_freq) = 0; % 将信号从转换回时 x_filtered = ifft(X_filtered); % 绘制原始信号和滤波后的信号 figure; subplot(2,1,1); plot(t, x); title('原始信号'); subplot(2,1,2); plot(t, x_filtered); title('滤波后的信号'); ``` 在上述示例中,我们首先生成了一个率为10Hz的正弦信号。然后使用FFT函数将信号从时转换到。接下来,我们对信号进行操作,这里以简单的低通滤波为例,将高于截止率的部分置零。最后,使用IFFT函数将信号从转换回时,得到滤波后的信号。最后,我们绘制了原始信号和滤波后的信号。 希望以上内容对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值