热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

深度学习的黑魔法防御术:恶意样本(AdversarialExample)的防御策略综述

随着深度学习(DeepLearning)研究的深入,相关应用已经在许多领域展现出惊人的表现。一方面,深度神经网络࿰

随着深度学习(Deep Learning)研究的深入,相关应用已经在许多领域展现出惊人的表现。一方面,深度神经网络(DNN)的强大能力着实吸引着学术界和产业界的眼球。另外一方面,深度学习的安全问题也开始引起广泛地关注。对于一个给定的深度神经网络,经过训练,它可能在具体任务上(例如图像识别)表现出甚至超过人类的准确率。但是在原本能够被正确分类的图像中引入稍许(人眼不易察觉)扰动,神经网络模型就可能被误导,从而得出错误的分类结果。经过精心调整的能够误导神经网络模型的输入就被称为是恶意样本(Adversarial Example),或简称AE。在此前的文章中,我们已经以图像领域的应用为例介绍了如何产生AE的基本方法(本文将不再赘述这部分内容)。AE对于神经网络的威胁是相当致命的,尤其在某些重要的应用领域,例如自动驾驶、医疗诊断等,恶意篡改的输入很有可能导致不堪设想的后果。因此,如何抵抗或者防御AE的攻击也已经成为学术界和产业界关注的热点。如果把AE攻击比作哈利波特魔法世界里的黑魔法,那么抵抗或者防御AE攻击的方法,无疑就是魔法学校的必修课——黑魔法防御术。


图1-1 在引入人眼不可见的扰动后,本来是cat的图片将被错误的识别成狗(吉娃娃)

欢迎关注白马负金羁的博客 http://blog.csdn.net/baimafujinji,鉴于目前网上盗贴、洗稿等现象严重,为保证公式、图表得以正确显示,强烈建议你从该地址上查看原版博文。本博客主要关注方向包括:数字图像处理、算法设计与分析、数据结构、机器学习、数据挖掘、统计分析方法、自然语言处理。

 


一、关于AE的定义、分类:基本回顾

对于一个已经训练好的深度神经网络f,令\mathbf{x}表示(未经篡改的)原始输入,一个恶意样本\mathbf{x}^{adv}是由\mathbf{x}得到的,可以使得f做出错误输出的、经过扰动的的输入。而且,为了隐匿这种恶意的扰动,\mathbf{x}^{adv}的生成相当于是求解下列带有限制的优化问题:

\min_{\mathbf{x}^{adv}}\left \| \mathbf{x}^{adv}-\mathbf{x} \right \|_{p}\\ s.t.\; \; y'=f(\mathbf{x}^{adv}), \; y=f(\mathbf{x}), \; and \; y\neq y'

其中,yy'分别表示将\mathbf{x}\mathbf{x}^{adv}输入到f后所得之预测结果。

为了评估恶意扰动的程度,\mathit{L}_p范数常被用来定量描述\mathbf{x}\mathbf{x}^{adv}之间的差异。由此,根据上述公式中p取值的不同,主流的AE生成算法常被分成三类:


  • \mathit{L}_0攻击:AE生成过程中,在保证DNN被成功误导的同时,力求改变尽量少的像素数点数;
  • \mathit{L}_2攻击:AE生成过程中,在保证DNN被成功误导的同时,力求使得\mathbf{x}\mathbf{x}^{adv}之间的欧几里得距离最小;
  • \mathit{L}_\infty攻击:AE生成过程中,在保证DNN被成功误导的同时,力求使得变动最大的像素所改变的幅度最小(即min(max(所有改动的幅度)))。

注意,AE攻击广泛存在于图像、视频、声音、甚至文本等多个应用场景中,本文将仅限于讨论图像领域的AE攻击。

\mathit{L}_\infty攻击是最早被引入的攻击,典型的\mathit{L}_\infty攻击包括FGSM、IGSM、以及CW-L_\infty等。事实上,\mathit{L}_\infty的生成效率较高(计算较快),成功率略差,而且生成图像中会引入类似高斯噪声一样的扰动(特别是为了保证较高的成功率,这种扰动可能较为明显);

