Adversarial Attack 概述
Reference:
Motivation
在 Network Deploy 的过程中,除了正确率之外,我们还需要其可以能够应对人类的恶意攻击。
举个例子:给某个图片 $x$ 加入 Noise $\Delta x$. $\Delta x$ 小到在表征上人类难以发现。
攻击可以分为 Targeted 和 Non-targeted 的方式,前者使得模型可以朝着攻击者想要的方向预测,后者只要预测结果不一样就好.
How to attack
同样是解一个 optimization 的问题。
注意关注 Non-perceivable 条件 $d(x^0, x) \le \epsilon$ 的具体实现方式:
- L2-norm
- L-infinity (Better in image classification?)
But still needs domain-specific knowledge…
如果没有这个限制条件直接用 Gradient-descent 就可以,其实修改这个限制条件也相当直觉,其中 $fix(x^t)$ 是 $x^t$ 到可行域的投影。
White Box Attack v.s. Black Box Attack?
不知道模型参数的 Black Box Attack 也是有可能的。
如果你知道要被攻击的对象的训练资料,那么可以自训练一个 proxy network 当成是靶子。
但如果不知道训练资料呢?用大量的 unlabelled 资料让被攻击对象 predict,拿到预测结果后去 supervised 训练 proxy network 作为靶子。
可能 Data 才是造成这种可能被攻击的问题的原因…
发展方向
- Universal Adversarial Attack
- 找到一个信号,将这个信号施加到输入数据上,让输出结果全是错的。
- Attack in the Physical World
- Adversarial Reprogramming
- Backdoor in Model
Defense
被动防御
比如说将图片稍微模糊化,图像压缩,基于 Generator 的图片再生成。
这种 Filter 可以加上随机性…
- 主动防御
在最初就训练一个 Robust 的模型。
在训练的过程中就进行攻击,在回传的过程中纠正。
同时还实现了数据增广,但是可能不能抵挡新的攻击方式。