写点什么

深度学习之对抗样本问题

2015 年 7 月 27 日

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 年 7 月 27 日 08:456893
用户头像

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

关注

评论

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

系统梳理主流定时器算法实现的差异以及应用

古月木易

定时器

FPGA

Kevin Z

UML练习1-食堂就餐卡系统设计

一剑

架构师训练营第一周学习总结

不谈

系统梳理主流定时器算法实现的差异以及应用

奈学教育

定时器

区块链如何打通征信行业的“任督二脉”?

CECBC区块链专委会

CECBC 区块链技术 征信 数据共享

架构师训练营第一周课堂学习总结

Frank Zeng

架构师训练营-第1课总结-202006-架构设计

👑👑merlan

架构设计 UML #总结#

【架构师训练营】第一个周课程总结

Mr.hou

极客大学架构师训练营

TOGAF认证自学宝典

涛哥

架构 企业架构

架构师训练营-第一周作业

zcj

极客大学架构师训练营

谈反应式编程在服务端中的应用,数据库操作优化,从20秒到0.5秒

newbe36524

C# Reactive netcore

学习总结

Geek_2e7dd7

食堂就餐卡系统架构设计

Cloud.

数据结构与算法之基础入门

shirley

数据结构 算法

架构师训练营-第一周学习总结

zcj

极客大学架构师训练营

食堂打卡系统架构设计文档

Frank Zeng

架构师训练营第1周作业——食堂就餐卡系统设计

在野

极客大学架构师训练营

译-面向前端开发人员的Docker入门指南

费马

Docker Linux 容器 运维 前端

Facebook缓存技术演进:从单集群到多区域

伴鱼技术团队

架构 系统架构 分布式系统 缓存穿透 cache

第一周总结

芒夏

极客大学架构师训练营

食堂就餐卡系统设计

Arvin

架构设计

架构师必备技能(灵魂拷问篇)

Arvin

架构师

架构师训练营第一周学习总结

jiangnanage

架构设计

作为一个架构师,我是不是应该有很多职责?

架构师修行之路

程序员 架构 架构师

架构师训练营-开营

zcj

极客大学架构师训练营

第一周架构师总结

不在调上

作业1 餐卡系统设计

Geek_2e7dd7

平台化服务的基石:隔离与交互策略模型

孤岛旭日

企业架构 用户权限 权限系统

提高 TCP 性能的方法,你知多少?

小林coding

TCP 性能优化 高并发 网络

ReentrantLock 公平锁和非公平锁源码分析

张sir

Java 多线程 Java 25 周年

深度学习之对抗样本问题-InfoQ