写点什么

深度学习之对抗样本问题

  • 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:457988
用户头像

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

关注

评论

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

Python3 cpython优化 实现解释器并行

字节跳动终端技术

字节跳动 编程语言 代码优化 Python3 火山引擎MARS

学生管理系统架构设计文档

Bear

「架构实战营」

模块三作业

blazar

「架构实战营」

【架构师训练营】模块八作业

樰巳-堕~Horry

架构实战营 「架构实战营」

六年老员工的幸福感

万事ONES

学生管理系统详细架构方案

IT屠狗辈

架构实战营 详细架构

关于阿里云多活容灾的那点事

阿里巴巴云原生

阿里云 云原生 应用多活

中远海运集团总经理付刚峰率队访问百度 双方将加强合作

百度大脑

Go自定义DNS解析器负载均衡实践

FunTester

HTTP 接口测试 DNS Go 语言 FunTester

外包学生管理系统架构设计文档

石小天

「架构实战营」

模块三作业

Geek_ec866b

架构实战营

内网安全-记一次内网靶机渗透

网络安全学海

黑客 网络安全 信息安全 渗透测试

"5G通达,AI赋能" AI在网络规划中的应用实践

百度大脑

外包学生管理系统架构设计文档

smile

使用 Solidity、Web3 和 Vue.js 创建区块链游戏

devpoint

dapp NFT Solidity 2月月更

云计算情报局预告|告别 Kafka Streams,让轻量级流处理更加简单

阿里巴巴云原生

阿里云 云原生 消息队列 Kafka ETL

如何设计一个复杂的业务系统?从对领域设计、云原生、微服务、中台的理解开始

阿里巴巴云原生

阿里云 云原生 架构设计

引领创新技术发展,百度荣获两项数据中心国家级荣誉

百度大脑

系统学习 TypeScript(三)——基础类型

编程三昧

typescript 前端 2月月更

[架构实战营]-外包学生管理系统架构设计

邹玉麒

「架构实战营」

NodeJS事件循环

真嗣

前端 nodejs 事件循环 eventloop

网站开发进阶(六十八)防抖节流

No Silver Bullet

防抖节流 2月月更

人类的AI调校计划:像个淑女,或者硬汉

脑极体

PaddleOCR 部署实战之Java&C#方案直播分享来啦

百度大脑

博文干货|在 Kotlin 中使用 Apache Pulsar

Apache Pulsar

开源 架构 云原生 kotlin Apache Pulsar

学生管理系统-详细架构设计文档

AragornYang

架构训练营 架构实战营

DDD实战(2):看看代码结构长啥样

深清秋

DDD 软件架构 生鲜电商系统

模块三:学生管理系统详细架构设计

刘璐

“首席AI架构师”+57人!百度AICA第五期结业啦

百度大脑

如何高效交付专有云?百度智能云有妙招

百度大脑

全国人工智能师资培训班·上海站火热招生中

百度大脑

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