写点什么

深度学习之对抗样本问题

  • 2015-07-27
  • 本文字数:2337 字

    阅读完需:约 8 分钟

2006 年,Geoffrey Hinton 提出了深度学习。受益于大数据的出现和大规模计算能力的提升,深度学习已然成为最活跃的计算机研究领域之一。深度学习的多层非线性结构使其具备强大的特征表达能力和对复杂任务的建模能力。最近几年,深度学习的发展也带动了一系列的研究。尤其是在图像识别领域,在一些标准测试集上的试验表明,深度模型的识别能力已经可以达到人类的水平。但是,人们还是会产生一个疑问,对于一个非正常的输入,深度模型是否依然能够产生满意的结果。的确,最近有研究者开始关注深度模型抗干扰能力的研究,也就是关于深度学习对抗样本的问题。对于这一新的问题,本文对它进行一个简单的介绍。文章由黄立威、张天雷整理。

什么是深度学习对抗样本

Christian Szegedy 等人在 ICLR2014 发表的论文中,他们提出了对抗样本(Adversarial examples)的概念,即在数据集中通过故意添加细微的干扰所形成的输入样本,受干扰之后的输入导致模型以高置信度给出一个错误的输出。在他们的论文中,他们发现包括卷积神经网络(Convolutional Neural Network, CNN)在内的深度学习模型对于对抗样本都具有极高的脆弱性。他们的研究提到,很多情况下,在训练集的不同子集上训练得到的具有不同结构的模型都会对相同的对抗样本实现误分,这意味着对抗样本成为了训练算法的一个盲点。Anh Nguyen 等人在CVPR2015 上发表的论文中,他们发现面对一些人类完全无法识别的样本(论文中称为Fooling Examples),可是深度学习模型会以高置信度将它们进行分类。这些研究的提出,迅速抓住了公众的注意力,有人将其当做是深度学习的深度缺陷,可是 kdnuggets 上的一篇文章 (Deep Learning’s Deep Flaws)’s Deep Flaws 指出,事实上深度学习对于对抗样本的脆弱性并不是深度学习所独有的,在很多的机器学习模型中普遍存在,因此进一步研究有利于抵抗对抗样本的算法实际上有利于整个机器学习领域的进步。

深度学习对于对抗样本表现的脆弱性产生的原因

是什么原因造成了深度学习对于对抗样本表现出脆弱性。一个推断性的解释是深度神经网络的高度非线性特征,以及纯粹的监督学习模型中不充分的模型平均和不充分的正则化所导致的过拟合。 Ian Goodfellow 在 ICLR2015 年的论文中,通过在一个线性模型加入对抗干扰,发现只要线性模型的输入拥有足够的维度(事实上大部分情况下,模型输入的维度都比较大,因为维度过小的输入会导致模型的准确率过低),线性模型也对对抗样本表现出明显的脆弱性,这也驳斥了关于对抗样本是因为模型的高度非线性的解释。相反深度学习的对抗样本是由于模型的线性特征。

深度学习对抗样本泛化的原因

很多的时候,两个模型即使有不同的结构并在不同的训练集上被训练,一种模型的对抗样本在另一个模型中也同样会被误分,甚至它们还会将对抗样本误分为相同的类。这是因为对抗样本与模型的权值向量高度吻合,同时为了训练执行相同的任务,不同的模型学习了相似的函数。这种泛化特征意味着如果有人希望对模型进行恶意攻击,攻击者根本不必访问需要攻击的目标模型,就可以通过训练自己的模型来产生对抗样本,然后将这些对抗样本部署到他们需要攻击的模型中。

深度学习的对抗训练

所谓深度学习对抗训练,就是通过在对抗样本上训练模型。既然深度学习的对抗样本是由于模型的线性特征所导致,那就可以设计一种快速的方法来产生对抗样本进行对抗训练。Szegedy 等人的研究认为对抗样本可以通过使用标准正则化技术解决,可是Goodfellow 等人使用常见的正则化方法,如dropout, 预训练和模型平均进行测试,并没能显著地提高深度模型对于对抗样本的抗干扰能力。根据神经网络的 Universal Approximation Theory ,至少拥有一个隐层的神经网络只要拥有足够的隐层单元,就可以任意逼近任何一个非线性函数,这是浅层模型所不具备的。因此,对于解决对抗样本问题,Goodfellow 等人认为深度学习至少有希望的,而浅层模型却不太可能。Goodfellow 等人通过利用对抗样本训练,对抗样本上的误分率被大大降低。同时他们发现选择原始模型产生的对抗样本作为训练数据可以训练得到具有更高抵抗力的模型。此外,他们还发现,对于误分的对抗样本,对抗训练得到的模型的置信度依然很高。所以通过对抗训练能够提高深度学习的对于对抗样本的抗干扰能力。

几个深度学习对抗样本的事实