\mathit{L}_2攻击典型代表包括DeepFool和CW-L_2等。通常,\mathit{L}_2攻击所引入的扰动更加细腻和轻微(人眼很难察觉),因此也最常被adpative attacker用来发动‘自适应式攻击’(或称白盒攻击),这一点我们后续还会讨论。相应的,\mathit{L}_2攻击需要更高的计算量(也即效率较低)。但有研究【1】已经指出\mathit{L}_2攻击所生成的AE,各个篡改点之间的“完整性”对于发挥恶意目的至关重要,一些简单的可以破坏其“完整性”的防御策略(例如【1】中的Erase-and-Restore)即可有较大成功率抵御这种攻击。

\mathit{L}_0攻击(典型代表包括JSMAl和CW-L_0等)只会限定篡改的像素数量,而不会限定修改的幅度(这一点很多文献【2】【3】中都有强调):

"Such attack techniques limit the number of alteredpixels, but not the amplitude of pixels. ... the obtained adversarial example maypresent easy-to-notice distortions. "【2】

"... the second type of adversarialexamples are allowed to change only a few input coordinates, but each one ofthem can change a lot. "【3】

事实上,正如文献【4】中所指出的,如果一味追求修改数量尽可能少的像素点,那么放松修改幅度的要求就是不得不做出的妥协。而这恰恰是\mathit{L}_0攻击的一个弱点,文献【4】于是据此提出了一种有效的防御策略。尽管\mathit{L}_0攻击引入的扰动有时容易被人眼察觉,但这种攻击仍然是现实中最应被重视的一种攻击类型,此前的文献中【2】【5】也反复强调这一点,并给出了如下一些解释:

“it can still be exploited to launch an effective attack when the human interaction is not in con-sideration. ”【2】

“physical obstructions in images or malicious splicing of audio or video files are realistic threats that can be modeled as L0 noise, whereas L2 attacks may be more difficult to carry out in the physical world.”【5】

尤其根据【5】的观点,可知\mathit{L}_0攻击是发动physical attack时所最被需要的一种手段,因此关于\mathit{L}_0攻击(及其防御)的讨论是一个非常值得探讨方向。事实上,我们已经看到诸多专门讨论\mathit{L}_0攻击防御方法的论文,例如【4】【5】等。(当然,既然有专门研究某一类攻击防御的论文,自然也有一些考虑部分类型的论文,例如【2】中就仅考虑\mathit{L}_2\mathit{L}_\infty,还一些文章则通盘考虑所有类型的攻击,例如【6】中就讨论了\mathit{L}_0\mathit{L}_2\mathit{L}_\infty三种类型的攻击)

此外,关于\mathit{L}_0攻击的其他一些研究也开始专注讨论如何在“修改数量尽可能少的像素点”和“使得篡改更加不易被发现”二者之间做权衡,例如【7】【8】等。

 


二、实践中恶意样本防御的策略设计思路

面对来势汹汹的AE威胁,实践中如果要设计防御策略来对抗AE攻击,我们可以从哪些方向来考虑呢?从分类学上来看,可以将方法分成两类:defense和detect。注意这里的defense做狭义上的理解(我们之前笼统地将防御广义上应该包括detect,这里我们将defense和detect分开来看),它指的是想办法让DNN面对恶意输入时,仍然可以输出正确的结果。而detect的意思,就是面对一个输入,我们设法判断其是否为恶意的,从而使得DNN免受AE的侵扰。

2.1 Defense

此时,方法又可以继续分成两类。一类是设法增强DNN自身对抗AE的能力。例如,【9】【10】中设计了基于adversarial training的方法;【11】中提出了防御性蒸馏的方法;【12】中提出了用温度计编码法来辅助adversarial training;【13】中提出用多级JPEG压缩图像来重新训练模型从而提升模型防御能力的方法。

