神经网络在过去的几年和几十年已经获得了长足的进步,神经网络的应用已经遍布我们生活的各个角落。但是与此同时,也有人发现神经网络并不像我们预期的那么具有鲁棒性,仅仅在图片中添加一个微笑的扰动就可以改变神经网络最后的预测结果,这些技术被称为对抗攻击。对抗攻击是指在干净的图片中添加微小的扰动,使神经网络(DNN)产生误判,但人的肉眼却无法察觉的一项技术,最早是在Szegedy等人在《Intriguing properties of neural networks》中提出。
在这篇论文发表后,就激起了大家对对抗攻击研究的热情,于是就不断的有新的对抗攻击方法被提出,力求将网络攻击后的准确率攻击的越低越好,但与此同时,又不断的有人提出了如何改进模型结构或者新的训练方法,来提升模型面对各种对抗攻击方法时的鲁棒性,随着大家的不断深入的研究,这也变成了一个功与防,矛与盾的问题。接下来,我也将对我了解到了攻击或者防御方法做一个大概的梳理。本文的内容很大程度上参考了这篇综述:Threat of Adversarial Attacks on Deep Learning in Computer Vision: A Survey
分类如果对对抗攻击方法按照是否知道被攻击网络的结构或者参数来分类,那么可以分为白盒攻击和黑盒攻击。在一般来说,如果攻击的时候有利用到被攻击网络的梯度信息,那么这个攻击方法就是一种白盒的攻击方法,因为白盒攻击知道了被攻击网络模型的具体结构和参数,所以攻击的强度也会很大,与此对应的就是黑盒攻击,对于黑盒攻击来说,攻击者获取不到模型的各种细节,只知道模型输入和输出,整个模型对他来说就是一个黑漆漆的盒子,这也是黑盒这个名字的来源。虽然白盒攻击的强度会比黑盒攻击高很多,但是在现实情况下,黑盒攻击更具有现实意义,因为攻击者其实很难直接的将你的模型拿来做分析,进行白盒攻击。
如果将对抗攻击方法按照攻击采取的形式,那么可以将网络的攻击分为目标攻击和非目标攻击。这两种攻击的主要区别就是对模型的攻击方向是不是确定的,例如说,有一张猫