Defending Adversarial Attacks by Correcting logits
概
作者认为, adversarial samples 和 natural samples的分布是不同, 结果二者的输出logits的分布也是不同的, 那么能否通过此来还原正确的类别呢?
主要内容
思路是这样子的, 假设原本的网络为\(f(\cdot)\), natural样本\(x\)和adversarial样本\(x'\)分别得到\(z\)和\(z'\), 根据假设(发现)二者的分布是不同的. 构建一个新的判别器\(g(\cdot)\), 将\(z\)和\(z'\)作为新的输入, 自然我们希望natrual样本的\(z\)的输出还是\(g(z)=z\), 而adversarial样本的\(z'\)被转换为\(g(z')=z\). 如果能够做到, 那么\(g(\cdot)\)就成为了一个防御手段.
实验发现, 这种想法是有效的, 且效率非常高, 甚至能够提高clean accuracy !
实验
论文没有开放代码, 个人的实验结果不是很理想, 当然可能和在小数据集上跑有关系. 另外论文没有说清楚adversarial samples是如何构造的. 因为如果是单纯通过原有的网络构造对抗样本再利用\(g(\cdot)\)恢复是不可靠的, 应该在\(g \circ f\)的基础上构造.