另外一种方法则直接作用于输入的图像(因此,可以使得已经训练好的模型免受重新训练之类的困扰),它们被称为Input transformation 或者 Pre-processing 。在这类方法中,人们设想AE中添加的扰动类似于一种“刻意的噪声”,于是纷纷设想从传统的、丰富的去噪方法中搜索解决方案。例如:


  • 【14】【15】中提出基于小波变换的方法作为一种防御;
  • 【16】【17】中提出基于JPEG压缩/去噪的方法作为一种防御;
  • 【18】提出基于Autoencoders的方法作为一种防御;
  • 【19】提出基于PCA的方法作为一种防御;
  • 【20】中提出采用中值滤波作为一种防御;
  • 最后,【4】中提出采用改进的Inpainting方法作为一种防御;【5】中提出使用基于傅里叶变换的方法来作为一种防御;二者都之针对\mathit{L}_0攻击进行讨论。

2.2 Detect

关于AE检测这方面的文章也有不少,而且其中很多还杂糅地使用了很多Input transformation的方法来作为预处理。由于AE变换前后的得到的DNN预测结果会有差异,所以这类文章往往会以此为特征训练分类器来进行AE检测。例如:


  • 【1】使用Erase-and-Restore方法来对图像进行预处理,进而实现AE检测;
  • 【21】使用图像旋转来作为预处理器;
  • 【22】使用Autoencoders来作为预处理器;
  • 【23】使用PCA来作为预处理器;
  • 【6】综合使用中值滤波、bit-depth reduction等多种方法作为预处理器;
  • 【2】中提出根据“熵”的大小来对不同图像选择不同的预处理器。

 


三、矛盾之争

上述这些defense和detect的方法真能保全DNN万无一失吗?事实上,攻击与防御的矛盾之争从未停歇。正所谓“道高一尺,魔高一丈”!研究人员通过升级攻击方法,揭示在现实中部署DNN仍然面临诸多威胁及不确定性因素。例如,【24】中即提出了一种可以令防御性蒸馏(【11】)失效的攻击方法。在更多针对Detection的研究中,一种更厉害的攻击被称为Adaptive attack(或称白盒攻击)。此时,我们假设存在一个恶意攻击者,他不仅知道我们要保护的DNN的所有信息,更对已经部署的保护策略了如指掌。在这种情况下,很多保护措施都被证明不再起效。例如:


  • 【25】中升级的Adaptive attack成功攻破了【22】中提出的保护措施;
  • 【26】中给出的Adaptive attack成功攻破了【6】中提出的保护措施;
  • 【27】中作者更是一次性攻破了十种AE检测方案。

但是,【1】中的方法被证明可以抵御【26】中的Adaptive attack;【24】中的方法则被证明可以抵御【27】中的Adaptive attack ... ... 由此可见攻击与防御的矛盾之争还将继续上演。

 




参考文献

【01】Exploiting the Sensitivity of L2 Adversarial Examples to Erase-and-Restore. ASIACCS, 2021.

【02】Detecting adversarial image examples in deep neural networks with adaptive noise reduction.TDSC, 2018.

【03】A simple explanation for the existence of adversarial examples with small Hamming distance. Arxiv, 2019.

【04】Exploiting the Inherent Limitation of L0 Adversarial Examples. RAID, 2019.

【05】Thwarting adversarial examples: An L0-robust sparse Fourier transform. NeurIPS, 2018

【06】Feature Squeezing: Detecting Adversarial Examples in Deep Neural Networks. NDSS, 2018

【07】SparseFool: a few pixels make a big difference. CVPR, 2019

【08】Sparse and Imperceivable Adversarial Attacks. ICCV, 2019

【09】Towards deep learning models resistant to adversarial attacks. ICLR, 2018

【10】Improving the robustness of deep neural networks via stability training. CVPR, 2016

【11】Distillation as a Defense to Adversarial Perturbations against Deep Neural Networks. SP, 2016

【12】Thermometer encoding: One hot way to resist adversarial example. ICLR, 2018

【13】Shield: Fast, practical defense and vaccination for deep learning using JPEG compression. KDD, 2018

【14】Deflecting adversarial attacks with pixel deflection. CVPR, 2018

【15】CIIDefence: Defeating Adversarial Attacks by Fusing Class-Specific Image Inpainting and Image Denoising. ICCV, 2019

【16】Countering adversarial images using input transformations. ICLR, 2018

【17】Protecting JPEG images against adversarial attacks. DCC, 2018

