导读:

Te road reaches every place, the short cut only one”— James Richardson

见路不走:现在有很多大师都告诉别人要去照抄别人,有的大师告诉别人不要去照抄别人,这两种说法都不全面,首先要分析事物发生的本质,然后再采取相应的方式 - 天幕红尘

深度学习面对的问题其实是同一个问题

人工智能会很快取代放射科医生吗?最近,研究人员训练了一个深层神经网络来分类乳腺癌,达到了85% 的性能。当与其他三种神经网络模型结合使用时,最终的集成方法的分类准确率达到了99% ,可与经过多年训练的放射科专家相媲美。

上面描述的结果是真实的,只是有一个小小的改变: 研究人员没有使用最先进的人工深层神经网络,而是训练“自然”神经网络——更准确地说,一群四只鸽子——来诊断乳腺癌。

然而,令人惊讶的是,鸽子从未被视为医学成像的未来,大公司还没有投资数十亿建立大规模的鸽子养殖场: 我们对鸽子的期望与我们对深层神经网络(DNN)的期望相比有些苍白。

在许多方面,DNN确实不负众望: 它们在社会、工业和科学领域的成功故事是不可否认的,新的突破仍然在几个月,甚至几周内发生。然而,缓慢而稳定地,失败案例一直在积累: DNN在识别物体方面达到超人的表现,但即使是微小的无形变化或不同的背景环境都能够完全破坏预测。

DNN 可以为一张图片生成一个看似合理的标题,但令人担忧的是,他们可以这样做,而不需要真正地看这张图片。DNN 可以准确地识别人脸,但是对于少数族群的人脸,它们显示出很高的错误率。DNN 可以根据简历预测招聘决策,但是算法的决策偏向于选择男性。

一方面超人的表现,另一方面惊人的失败,两者之间的差异如何调和?正如自然机器智能中的“深度神经网络中的捷径(shortcut)学习”一文中所论述的,并在本文中详细阐述的,许多失败案例并不是独立的现象,而是在某种意义上相互关联的,即DNN 遵循意想不到的“捷径”策略。虽然表面上很成功,但是这些策略在稍微不同的情况下通常会失败。

捷径学习不是一个新奇的现象:,它有很多别名,例如“协变量转移下的学习”、“反因果学习”、“数据集偏见”、“坦克传奇”和“聪明汉斯效应”。我们在这里讨论捷径学习如何统一许多深度学习的问题,以及我们可以做什么来更好地理解和减轻捷径学习。

什么是捷径?

在机器学习中,模型可以学习的解决方案受到数据、模型结构、优化器和目标函数的约束。然而,这些约束通常不允许单一的解决方案: 通常有许多不同的方法来解决一个问题。捷径是指在典型的测试环境中表现良好,但在不同情况下失败的解决方案,它揭示了与我们的意图不匹配的问题。

举个例子,当用一个简单的星星和月亮的数据集(顶行)训练时,一个标准的神经网络(三层,完全连接)可以很容易地对新的类似例子进行分类(数学上称为 iid测试集)。然而,在略有不同的数据集(ood test set)上进行测试揭示了一种快捷策略: 网络已经学会了将对象位置与类别关联起来。

在训练过程中,恒星总是出现在图片的左上角或者左下角; 卫星则出现在左上角或者右下角。这种模式仍然存在于iid 测试集(中间一行)的样本中,但不存在于 ood测试图像(下面一行)中,从而暴露了快捷方式。

这里最重要的观点是,在训练设置约束下,位置和形状都是有效的解决方案,因此没有理由期望神经网络更喜欢其中一个。然而,人类对于使用物体形状有着强烈的直觉。正如这个例子可能看起来不自然的,对抗性的例子,有偏见的机器学习模型,领域泛化的缺乏,以及输入略有改变的失败都可以被理解为同一个潜在现象的实例: 捷径学习。

例如,研究人员开发了一种机器分类器,能够成功地从许多医院的 x 光扫描中检测出肺炎,但是在新医院的扫描中,其性能却出人意料地低: 该模型出人意料地以近乎完美的准确度识别出特定的医院系统(例如,通过检测扫描上的医院特有的金属标记,见左)。再加上医院的肺炎患病率,在训练期间,它能够做出相当好的预测——而对肺炎完全没有了解。分类器没有学习“理解”肺炎,而是选择了最简单的解决方案,并且只考虑token类型。

深度学习之外的捷径学习

