2020-05-13 17:08:00

全文共3817字,预计学习时长14分钟

图源:unsplash

准确性与可解释性是不能同时达到的吗?来自IEEE研究员Cuntai Guan这样认为:“许多机器决策仍然没有得到很好的理解”。大多数论文甚至提出在准确性和可解释性之间进行严格区分。

神经网络是准确的,但无法解释;在计算机视觉中,决策树是可解释的,但不准确。可解释性AI(XAI)试图弥合这一分歧,但正如下面所解释的那样,“XAI在不直接解释模型的情况下证明了决策的合理性”。

这意味着金融和医学等应用领域的从业者被迫陷入两难境地:选择一个无法解释的、准确的模型,还是一个不准确的、可解释的模型。

什么是“可解释的”?

定义计算机视觉的可解释性是一项挑战:解释像图像这样的高维输入的分类意味着什么?正如下面讨论的,两种流行的定义都涉及到显著图和决策树,但是这两种定义都有缺点。

可解释性AI不能解释什么

显著图

许多XAI方法产生的热图被称为显著图,突出显示影响预测的重要输入像素。然而,显著图映射只关注输入,而忽略了解释模型如何决策。

拍摄原始图像

使用一种称为Grad-CAM的方法的显著图

和另一种使用引导反向传播方法的图像

显著图不能解释什么

为了说明为什么显著图不能完全解释模型如何预测,这里有一个例子:下列显著图是相同的,但是预测结果不同。

为什么?尽管两个显著图都突出显示了正确的对象,但有一个预测结果是不正确的。回答这个问题可以帮助改进模型,但是如下所示,显著图不能解释模型的决策过程。

模型预测结果为有耳朵的鸟

模型预测结果为有角的鸟

这些是使用Caltech-UCSDBirds-200-2011(或简称CUB 2011)在ResNet18模型上运用Grad-CAM方法得到的结果。虽然显著图看起来非常相似,但是模型的预测结果不同。因此,显著图并不能解释模型是如何达到最终预测的。

决策树

另一种方法是用可解释的模型代替神经网络。深度学习之前,决策树是准确性和可解释性的黄金标准。下面演示决策树的可解释性,它通过将每个预测分解为一系列决策来工作。

与仅仅预测“大汉堡”或“华夫饼”不同,上面的决策树将输出一系列导致最终预测的决策。然后可以分别对这些中间决策进行验证或质疑。因此,经典的机器学习将这种模型称为“可解释的”。

图源:unsplash

但是,就准确性而言,决策树在图像分类数据集²上落后于神经网络达40%。神经网络和决策树混合算法也表现不佳,甚至在数据集CIFAR10上无法匹配神经网络,该数据集有如下所示的32x32微小图像。

该示例展现了32x32有多小。这是来自CIFAR10数据集的一个样本。

这种精度差距损害了可解释性:需要高精度、可解释的模型来解释高精度的神经网络。

进入神经支持的决策树

通过建立既可解释又准确的模型来改良这种错误的二分法。关键是将神经网络与决策树相结合,在使用神经网络进行低级决策时保留高级的可解释性。

如下所示,将这些模型称为神经支持的决策树(NBDTs),并证明它们能够在保持决策树可解释性的同时,与神经网络的准确性相匹配。

在此图中,每个节点都包含一个神经网络。该图仅突出显示了一个这样的节点和内部的神经网络。在神经支持的决策树中,通过决策树进行预测,以保留高级解释性。

但是,决策树中的每个节点都是做出低级决策的神经网络。上面的神经网络做出的“低级”决定是“有香肠”或“没有香肠”。

NBDT与决策树一样可解释。

与当今的神经网络不同,NBDT可以输出中间决策来进行预测。例如,给定图像,神经网络可以输出Dog。但是,NBDT可以同时输出Dog和Animal,Chordate,Carnivore(下图)。

在此图中,每个节点都包含一个神经网络。该图仅突出显示了一个这样的节点和内部的神经网络。在神经支持的决策树中,通过决策树进行预测,以保留高级解释性。