【18】REMIX: Mitigating Adversarial Perturbation by Reforming, Masking and Inpainting. SP Poster, 2018

【19】Enhancing Robustness of Machine Learning Systems via Data Transformations. Arxiv, 2017

【20】No Bot Expects the DeepCAPTCHA! Introducing Immutable Adversarial Examples with Applications to CAPTCHA. TIFS, 2017

【21】Detecting Adversarial Examples through Image Transformation. AAAI, 2018

【22】MagNet: a two-pronged defense against adversarial examples. CCS, 2017

【23】Adversarial examples detection in deep networks with convolutional filter statistics. ICCV, 2017

【24】Towards evaluating the robustness of neural networks. SP, 2017

【25】Magnet and “efficient defenses against adversarial attacks" are not robust to adversarial examples. Arxiv, 2017

【26】Adversarial example defenses: Ensembles of weak defenses are not strong. WOOT, 2017

【27】Adversarial examples are not easily detected: Bypassing ten detection methods. AIS, 2017

 

 

 


推荐阅读
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 【论文】ICLR 2020 九篇满分论文!!!
    点击上方,选择星标或置顶,每天给你送干货!阅读大概需要11分钟跟随小博主,每天进步一丢丢来自:深度学习技术前沿 ... [详细]
  • 人工智能推理能力与假设检验
    最近Google的Deepmind开始研究如何让AI做数学题。这个问题的提出非常有启发,逻辑推理,发现新知识的能力应该是强人工智能出现自我意识之前最需要发展的能力。深度学习目前可以 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • 阿里Treebased Deep Match(TDM) 学习笔记及技术发展回顾
    本文介绍了阿里Treebased Deep Match(TDM)的学习笔记,同时回顾了工业界技术发展的几代演进。从基于统计的启发式规则方法到基于内积模型的向量检索方法,再到引入复杂深度学习模型的下一代匹配技术。文章详细解释了基于统计的启发式规则方法和基于内积模型的向量检索方法的原理和应用,并介绍了TDM的背景和优势。最后,文章提到了向量距离和基于向量聚类的索引结构对于加速匹配效率的作用。本文对于理解TDM的学习过程和了解匹配技术的发展具有重要意义。 ... [详细]
  • 也就是|小窗_卷积的特征提取与参数计算
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了卷积的特征提取与参数计算相关的知识,希望对你有一定的参考价值。Dense和Conv2D根本区别在于,Den ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • Android工程师面试准备及设计模式使用场景
    本文介绍了Android工程师面试准备的经验,包括面试流程和重点准备内容。同时,还介绍了建造者模式的使用场景,以及在Android开发中的具体应用。 ... [详细]
  • Learning to Paint with Model-based Deep Reinforcement Learning
    本文介绍了一种基于模型的深度强化学习方法,通过结合神经渲染器,教机器像人类画家一样进行绘画。该方法能够生成笔画的坐标点、半径、透明度、颜色值等,以生成类似于给定目标图像的绘画。文章还讨论了该方法面临的挑战,包括绘制纹理丰富的图像等。通过对比实验的结果,作者证明了基于模型的深度强化学习方法相对于基于模型的DDPG和模型无关的DDPG方法的优势。该研究对于深度强化学习在绘画领域的应用具有重要意义。 ... [详细]
  • {moduleinfo:{card_count:[{count_phone:1,count:1}],search_count:[{count_phone:4 ... [详细]
  • OCR:用字符识别方法将形状翻译成计算机文字的过程Matlab:商业数学软件;CUDA:CUDA™是一种由NVIDIA推 ... [详细]
  • Opencv提供了几种分类器,例程里通过字符识别来进行说明的1、支持向量机(SVM):给定训练样本,支持向量机建立一个超平面作为决策平面,使得正例和反例之间的隔离边缘被最大化。函数原型:训练原型cv ... [详细]
  • ICRA2019最佳论文  Making Sense of Vision and Touch: SelfSupervised Learning of Multimodal Representatio
    文章目录摘要模型架构模态编码器自监督预测控制器设计策略学习控制器设计实验结论和展望会议:ICRA2019标题:《MakingSenseofVision ... [详细]
author-avatar
na点儿破事凶
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有