通常这种失败可以作为机器学习算法不值得信任的例子。然而,生物学习者也遭受非常相似的故障模式。在牛津大学实验室的一项实验中,研究人员观察到老鼠学会了通过一个复杂的迷宫,这个迷宫显然是基于细微的颜色差异。考虑到老鼠的视网膜最多只能支持原始的颜色视觉,这个实验非常令人惊讶。对这一奇怪发现的深入研究表明,老鼠欺骗了研究人员: 他们在实验中根本没有使用他们的视觉系统,而是简单地根据迷宫墙壁上颜色油漆的气味来区分颜色。一旦控制了嗅觉,这种显著的辨别颜色的能力就消失了。

动物经常通过解决一个实验范例(即数据集) ,以一种意想不到的方式欺骗实验者,而不使用人们实际上感兴趣的潜在能力。这凸显了人类想象用人类以外的方式来解决一个艰难的挑战是多么难以置信的困难: 当然,在实施层面上,老鼠和人类的肤色歧视之间可能存在差异。但是在算法层面,通常有一个默认的假设,即类似人的性能意味着类似人的策略(或算法)。

这种“相同的策略假设”与深度学习并行: 即使 DNN 单位不同于生物神经元,如果 DNN 成功地识别物体,那么很自然地假设它们像人类一样使用物体形状。因此,我们需要区分数据集上的性能和获得某种能力之间的区别,并且在将“对象识别”或“语言理解”之类的高级能力归属于机器之前,要格外小心,因为通常有一个更简单的解释:

永远不要把那些可以通过捷径学习得到充分解释的能力归因于高水平的能力。

捷径学习需要改变我们衡量进步的方式

从历史上看,机器学习研究是由基准驱动的,这些基准通过在固定的任务和数据集的组合上对算法进行评估,使算法具有可比性。这种模式在很短的时间内使这个领域取得了巨大的进展。但这并非没有缺点。其中一个影响就是,它给研究人员创造了强大的动力,促使他们更多地关注于改进现有基准的新算法的开发,而不是理解他们的算法或基准。这种对理解的忽视是为什么捷径学习成为深度学习中如此普遍的问题的部分原因。

让我们来看一个突出的例子: ImageNet 数据集和挑战创建于2009年,作为一种新的方式来衡量在物体识别,算法识别和分类物体的能力。由于其巨大的规模 ImageNet 提出了自己作为一个未解决的问题的规模,没有人敢于解决以前。它的多样性和规模为当前的深度学习革命铺平了道路。

他们2012年的论文论证了带有学习权重的深层神经网络是唯一适合处理这种复杂性的(与当时流行的使用手工特征进行图像分析的方法形成对比)。在接下来的几年里,ImageNet 成为了进步和性能的驱动力,在 ImageNet 基准与计算机视觉的进步同义。

直到最近几年,随着越来越多的 DNN 失效案例的出现,这种情况才开始慢慢改变。所有这些失败案例背后的一个主要原因是,尽管 ImageNet 的规模和多样性不需要真正的对象识别,也就是说模型必须正确识别和分类我们用作标签的前景对象。相反,在许多情况下,物体同样可以很好地通过它们的背景、纹理或其他一些人类不太明显的捷径来识别。如果背景比场景中的主要对象更容易识别,那么网络通常会利用这一点进行分类。

这种行为的后果在普遍意义上是显著的失败。请看下面的图表。在左边有一些方向,人们期望一个模型能够概括。无论是手绘的黑白照片还是彩色照片上的门牌号码,五都是五。同样,姿势、纹理或背景的轻微扭曲或变化不会影响我们对图像中主要对象的预测。相比之下,一个 DNN 可以很容易地被他们所有愚弄。有趣的是,这并不意味着 DNN 不能一概而论: 事实上,他们完美地概括了,尽管方向对人类来说几乎没有意义。下面图片的右侧显示了一些例子,从可理解的图片到完全不可理解的图片。

导致捷径学习和随之而来的泛化失败的关键问题是,我们对任务的理解和它实际上激励模型学习的东西之间存在差异。我们如何缓和这个问题,并提供对捷径学习的洞察力?目前大多数基准测试的一个主要缺点是,它们测试的图像与训练期间使用的数据分布相同。这种类型的评估只需要一种较弱的概括形式。然而,我们需要的是与我们的直觉大致相符的强大的概括能力。为了测试这些,我们需要良好的非分布测试(o.o.d. 测试) ,它们具有明确的分布偏移、定义良好的预期解决方案,并解释模型学习捷径的方式。