但是,决策树中的每个节点都是做出低级决策的神经网络。上面的神经网络做出的“低级”决定是“有香肠”或“没有香肠”。上面的照片是根据Pexels许可从pexels.com获取的。

NBDT实现了神经网络的准确性。

与其他任何基于决策树的方法不同,NBDT在3个图像分类数据集上都匹配神经网络精度(差异小于1%)。NBDT还能在ImageNet上实现神经网络2%范围内波动的准确性,ImageNet是拥有120万张224x224图像的最大图像分类数据集之一。

此外,NBDT为可解释的模型设置了新的最新精度。NBDT的ImageNet准确度达到75.30%,比基于决策树的最佳竞争方法高出整整14%。为了准确地说明这种准确性的提高:对于不可解释的神经网络,类似的14%的增益花费了3年的研究时间。

神经支持的决策树可以解释什么,如何解释

个人预测的理由

最有见地的理由是根据该模型从未见过的对象。例如,考虑一个NBDT(如下),并在斑马上进行推断。尽管此模型从未见过斑马,但下面显示的中间决策是正确的——斑马既是动物又是蹄类动物。单个预测的正确性的能力对于没见过的物体至关重要。

NBDT甚至可以为没见过的物体做出准确的中间决策。在此,该模型在CIFAR10上进行了训练,并且之前从未见过斑马。尽管如此,NBDT仍正确地将斑马识别为动物和蹄类动物。上面的照片是根据Pexels许可从pexels.com获取的。

模型行为的理由

此外,发现可以使用NBDT后,可解释性的准确性得到了提高。这与简介中的二分法背道而驰:NBDT不仅具有准确性和可解释性,还使准确性和可解释性成为同一目标。

ResNet10层次结构

WideResNet层次结构

在前者中,“猫”,“青蛙”和“飞机”位于同一子树下。相比之下,WideResNet层次结构在每一侧干净地分割了Animals和Vehicles。上面的图片来自CIFAR10数据集。

例如,较低精度的ResNet⁶层次结构将青蛙,猫和飞机分组在一起的意义较小。这是“不太明智的”,因为很难找到所有三类共有的明显视觉特征。

相比之下,准确性更高的WideResNet层次结构更有意义,将Animal与Vehicle完全分开——因此,准确性越高,NBDT的解释就越容易。

图源:unsplash

了解决策规则

使用低维表格数据时,决策树中的决策规则很容易解释,例如,如果盘子中有面包,那么选择右侧节点,如下所示。但是,决策规则对于像高维图像这样的输入而言并不那么直接。

此示例演示了如何使用低维表格数据轻松解释决策规则。右侧是几个项目的表格数据示例。左侧是根据此数据训练的决策树。

此时,决策规则(蓝色)是“是否有面包?”所有带有面包(橙色)的项目都发给最上面的节点,而所有没有面包(绿色)的项目都发给最下面的节点。该模型的决策规则不仅基于对象类型,而且还基于上下文、形状和颜色。

为了定量地解释决策规则,使用了称为WordNet7的现有层次;通过这种层次结构,可以找到类之间最具体的共享含义。例如,给定类别Cat和Dog,WordNet将提供哺乳动物。如下图所示,定量地验证了这些WordNet假设。

左子树(红色箭头)的WordNet假设是Vehicle。右边(蓝色箭头)的WordNet假设是Animal。为了定性地验证这些含义,针对没见过的物体类别对NBDT进行了测试:

1.查找训练期间未见过的图像。

2.根据假设,确定每个图像属于哪个节点。例如,大象是动物,所以*可以找到正确的子树。

3.现在,可以通过检查将多少图像传递给正确的节点来评估假设。例如,检查将多少张大象图像发送到“Animal”子树。

这些分类的正确性显示在右侧,没见过的动物(蓝色)和没见过的Vehicle(红色)都显示较高的准确性。

请注意,在具有10个类别(即CIFAR10)的小型数据集中,可以找到所有节点的WordNet假设。但是,在具有1000个类别的大型数据集(即ImageNet)中,只能找到节点子集的WordNet假设。

