1、引言

  近些年,深度学习在计算机视觉领域取得了很好的表现,引领了第三次人工智能的浪潮。目前大部分表现优异的应用都用到了深度学习,大红大紫的 AlphaGo 就使用到了深度学习。
  但是本期讲的是对抗机器学习,为什么提深度学习,深度学习和机器学习是什么关系呢?或者说深度学习、神经网络、机器学习、人工智能之间的关系又是怎样的。
  简单来说:

  1. 深度学习是机器学习的一个分支(最重要的分支)
  2. 机器学习是人工智能的一个分支

  深度学习的概念源于人工神经网络的研究,但是并不完全等于传统神经网络。不过在叫法上,很多深度学习算法中都会包含”神经网络”这个词,比如:卷积神经网络(CNN)、循环神经网络(RNN)。
  所以,深度学习可以说是在传统神经网络基础上的升级,约等于神经网络。

  深度学习的4种典型算法:

  1. 卷积神经网络 – CNN
  2. 循环神经网络 – RNN
  3. 生成对抗网络 – GANs
  4. 深度强化学习 – RL

2、对抗机器学习

  对抗机器学习(adversarial machine learning)是一个机器学习与计算机安全的交叉领域。对抗机器学习旨在给恶意环境下的机器学习技术提供安全保障。由于机器学习技术一般研究的是同一个或较为稳定的数据分布,当部署到现实中的时候,由于恶意用户的存在,这种假设并不一定成立。比如研究人员发现,一些精心设计的对抗样本(adversarial example)可以使机器学习模型失败输出正确的结果。
  针对对抗机器学习这个问题而言,AI出身的小伙伴们可能认为,这样的工作应该只能看做模型的鲁棒性或泛化能力不够强,但是从安全角度考虑,其实所谓的“安全”概念,是从模型的设计者角度出发,考虑到模型的行为超出意料之外,让模型设计者手足无措,因此我们认为是可能存在“潜在威胁”,因而将这类行为归类为安全问题。特此解释。
  在很多深度学习与传统机器学习对比的文章中,都有大致这么一段描述:

  传统机器学习的特征提取主要依赖人工,针对特定简单任务的时候人工提取特征会简单有效,但是不能通用。
  深度学习的特征提取并不依靠人工,而是机器自动提取的。这也是为什么大家都说深度学习的可解释性很差,因为有时候深度学习虽然能有好的表现,但是我们并不知道他的原理是什么。

提及了深度学习的可解释性不高,但没有深究,在《Intriguing properties of neural networks》一文中,就解释了其中原因。主要是以下两点:

  1. 根据各种单元分析方法(methods of unit analysis),单个高层单元与高层单元的随机线性组合之间没有区别。它表明,在神经网络的高层中,包含语义信息的是空间,而不是单个单元。
  2. 深度神经网络学习的输入-输出映射在很大程度上是相当不连续的。我们可以通过应用某种难以察觉的扰动,使网络的预测误差最大化,从而导致网络对图像进行错误分类。

针对第二点作者还指出,这些扰动的具体性质并不是学习的随机产物:相同的扰动可能导致在数据集的不同子集上训练的不同网络对相同输入进行错误分类。

3、深度神经网络的盲点

  神经网络实现了高性能,因为它们可以表达由少量大规模并行非线性步骤组成的任意计算。但是,由于结果计算是通过有监督学习的反向传播自动发现的,它可能很难解释,而且可能具有反直觉的性质(counter-intuitive properties)。
  深度神经网络的两个反直觉性质,第一个性质与单个单元(unit)的语义(semantic meaning)有关。以前的研究通过寻找一组最大限度地激活给定单元的输入来分析各个单元的语义。对单个单元的检查隐含了这样一个假设:最后一个特征层的单元构成了一个区分的基础,这对于提取语义信息特别有用。但文中指出表明 ϕ ( x ) \phi(x) ϕ(x) 的随机投影在语义上与 ϕ ( x ) \phi(x) ϕ(x)的坐标不可区分,这就对神经网络在坐标上分离变异因子的猜想提出了质疑。一般来说,似乎是整个激活空间,而不是单个单元,包含了大量的语义信息。
  第二个性质是关于神经网络输入的小扰动的稳定性。先进的深度神经网络用于物体识别,我们希望模型对其输入的小扰动具有鲁棒性,因为小扰动不能改变图像的对象类别。 但作者发现对测试图像应用不可察觉的非随机扰动,可以任意改变网络的预测。而被干扰的图像对人类来说是没有差异的。通过优化输入以最大化预测误差来发现这些扰动,被干扰的样本就称为“对抗样本”。
  深度学习自诩为特征学习的模型,但是这特征由数据出发进行自主的学习,故而其学习到的特征并不一定就是我们所希望的特征,有一点可以确定的是,其对数据的理解与人的理解有着很大的差异,故而,其学习到的特征,也极有可能并非是人理解事物的特征。
  从信息论的角度来看,我们所谓的这些特征不过是信息的一种编码,我们真正需要的是获取信息本质,故而对此也无可厚非,只是这种信息的编码结构不具备人脑中信息编码的结构特性。那么一部分工作就可以作为分析编码的结构特性。