但它并不止于此: 随着模型越来越好,它们将学会利用更微妙的捷径,所以我们设想 ood 基准随着时间的推移不断发展,朝着越来越强大的测试。这种类型的“滚动基准”可以确保我们在模型开发过程中不会失去最初的目标,而是不断重新集中精力解决我们实际关心的潜在问题,同时增加我们对建模管道和快捷学习之间的相互作用的理解。

偏爱理解之路胜过捷径,但是怎么做呢?

科学的目的在于理解。虽然深度学习作为一个工程学科在过去的几年里取得了巨大的进步,但是深度学习作为一个科学学科在理解支配机器如何从数据中提取模式的原则和限制方面仍然落后。加深对如何减少捷径学习的理解,超越了当前机器学习的应用领域,未来可能会产生有趣的机会与经济学(设计不会因奖励意外的“捷径”行为而危及长期成功的管理激励措施)或法律(创造没有“漏洞”捷径机会的法律)等其它学科交叉融合。

然而,重要的是要指出,我们可能永远不会完全解决捷径学习。模型的决策总是基于不完全的信息,因此泛化失败应该是预料之中的: 捷径学习的失败是常态,而不是例外。为了增加我们对捷径学习的理解,甚至可能减少捷径学习的实例,我们提供以下五点建议:

1 连点成线: 快捷学习是无处不在的

无论是生物学还是人工学习,快捷学习似乎是学习系统的一个普遍特征。深度学习的许多问题都是通过快捷学习联系在一起的——模型利用数据集的快捷机会,只选择少数几个预测特征,而没有仔细考虑所有可用的证据,从而遭受意想不到的泛化失败。在受影响的领域之间“连接点”可能会促进进展,并且取得进展可以在各种应用程序领域产生非常有价值的影响。

2 认真诠释结果

发现快捷方式通常可以揭示看似复杂数据集的简单解决方案的存在。我们认为,在将“物体识别”或“语言理解”等高级能力赋予机器之前,我们需要非常谨慎,因为通常有一个更简单的解释。

3 测试ood数据

在iid测试数据上评估模型性能(就像大多数当前基准测试那样)不足以区分预期的和非预期的(快捷)解决方案。因此,ood 普通化测试将需要成为规则,而不是例外。

4 理解什么使解决方案易于学习

DNN 总是学习一个问题最简单的可能的解决方案,但要理解哪些解决方案是容易的(因此可能被学习) ,需要分离结构(体系结构)、经验(培训数据)、目标(损失函数)和学习(优化)的影响,以及对这些因素之间的相互作用的彻底理解。

5 首先问一个任务是否应该被解决

捷径的存在意味着,无论任务是否得到充分证实,DNN 通常都会找到解决办法。例如,他们可能会尝试从敏感的人口统计数据(比如皮肤颜色或种族)或者肤浅的外表性别来评估信用评分。这是令人担忧的,因为它可能会加强错误的假设和有问题的权力关系时,应用机器学习的模糊界定或有害的任务。快捷键可以让这些有问题的任务看起来完全可以解决。

然而,DNN 处理高性能任务或基准的能力永远不能证明任务的存在或基本假设是正确的。因此,在评估一项任务是否可以解决时,我们首先需要问: 它应该被解决吗?如果是这样,这个问题应该由人工智能来解决吗?

快捷学习解释了当前机器学习模型和人类智能之间一些最具代表性的区别——但具有讽刺意味的是,正是这种对“作弊”的偏好使得神经网络看起来几乎像人类: 谁从来没有通过记忆考试材料来抄近路,而不是投入时间去真正理解?谁从来没有试图找到一个规定的漏洞,而不是坚持其精神?归根结底,神经网络或许与懒惰的人类并没有太大的不同

全文翻译自:https://thegradient.pub/shortcuts-neural-networks-love-to-cheat/

论文原文:Shortcut learning in deep neural networks

更多阅读

用深层神经网络解释大脑的运作

经由因果分析,反驳AI监控学生上课,及辨别健康类谣言