一分钟内尝试NBDT

现在有兴趣尝试NBDT吗?无需安装任何软件,就可以在线查看更多示例输出,甚至可以尝试Web示例。或者,使用命令行实用程序来运行推理(使用pip installnbdt安装)。下面对猫的图片进行推断。

nbdthttps://images.pexels.com/photos/126407/pexels-photo-126407.jpeg?auto=compress&cs=tinysrgb&dpr=2&w=32 # this can also be a path to local image

这将输出类别预测和所有中间决策。

Prediction: cat // Decisions: animal (99.47%), chordate(99.20%), carnivore (99.42%), cat (99.86%)

也可以只用几行Python代码加载预训练的NBDT。使用以下内容开始,支持几种神经网络和数据集。

from nbdt.model import HardNBDTfrom nbdt.models importwrn28_10_cifar10model = wrn28_10_cifar10()model = HardNBDT( pretrained=True, dataset='CIFAR10', arch='wrn28_10_cifar10', model=model)

作为参考,请参见上面运行的命令行工具的脚本。仅约20行就能进行转换输入和运行推理。

运作原理

神经支持决策树的训练和推理过程可以分为四个步骤。

训练NBDT分为两个阶段:首先,构建决策树的层次结构。其次,训练带有特殊损失项的神经网络。要进行推理,请将样本输入神经网络主干。最后,将最后一个完全连接的层作为决策规则序列运行。

1.构建决策树的层次结构。此层次结构确定了NBDT必须在哪些类之间进行决策。将此层次结构称为归纳层次结构。

2.此层次结构产生一个特定的损失函数,称为树监督损失5。使用此新损失函数训练原始神经网络,无需任何修改。

3.通过使样本输入神经网络主干来开始推理。主干是最终完全连接层之前的所有神经网络层。

4.通过将最终的全连接层作为决策规则序列,称为嵌入式决策规则来完成推理。这些决策形成最终的预测。

可解释性AI不能完全解释神经网络如何实现预测:现有方法可以解释图像对模型预测的影响,但不能解释决策过程。决策树解决了这个问题,但其准确性还存在个挑战。

因此,将神经网络和决策树结合在一起。与采用相同混合设计的前代产品不同,神经支持决策树(NBDT)同时解决了以下问题:

· 神经网络无法提供理由;

· 决策树无法达到较高的准确性。

这为医学和金融等应用提供了一种新的准确、可解释的NBDT。

作者:Alvin Wan,*Lisa Dunlap,*Daniel Ho, Jihan Yin, Scott Lee, Henry Jin, Suzanne Petryk,Sarah Adel Bargal, Joseph E. Gonzalez

其中*表示贡献相等

