1. 论文信息
论文名称 | Invisible Backdoor Attack with Sample-Specific Triggers |
---|---|
作者 | Yuezun Li(香港大学) |
出版社 | ICCV 2021 |
在线pdf 本地pdf | |
代码 | TensorFlow |
简介 | 提出了 sample-specific 以及 invisible 的 trigger。使用数字水印技术生成看不见的后门 |
2. introduction
-
文章的贡献:
提出了 sample-specific and invisible 的后门,并进行大量实验验证了效果
- sample-specific:不同于以往的 trigger 都是统一的图案或者是根据分类条件生成的,本文的 trigger 是根据样本生成的。不同的图像具有不同的 trigger,比较难一检测。
- invisible:生成的 trigger 是隐形的,更难以被检测
-
威胁模型:
- 假设攻击者可以破坏一些训练数据,但是不知道模型的结构,损失的结构,也不能操作训练的过程。
3. method
-
进攻的过程,重点是如何训练出 encoder
一般后门的流程如上图步骤:
- 训练一个用于加毒的 encoder ,并使用该 encoder 生成一些 posion image
- 使用加毒数据训练一个分类器
- 测试后门的情况
-
encoder 的训练过程
训练过程较为简单,使用了数字水印的技术
- 训练的框架参考了 StegaStamp ,除了中间的过程没做数据增强,其他部分基本相同
- 最小化 benign image 和 poisoned image 的区别
- 最小化 target label 产生的 code 和 decoder 产生的 code 之间的区别
- 整个过程就是将,target label 嵌入到 image 中作为 trigger
4. experiments
4.1 评价指标
PSNR 评价指标
PSNR (Peak Signal-to-Noise Ratio) 峰值信噪比
给定一个大小为 m × n m \times n m×n 的干净图像 I I I 和噪声图像 K K K , 均方误差( M S E MSE MSE) 定义为:
M S E = 1 m n ∑ i = 0 m − 1 ∑ j = 0 n − 1 [ I ( i , j ) − K ( i , j ) ] 2 M S E=\frac{1}{m n} \sum_{i=0}^{m-1} \sum_{j=0}^{n-1}[I(i, j)-K(i, j)]^{2} MSE=mn1∑i=0m−1∑j=0n−1[I(i,j)−K(i,j)]2
然后 P S N R ( d B ) PSNR(dB) PSNR(dB)定义为:
P S N R = 10 ⋅ log 10 ( M A X I 2 M S E ) P S N R=10 \cdot \log _{10}\left(\frac{M A X_{I}^{2}}{M S E}\right) PSNR=10⋅log10(MSEMAXI2)
- 其中 M A X I MAX_I MAXI 为图片的最大像素值。一般地,针对 uint8 数据,最大像素值为 255,;针对浮点型数据,最大像素值为 1
上面是针对灰度图像的计算方法,如果是彩色图像,通常有三种方法来计算
- 分别计算 RGB 三个通道的 PSNR,然后取平均值
- 计算 RGB 三通道的 MSE ,然后再除以 3
- 将图片转化为 YCbCr 格式,然后只计算 Y 分量也就是亮度分量的 PSNR
# method 1
diff = im1 - im2
mse = np.mean(np.square(diff))
psnr = 10 * np.log10(255 * 255 / mse)
# method 2
psnr = skimage.measure.compare_psnr(im1, im2, 255)