4、对抗性样本

  研究指出,对于每张正确分类的图像,都可以生成一个“对抗性”的、视觉上无法区分的图像,并且会被错误分类。 这表明所有神经网络都存在潜在的深层缺陷。
  对于下面图像,最左边一列和最右边一列对于肉眼来说,人类凭借大脑无法区分:

  对于人眼来说完全相同,但深度神经网络不同。 实际上,深度神经网络只能正确识别左边,而不能识别右边。 在实验中,左列图像均能够被模型正确分类,而右列图像都会被模型识别为“鸵鸟”。这点也说明深度学习模型学到的特征与人脑不同,是反直觉特性之一。
  在神经网络的高层中,包含语义信息的是空间(space),而不是单个单元(individual units)。这意味着随机失真的原图也可以被正确分类。
  以往的单元级分析法(unit-level inspection methods),是通过把一堆图片丢进去,然后找出同时能够让某一单元激活值最大的图片,再对这些图片进行分析它们的共同特征,然后就认为说这个单元学到了这些特征。文中比较了在 MNIST 上训练的卷积神经网络的自然基(natural basis)和随机基(random basis),使用 ImageNet 数据集作为验证集。


  对于自然基础(上图),它将隐藏单元的激活视为一个特征,并寻找使该单个特征的激活值最大化的输入图像。我们可以将这些特征解释为输入域中有意义的变化。 然而,实验表明这种可解释的语义也适用于任何随机方向(下图)。以白花识别为例。 传统上,带有黑色圆圈和扇形白色区域的图像最有可能被归类为白花。 然而,事实证明,如果我们选择一组随机的基础,响应的图像也可以以类似的方式在语义上进行解释。
  在实验中,应用某种难以察觉的扰动后,网络可能会对图像进行错误分类。 通过调整像素值以最大化预测误差来发现扰动。

For all the networks we studied (MNIST, QuocNet, AlexNet), for each sample, we always manage to generate very close, visually indistinguishable, adversarial examples that are misclassified by the original network.
对于我们研究的所有网络(MNIST、QuocNet、AlexNet),对于每个样本,我们总是设法生成非常接近的、视觉上无法区分的、被原始网络错误分类的对抗性示例。

  下面的例子是(左)正确预测的样本,(右)对抗样本,(中心)它们之间放大10倍的差异。 这两列对人来说是一样的,而对神经网络来说则完全不同。

  按理说网络模型应该不受小扰动的影响, 但实验结果并非如此,深度神经网络的连续性和稳定性受到质疑。 平滑假设(smoothness assumption)不再适用于深度神经网络。
  更令人惊讶的是,相同的扰动会导致在不同训练数据集上训练的不同网络对同一图像进行错误分类。 这意味着对抗样本在某种程度上具有普遍性。但文中也说尽管对抗性负集集很密集,但概率极低,因此在测试集中很少观察到。
  对抗样本的三个特性:

  1. 对于我们研究的所有网络(MNIST,QuocNet,AlexNet),对于每个样本,作者总是设法生成非常接近的、视觉上难以区分的、但被原始网络错误分类的对抗性示例 。
  2. 跨模型泛化(Cross model generalization):使用不同超参数从头开始训练的网络会错误分类相对大部分的示例。也就是说,即使模型通过调整超参数重新训练,对抗样本依然有效。
  3. 跨训练集泛化(Cross training-set generalization):在不相交的训练集上从头开始训练的网络将错误分类相对较大的一部分示例。即同一模型在不同的数据集上训练,对抗样本依然有效。

小结

  对抗样本在某种程度上具有普遍性,而不仅仅是过度拟合特定模型或指定训练集的结果。作者证明了深度神经网络在单个单元的语义及其不连续性方面都具有反直觉的特性。
  对抗样本的存在似乎与网络的高泛化性能的能力相矛盾。 如果网络可以很好地泛化,它怎么会被这些与常规示例无法区分的对抗样本混淆?
  有人也提出人脑也会有类似的缺陷,存在“盲点”,不过并没有得到证实,或者目前没有出现。个人觉得人脑不仅仅学习图像的“特征”,还具备“联想”能力,人看见狗的次数远小于神经网络模型的数据集,但当人再次遇见一只毛发颜色、尾巴、耳朵、以及体格外形都完全不同的狗时,我们依然知道它是一只狗,而不会认为是一只鸵鸟。
笔者公众号:极客随想。主要分享一些网络安全,黑客攻防,渗透测试以及日常操作系统使用技巧相关的知识。欢迎关注。

参考论文:“Intriguing properties of neural networks”

