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

对抗攻击基础知识

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:攻击方式是否跟特定图片有关.ui

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

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

  6. Strength:攻击强度.blog

对抗攻击的前因后果

  • 《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.

相关文章
相关标签/搜索