对于深度学习对抗样本,Ian Goodfellow 认为目前存在一些误解,为了对这些误解进行进一步澄清,Kdnuggets 网站的编辑邀请 Goodfellow 撰文 Deep Learning Adversarial Examples – Clarifying Misconceptions 。文章指出对抗样本在实际当中是经常可能出现的,而且在小的数据当中也能够经常被发现,例如试图骗过垃圾邮件检测系统的垃圾邮件。Goodfellow 还指出识别一个对抗样本,然后拒绝对它进行分类并不是一个最佳的选择,通过有效的算法,能够克服数据干扰,正确识别对抗样本中的信息才是最终目的。此外,Goodfellow 指出,人类并不会像现代机器学习算法那样被对抗样本所影响。如果我们的大脑会和机器学习模型一样犯同样的错误,那么由于对抗样本的在不同模型上的泛化属性,机器学习模型的对抗样本将会使我们产生视觉错乱。

总之,对抗样本是一个非常难的问题,研究如何克服它们可以帮助避免潜在的安全问题,并且帮助机器学习算法提高解决问题的准确性。某种意义上来说,设计一个易于训练的线性模型和设计一个能够抵御对抗干扰的非线性模型之间存在根本的矛盾,从长远来看,设计更强大的优化方法以训练更加非线性的模型是未来需要努力的方向。


感谢徐川对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。

2015-07-27 08:457825
用户头像

发布了 268 篇内容, 共 125.9 次阅读, 收获喜欢 24 次。

关注

评论

发布
暂无评论
发现更多内容

Android应届毕业生“过五关斩六将”,移动端开发技术

android 程序员 移动开发

Android开发之旅:HelloWorld项目的目录结构,1个月学会Android开发

android 程序员 移动开发

Android开发人员不得不收集的代码(持续更新中),重磅来袭

android 程序员 移动开发

Android开发必看:一文教你完全理解DataBinding框架(上

android 程序员 移动开发

Android开发最担心,在乎的三个问题!你有几个,android直播原理

android 程序员 移动开发

Android开发项目实战:实现折叠式布局,2021年是做Android开发人员的绝佳时机

android 程序员 移动开发

Android应用开发进阶,android开发从入门到精通项目案例版

android 程序员 移动开发

Android开发38岁被裁,本以为稳进Top3,今天已经是失业第42天

android 程序员 移动开发

Android开发1年背了几十份面经还是连挂了6个面试,拿到最终字节腾讯offer后我总结了这些坑点

android 程序员 移动开发

Android开发必看:一文教你完全理解DataBinding框架(下

android 程序员 移动开发

Android开发把-LiveData-用于事件传递那些坑,一文详解

android 程序员 移动开发

Android应用启动流程分析,10天拿到字节跳动Android岗位offer

android 程序员 移动开发

Android应用开发性能优化完全分析,flutter蓝牙开发

android 程序员 移动开发

Android开发者必看的GitHub-上-10-个顶级开源项目,android开发基础机构

android 程序员 移动开发

Android平台Camera开发实践指南,【大牛疯狂教学】

android 程序员 移动开发

Android应用保活实践,做了6年的Android

android 程序员 移动开发

Android开发简记:140M到67M,学而思网校如何在一周内构建一套可持续的瘦身系统

android 程序员 移动开发

Android开源的精美日历控件,热插拔设计的万能自定义UI

android 程序员 移动开发

Android应用开发者面试时HR是怎样试出你的真实水平!(1)

android 程序员 移动开发

Android开发已经到了要烧香求职的地步了?,Android程序员的春天

android 程序员 移动开发

Android开发北漂 8 年,飘飘飘 飘够了。,android开发艺术探索笔记

android 程序员 移动开发

Android开发失业50天,面了10家公司,唯二的offer也主动拒了

android 程序员 移动开发

Android开发没有一技之长就废了吗?,flutter通知推送

android 程序员 移动开发

Android开源的精美日历控件,热插拔设计的万能自定义UI(1)

android 程序员 移动开发

Android平台HTTPS抓包解决方案及问题分析,flutter弹窗效果

android 程序员 移动开发

Android开发之Theme、Style探索及源码浅析,音视频小程序开发

android 程序员 移动开发

Android庞大的源码体系是怎么设计的?2020字节跳动Framework-高频面试题详细总结

android 程序员 移动开发

Android开发三年半5月份离职,面试10家公司后,这些面试官常问的面试题一定要了解

android 程序员 移动开发

Android开发简记:探索App性能优化之Android内存泄漏,想跳槽涨薪的必看

android 程序员 移动开发

Android应用开发者面试时HR是怎样试出你的真实水平!,大厂Android开发面试解答

android 程序员 移动开发

Android庞大的源码体系是怎么设计的?2020字节跳动Framework 高频面试题详细总结

android 程序员 移动开发

深度学习之对抗样本问题_语言 & 开发_张天雷_InfoQ精选文章