dnn神经网络 缺点_抄近路神经网络如何因找捷径而犯错相关推荐

  1. bp神经网络缺点及克服,bp神经网络存在的问题

    BP神经网络是用来干嘛的阿? 用样本去训练一个BP网络,然后用新的样本作为输入,再通过这个已经训练好的BP网络,得到的数据就是仿真的结果,这就是BP网络仿真. 我们训练一个BP网络就好像是在训练一个神 ...

  2. python深度神经网络量化_「深度神经网络」(deep neural network)具体是怎样工作的?...

    本文将从深度神经网络本质的视角解释其黑盒特性.这篇解读来源于CVPR2017一篇Oral的文章,作者希望通过寻找到网络中间层与一些语义概念的对应关系,从而实现对于CNN网络潜在的表达能力的定量化分析, ...

  3. 卷积神经网络流程图_基于卷积神经网络的叶片气孔自动计数方法

    点击蓝色字免费订阅,每天收到这样的好资讯 本文提出了一种基于深卷积神经网络的植物叶片显微图像气孔自动分割及参数计算方法,植物表型资讯介绍如下. 气孔是植物表皮上的微孔,可调节叶片水分和二氧化碳含量.因 ...

  4. 多层感知机 深度神经网络_使用深度神经网络和合同感知损失的能源产量预测...

    多层感知机 深度神经网络 in collaboration with Hsu Chung Chuan, Lin Min Htoo, and Quah Jia Yong. 与许忠传,林敏涛和华佳勇合作. ...

  5. bp神经网络应用实例_人工智能BP神经网络学习神器——AISPACE

    未经许可请勿转载 更多数据分析内容参看这里 今天我们来介绍一套小工具--AISPACE,它有助于你学习BP神经网络运作的过程及原理.AISPACE涉及的一系列工具用于学习和探索人工智能的概念,它们是在 ...

  6. 深度学习与计算机视觉系列(10)_细说卷积神经网络

    转载自: 深度学习与计算机视觉系列(10)_细说卷积神经网络 - 龙心尘 - 博客频道 - CSDN.NET http://blog.csdn.net/longxinchen_ml/article/d ...

  7. DL之DNN:基于Tensorflow框架对神经网络算法进行参数初始化的常用九大函数及其使用案例

    DL之DNN:基于Tensorflow框架对神经网络算法进行参数初始化的常用九大函数及其使用案例 目录 基于Tensorflow框架对神经网络算法进行初始化的常用函数及其使用案例 1.初始化的常用函数

  8. pytorch贝叶斯网络_贝叶斯神经网络:2个在TensorFlow和Pytorch中完全连接

    pytorch贝叶斯网络 贝叶斯神经网络 (Bayesian Neural Net) This chapter continues the series on Bayesian deep learni ...

  9. 贝叶斯优化神经网络参数_贝叶斯超参数优化:神经网络,TensorFlow,相预测示例

    贝叶斯优化神经网络参数 The purpose of this work is to optimize the neural network model hyper-parameters to est ...

最新文章

  1. 【linux】Valgrind工具集详解(八):Memcheck命令行参数详解
  2. Windows2003 IIS安装
  3. Python学习之 !/usr/bin/python 和 !/usr/bin/env python区别
  4. android实现模拟自动点击_昆仑通态专题(十三):模拟实现全自动洗衣机系统的设计(案例)...
  5. P2056-[ZJOI2007]捉迷藏【点分树,堆】
  6. Node.js入门 - 永恒的Hello World!
  7. bool c语言_C语言面试54题
  8. [C++] - auto的使用、优点和缺点
  9. 【java】字符串和基本数据类型之间的转换
  10. 【Spring笔记】使用javaconfig配置
  11. 《统计学习方法》——朴素贝叶斯法
  12. 【语音去噪】基于matlab GUI软阈值+硬阈值+软硬折中阈值语音去噪【含Matlab源码 1810期】
  13. vgcreate 创建卷组
  14. 8uftp,8uftp连接不上怎么办
  15. ISO27001的认证周期及流程
  16. Java实践练习判断变量x是奇数还是偶数
  17. Arcgis使用教程(九)ARCGIS空间数据符号化
  18. 如何搬运短视频,从快手搬运视频图文教程攻略
  19. 毕设可以做成静态的HTML吗,关于静态HTML网页制作
  20. 【微信小程序开发(云壁纸小程序教程)】

热门文章

  1. 轻量级RTSP服务和内置RTSP网关的区别和联系
  2. java获取net地址 本机
  3. 2台服务器负载均衡后synchronized_一篇有趣的负载均衡算法实现
  4. java中的字符串_java中字符串的操作
  5. SpringAOP+自定义注解实现日志功能
  6. 是否有必要使用外键?为什么不用外键?
  7. linux转mysql_[转] linux下安装mysql服务器
  8. MySQL 逻辑架构与常用的存储引擎
  9. Java8 函数式对齐约定————Eclipse自定义代码风格
  10. linux java 环境配置_linux下java开发环境配置