对抗攻击基础知识(完结)

对抗攻击基础知识

https://cloud.tencent.com/developer/news/162169

https://zhuanlan.zhihu.com/p/37260275

什么是对抗攻击

  • 为图片添加噪声,人眼看不出明显差别,但会导致机器识别错误.

攻击模式分类

  1. Black/White box:是否需要模型的先验知识,如算法、参数、训练集.在实际应用中,通过模型A生成对抗样本,进而攻击模型B,若两者是同一个模型则为白盒,否则为黑盒.

  2. Targeted/Non-targeted:对于攻击样本的目标分类是具有指向性还是仅仅使其预测错误即可.

  3. Specific/Universal:攻击方式是否跟特定图片有关.

  4. Perturbation norm:对噪音的限制计算方式.

  5. Learning:单次和逐渐迭代.

  6. Strength:攻击强度.

对抗攻击的来龙去脉

  • 《Intriguing properties of neural networks(神经网络有趣的特性)》:

    1. 神经网络中包含语义信息的部分并不是在每个独立的神经元,而是整个空间.

    2. 神经网络学习到的从输入到输出的映射很大程度上是不连续的.

    3. 验证了将图片适当修改后能欺骗深度学习模型的可能性.

  • 《Explaining and harnessing adversarial examples》:

    1. 产生对抗攻击根本原因的猜测:深度神经网络在高维空间中的线性特征.

    2. 更高效制造对抗样本的方法.

  • 《Threat of Adversarial Attacks on Deep Learning in Computer Vision: A Survey》

如何理解对抗攻击

  • 每层神经元的输出a=g(Wx+b),实际上是二维平面上的旋转、移动和拉伸:

    1. 使用W线性变换

    2. 使用b移动

    3. 使用g非线性变换.

    对于简单的分类问题,在二维平面被拉伸成可以通过直线完成分类的布局,对于较复杂问题,通过增加神经元,在高维空间进行分离.

    img

    img

  • 神经网络通过对空间进行变换后,从最终的表征层中学习,因此包含该语义信息的是整个空间.

  • 在上图的拉伸结果中,距离较大的地方可以认为映射是连续的,但仍缠绕在一起的部分超平面已经无法连续.对抗样本正是跨过了该界限.我理解是要保持与某类点的平均距离尽量近的同时去跨过该界限.

  • 抵御对抗攻击的一个直观方法是将对抗样本加入到训练集中去.

  • GoodFellow提出生成对抗样本的方法:

    1. 根基是目前神经网络为了提高训练效率,所使用的激活函数在局部过于线性.

    2. img

      w是权重向量,x是真实样本,n是 噪音.当n足够小时肉眼无法区分出x的变化,但是若n与w的方向完全一致,则对激活值的计算会产生巨大干扰.

    3. img

      快速梯度符号法FGSM:为了能使n与w方向一致,即损失函数在待构造样本上的梯度方向.ε是调节系数,J是损失函数.在调整损失函数时会用θ - ∂θ来进行,而该方法令x̄ = x +∂x.此方法有一个开源攻击库CleverHans.

如何抵御攻击

  • 修改训练样本:例如通过添加对抗样本到训练集中.

  • 梯度掩码:将原始梯度隐藏起来.

  • 修改训练网络:例如在最后一层使用更加非线性的激活函数、随机化等.可分为完全抵抗和仅检测两种方式.

  • 去噪:在样本输入模型前先去噪,剔除扰动信息.

  • 附加网络:在不改变原有模型的情况下使用额外的网络进行辅助,例如生成式对抗网络GAN.

posted @ 2019-10-14 13:11  Limitlessun  阅读(4728)  评论(0编辑  收藏  举报