神经网络?决策树?都做不到!谁能解决可解释性AI?相关推荐

  1. 为什么网红餐饮都做不长久?如何解决网红餐饮店所面临的问题?

    随着社交媒体的兴起,网红餐饮在近年来越来越受到人们的关注.这些网红餐饮通常有着独特的装修风格.口味或者服务方式,吸引了大量的消费者前来体验.然而,有越来越多的网红餐饮因为各种原因而不得不倒闭,这引发了 ...

  2. 对神经网络某一层做了小改进,效果却提升显著,可以发论文吗?

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 知乎:青春没有终点 编辑:深度学习自然语言处理公众号 链接:见原文链接 学术分享,侵删 ...

  3. sq工程师是做什么的_算法工程师为什么成天做数据,都做哪些数据?

    大家好,前几天群里有小伙伴说希望看到更多的算法工程师的日常.其实对于算法工程师而言,最大的日常就是做数据了,所以给大家分享一下做数据的那些事. 为什么很少做模型 在大家想象当中,可能算法工程师做的事情 ...

  4. 各种优化器SGD,AdaGrad,Adam,LBFGS都做了什么?

    文章目录 各种优化器SGD,AdaGrad,Adam,LBFGS都做了什么? 1. SGD: 2. SGD+Momentum: 3. NAG(Nesterov Accelerated Gradient ...

  5. python决策树预测模型_Python决策树模型做 Titanic数据集预测并可视化(一)

    kaggle上的Titanic数据集据说是学习机器学习必然要做的一道练习题,所以注册了kaggle的账号,然后下载了Titanic的训练数据和测试数据.在注册时注意需要科技爬梯出去才能通过邮箱验证,不 ...

  6. 为什么大家都做不好社交这件事?

    来自:Louis徐玮 人是群体动物,社交是底层需求.这么多年以来,人类底层需求从来没变过.互联网的产品经理看到了,想把社交这件事搬到互联网上.谁只要垄断了社交,上亿市值不是梦.但似乎大家都没怎么做成. ...

  7. UC伯克利发现「没有免费午餐定理」加强版:每个神经网络,都是一个高维向量...

    来源:AI科技评论 作者:Mr Bear.杏花 编辑:青暮 经典的「没有免费午餐定理」表明:如果某种学习算法在某些方面比另一种学习算法更优,则肯定会在其它某些方面弱于另一种学习算法. 也就是说,对于任 ...

  8. 在C语言里_大学生:我学了这么久的C语言,为什么感觉它啥都做不了?网友:恰恰相反!...

    很多人学习C语言的时候会发现,为什么我学了这么久但是感觉啥都做不了呢? 这是很多初学者都会疑惑过的事情,但是你要C语言几乎是所有语言的实现基础,所以不存在做不了的事情,只是相对来说谁做更合适,编写游戏 ...

  9. 从架构演进的角度聊聊Spring Cloud都做了些什么?

    Spring Cloud作为一套微服务治理的框架,几乎考虑到了微服务治理的方方面面,之前也写过一些关于Spring Cloud文章,主要偏重各组件的使用,本次分享主要解答这两个问题:Spring Cl ...

最新文章

  1. 如何让Node.js运行在浏览器端
  2. springboot中使用规则引擎Drools
  3. linux ftp配置chroot,vsftp chroot 设置
  4. Android 城市选择,热门城市,全部城市(美团、滴滴、淘宝)
  5. 64位处理器_快看看你的电脑是64位还是32位操作系统,处理器支持64位可升级
  6. [IOS地图开发系类]5、改变大头针MKPinAnnotationView的颜色
  7. SAP License:ERP具有的九种优势
  8. jackson set properties to default value (取消让jackson 赋予默认值)
  9. 防御 DDoS 的终极奥义——又拍云 SCDN
  10. C语言编写贪吃蛇-链表的使用
  11. ddm模型公式_DDM模型绝对估值模型的理解和运用 分析师会利用DDM模型来给公司定价,如果投资者过于依赖,这样可能会给我们很好的机会,在他们犯错误时,就是我们把握机会的时... - 雪球...
  12. 将ppt的图保存成矢量图
  13. 基于图像传感器的可见光通信的优缺点分析
  14. zabbix监控WEB页面及告警 实战
  15. javaMail简单发送邮件
  16. 元宇宙:虚拟仿真技术的全面提升
  17. Isito - Rate Limits(请求限速)- 再战
  18. 使用12年的笔记本在本该退休的年纪被我再次启用
  19. 将两个有序列表合并,并保持顺序(一)
  20. hibernate c0p3 mysql_COP3详细配置说明

热门文章

  1. TOMCAT为什么打破双亲委派的类加载模型
  2. Python实现向s3共享存储上传和下载文件
  3. 爸爸和无我编程十条诫律
  4. 十一、springboot WebMvcConfigurer与HandlerInterceptorAdapter使用
  5. 虚假新闻检测挑战赛落幕,探寻获奖团队背后的故事
  6. 分分钟掌握设计基本原则
  7. 以实用著称的《PHP与MySQL程序设计(第3版)》问世啦!
  8. 区块链相关论文研读1- 关于边缘计算
  9. 基于深度学习的交互式问答研究综述
  10. 我被编程语言PUA了!用互联网黑话写代码,每天都在“赋能”变量