对抗机器学习系列——深度神经网络的盲点相关推荐

  1. 机器学习、深度神经网络的认识与结论

    0. 深度神经网络的分类 General DL FC:Fully Connected Sequence Models: 1D 数据 RNN.LSTM Image 2D.3D CNN Unsupervi ...

  2. 机器学习系列之神经网络入门基础知识

    01 | 人类神经系统原理 生物神经元间的信号通过突触来传递.通过它,一个神经元内传送的冲击信号将在下一个神经元内引起响应,使下一个神经元兴奋,或阻止下一个神经元兴奋.人体内有上百亿个神经细胞,这些神 ...

  3. 深度神经网络的训练过程,深度神经网络如何训练

    优就业的深度学习多久能学完,学完能达到什么样的程度? 为期5周的课程学习中,你将全面了解AI深度学习的相关知识,掌握人工神经网络及卷积神经网络原理.循环神经网络原理.生成式对抗网络原理和深度学习的分布 ...

  4. 机器视觉与深度神经网络—洗去浮华,一窥珠玑

    近年来机器学习.AI领域随着深度神经网络(DNN)的崛起而迎来新一波的春天,尤其最近两年无论学界还是业界,或是各大媒体,甚至文盲老百姓都言必称"智能".关于这方面,可讨论的东西实在 ...

  5. 人工神经网络与深度神经网络

    想学习深度学习需要什么样的基础 很多小伙伴对深度学习的理解都有一些误解,今天就为你一一解答.很多人第一反应是深度学习特别高大上,需要一定基础才能学习,但是关于需要学习深度学习所需要的基础其实存在很多误 ...

  6. Github | 深度神经网络(DNN)与生成式对抗网络(GAN)模型总览

    点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 编辑:Sophia 计算机视觉联盟  报道  | 公众号 CVLianMeng 转载于 :https://githu ...

  7. 机器学习与深度学习系列连载(NTU-Machine Learning, cs229, cs231n, cs224n, cs294):欢迎进入机器学习的世界

    欢迎进入机器学习的世界 本教程是根据台湾大学李弘毅老师的课程机器学习课程,斯坦福大学CS229.CS231N.CS224N.CS20i.伦敦大学学院 ([UCL-Course])(http://www ...

  8. 【深度】北大王奕森:对抗机器学习的鲁棒、隐私和架构

    第九届国际学习表征大会(ICLR 2021)是深度学习领域的国际顶级会议.在正式会议召开之前,青源Seminar于2月19日-21日成功召开了ICLR 2021 中国预讲会.回放链接:hub.baai ...

  9. 德国图宾根大学发布可扩展「对抗黑盒攻击」,仅通过观察决策即可愚弄深度神经网络

    原文来源:arXiv 作者:Wieland Brendel.Jonas Rauber.Matthias Bethge 「雷克世界」编译:嗯~阿童木呀.哆啦A亮 不知道大家有没有注意到,许多机器学习算法 ...

最新文章

  1. WP7应用开发笔记(12) 添加页面动画
  2. webdriver--单选、复选及下拉框的定位
  3. 自定义FragmentTabHost实现可控制是否保存fragment状态
  4. spring ioc加载流程
  5. 除硬件外计算机系统不可缺少的是,除硬件外,计算机系统不可缺少的另外一部分是( )。...
  6. (七)linux函数接口的使用
  7. 54 FI配置-财务会计-固定资产-主数据-更改评估组的关键词
  8. deepin安装bochs2.6.2_深度Deepin系统中wine4.0.1源编辑安装
  9. java locationuitool_求助systemui编译时哪里出错
  10. cacti不能实时刷新流量图_解决Cacti无法正常监视超过100M以上流量的问题
  11. 【专利提交】个人通过CPC客户端网上提交专利文稿的完整流程
  12. g9008v android7,三星G9008V Android 4.4 (GALAXY S5 移动4G)图文刷机教程,最新教程,简单明了...
  13. [Sencha ExtJS amp; Touch] 在Sencha(Extjs/Touch)应用程序中使用plugins(插件)和mixins(混入)...
  14. html5小猫钓鱼游戏思路,小猫钓鱼的游戏算法
  15. Apple Silicon (mac m1 pro) 完整配置CS285 (brew, miniforge, mujoco)
  16. NHibernate 联合查询,解决方法-通过自动转换成DataTable
  17. 日语IT词汇及相关业务词汇
  18. Tomcat配置数据库连接池
  19. NoSQL代表: Mongo DB(芒果数据库) NoSQL代表: Mongo DB(芒果数据库)
  20. STM32传感器外设集--语音模块(SYN6288)

热门文章

  1. 浙江工业大学电子计算机专业,浙江工业大学计算机专业怎么样
  2. 区块链数据共享论文阅读
  3. python专科生工资一般多少-专科生转行做python运维靠谱吗?
  4. 呃呃呃呃呃呃鹅鹅鹅鹅鹅鹅饿
  5. 利用bind方便多域应用的开发
  6. 如果要设计个分布式文件系统,该从哪些方面考虑?
  7. VVC参考软件的下载安装
  8. 计算机上1e153代表什么意思,手机网络信号G、E、3G、1X、H、4G及LTE各代表什么意思?...
  9. FatMouse's Speed
  10. ugui 转轮_(搬运工)unity3D的FingerGestures插件