A Survey on Neural Network Interpretability

A Survey on Neural Network Interpretability----《神经网络可解释性调查》

摘要

  随着深度神经网络的巨大成功,人们也越来越担心它们的黑盒性质。可解释性问题影响了人们对深度学习系统的信任。它还与许多伦理问题有关,例如算法歧视。此外,可解释性是深度网络成为其他研究领域强大工具的理想属性,例如,药物发现和基因组学。在本次调查中,我们对神经网络可解释性研究进行了全面回顾。我们首先澄清可解释性的定义,因为它已在许多不同的上下文中使用。然后,我们阐述了可解释性的重要性,并提出了一个新的分类方法,沿着三个维度组织:参与的类型(被动和主动解释方法),解释的类型,以及重点(从局部到全局的可解释性)。这种分类法为相关文献中的论文分布提供了一个有意义的3D视图,因为其中的两个维度不是简单的分类,而是允许有序的子类别。最后,我们总结了现有的解释性评价方法,并在此基础上提出了可能的研究方向。

引言

  近年来,深度神经网络(dnn)在计算机视觉[2]、[3]、语音识别[4]、自然语言处理[5]等领域取得了巨大的成功,而最新的应用则出现在这些研究中[7]-[9]。他们不仅击败了许多以前的机器学习技术(例如,决策树,支持向量机),而且在某些现实世界的任务[4],[10]上实现了最先进的性能。由 DNN 支持的产品现已被数十亿人使用,例如面部和语音识别。DNN 也已成为许多科学领域的强大工具,例如医学 [11]、生物信息学 [12]、[13] 和天文学 [14],这些领域通常涉及大量数据。
  然而,深度学习仍然有一些明显的缺点。作为一个具有数百万个自由参数的非常复杂的模型(例如,AlexNet [2],6200 万个),DNN 经常被发现表现出意想不到的行为。例如,即使一个网络可以获得最先进的性能,并且似乎在物体识别任务上表现得很好,Szegedy等人[15]找到了一种方法,通过对输入图像施加某种不可察觉的变化,可以任意改变网络的预测。这种修改后的输入称为“对抗例子”。Nguyen等人[16]展示了另一种产生完全无法识别的图像(例如,看起来像白噪声)的方法,然而,DNN以99.99%的置信度将其识别为特定的对象。这些观察结果表明,尽管DNN可以在许多任务中获得卓越的表现,但它们的潜在机制可能与人类的机制非常不同,而且还没有被很好地理解。

A、可解释性的定义

  为了打开深层网络的黑匣子,许多研究者开始关注模型的可解释性。虽然已在各种文件中探讨了这一主题,但尚未就可解释性的定义达成明确的共识。之前的大部分作品都忽略了澄清问题,将其保留为“一看就知道”。如果我们仔细观察,就会发现可解释性的定义和动机通常是不同的,甚至是不一致的。
  之前对可解释性的一个定义是,在术语“解释”本身仍然难以理解的情况下,用人类[18]可理解的术语提供解释的能力。在回顾了之前的文献之后,我们在[18]的基础上对“解释”和“可理解的术语”做了进一步的澄清。
  可解释性是用可理解的语言向人类提供解释的能力。 其中,(1)理想情况下,解释应该是符合逻辑的决策规则(if-then规则),或者可以转换成符合逻辑的规则。然而,人们通常不要求以规则的形式明确地解释(但只要求一些可以用来构造解释的关键元素)。(2)易于理解的术语应该来自与任务相关的领域知识(或根据任务的常识)。
  我们的定义为可解释性研究提供了新的视角:(1)我们强调解释的形式而不是特定的解释者。毕竟,解释是用某种“语言”来表达的,无论是自然语言、逻辑规则还是其他东西。最近,人们强烈倾向于解释语言尽可能接近逻辑[19]。在实践中,人们并不总是需要一个完整的“句子”,它允许各种解释(规则、显着性掩码等)。这是对现有文献中的研究方法进行分类的一个重要角度。(2)领域知识是构建解释的基本单元。由于深度学习已经显示出其处理原始形式数据的能力,因此人们很难用其原始输入表示来解释模型。有了更多的领域知识,我们就可以得到更多可理解的表示,这些表示可以由领域专家进行评估。表1列出了不同任务中常用的几种表示。
  我们注意到一些研究区分了interpretability和explainability(或understandability、comprehensibility、transparency、human-simulatability等[17]、[23])。在本文中,我们不强调这些术语之间的细微差别。具体来说,我们专注于(深度)神经网络(很少是循环神经网络)的可解释性,其目的是提供对其内部工作原理和输入输出映射的解释。还有一些关于生成对抗网络(GAN)的可解释性研究。然而,作为一种生成模型,它与用作判别模型的常见神经网络略有不同。对于这个主题,我们希望读者参考最新的作品[24]-[29],其中许多作品与本文的“hidden semantics”部分(见第二节)有相似的观点,试图解释隐藏神经元或潜在空间的含义。
  根据我们的定义,Linux 操作系统的源代码是可解释的,尽管它对于开发人员来说可能会令人不知所措。深度决策树或高维线性模型(在可解释的输入表示之上)也是可解释的。有人可能会说它们是不可模拟的[17](即人类能够在短时间内在他/她的脑海中模拟模型从输入到输出的处理过程)。然而,我们声称它们仍然是可以解释的。
  除了上述(训练有素的神经网络)可解释性的限制范围外,还有一个更广泛的理解一般神经网络方法的领域,这是本文无法涵盖的。例如,DNN的经验成功给理论家提出了许多未解决的问题[30]。DNN 架构 [31]、[32] 的优点(或归纳偏差)是什么?DNN 的损失面/临界点 [33]-[36] 有哪些特性?为什么 DNN 仅通过简单的正则化就能很好地泛化 [37]-[39]?DNN 的鲁棒性/稳定性如何[40]-[45]?还有关于如何生成对抗性示例 [46]、[47] 和检测对抗性输入 [48] 的研究。

B、可解释性的重要性

  许多论文[17]、[18]、[49]已经强调了可解释性的必要性,强调缺乏可解释性可能有害的情况。然而,缺乏对此类论证的清晰组织的阐述。我们将可解释性重要性的论点归纳为三类。
  1)高可靠性要求:尽管深度网络在一些相对较大的测试集上表现出了良好的性能,但实际环境仍然要复杂得多。由于一些意外的失败是不可避免的,我们需要一些方法来确保我们仍然在控制中。深度神经网络不提供这样的选择。在实践中,它们经常被观察到在某些情况下会出现意想不到的性能下降,更不用说来自敌对示例[50]、[51]的潜在攻击了。
  可解释性并不总是需要的,但对于一些需要高度可靠的预测系统来说很重要,因为错误可能会导致灾难性结果(例如,人员生命、重大经济损失)。可解释性可以使潜在的故障更容易检测(借助领域知识),避免严重后果。此外,它可以帮助工程师查明根本原因并提供相应的解决方案。可解释性并不会使模型更可靠或其性能更好,但它是构建高度可靠系统的重要组成部分。
  2)伦理和法律要求: 第一个要求是避免算法歧视。由于机器学习技术的性质,经过训练的深度神经网络可能会继承训练集中的偏差,这有时很难注意到。当 DNN 在我们的日常生活中使用时,例如抵押贷款资格、信用和保险风险评估,会存在公平性问题。
  深度神经网络也已用于新药发现和设计[52]。计算药物设计领域由传统的机器学习方法(如随机森林和广义相加模型)主导,部分原因是当时它们的高效学习算法,也因为领域化学解释是可能的。新药要获得监管机构(如食品和药物管理局)的批准,也需要可解释性。除了临床试验的结果,通常还需要支持这些结果的生物学机制。医疗设备也是如此。
  可解释性的另一个法律要求是“解释权”[53]。根据《欧盟通用数据保护条例》(GDPR)[54]第22条,人们有权不受到对其产生法律效力或类似重大影响的自动决策的约束。数据控制者应保障数据所有者获得人为干预、表达观点和对决定提出异议的权利。如果我们不知道网络如何做出决定,就无法确保这些权利。
  3)科学用法:深度神经网络正在成为科学研究领域的强大工具,这些领域的数据可能具有复杂的内在模式(例如基因组学[55]、天文学[14]、物理学[56]甚至社会科学[57])。“科学”一词源自拉丁语“scientia”,意思是“知识”。当深度网络达到比旧模型更好的性能时,它们一定发现了一些未知的“知识”。可解释性是揭示它的一种方式。

C. 相关工作和贡献

  已经有人尝试总结神经网络可解释性的技术。然而,它们大多数只提供基本的分类或枚举,没有明确的分类法。Lipton [17] 指出,可解释性一词并没有明确的定义,并且在不同的研究中通常具有不同的含义。然后,他对可解释性研究中的需求(如信任、因果关系、公平决策等)和方法(事后解释)进行了简单的分类。Doshi-Velez和Kim[18]对可解释性的定义和评价进行了讨论,启发我们制定更严格的定义,并在此基础上对现有的方法进行分类。Montavon等人[58]将解释的定义限定为特征重要性(在其他地方也称为解释向量),并回顾了通过网络解释已学习概念和个体预测的技术。它们的目的不是提供一个全面的概述,只是包括一些有代表性的方法。Gilpin等人[59]将方法分为三类:解释数据处理、解释数据表示和解释生成网络。在这种分类下,线性代理模型方法和规则提取方法同样被视为代理方法,而没有注意到它们之间有很多差异(前者是局部方法,而后者通常是全局方法,并且它们产生的解释不同,我们将请参阅我们的分类法)。Guidotti等人[49]考虑了所有的黑箱模型(包括树集合、支持向量机等),并给出了一个基于四个维度(可解释性问题的类型、解释器的类型、黑箱模型的类型、数据的类型)的细粒度分类。然而,他们将决策树、决策规则、显着性掩模、敏感性分析、激活最大化等视为解释器。在我们看来,有些是某种类型的解释,有些是用于产生解释的方法。Zhang和Zhu[60]回顾了在计算机视觉领域中理解网络中间层表示或使用可解释表示学习网络的方法。
  本调查有以下贡献:(1)在参考文献[18]的基础上,我们进一步向可解释性的定义迈进了一步。在这个定义中,我们强调解释的类型(或格式)(例如,规则形式,包括决策树和决策规则集)。这是我们提出的分类法中的一个重要维度。以前的论文通常将现有方法组织成各种孤立的(在很大程度上)解释器(例如决策树、决策规则、特征重要性、显着性图等)。(2)我们分析了可解释性的真正需求,并将其总结为三组:可解释性作为系统的重要组成部分,应该具有高度可靠性;道德或法律要求;并且可解释性提供增强相关科学领域知识的工具。相比之下,之前的一项调查[49]仅通过提供黑盒模型可能存在危险的几种案例来显示可解释性的重要性。(3)我们提出了一种新的分类法,包括三个维度(被动与主动方法、解释格式以及局部-半局部-全局可解释性)。请注意,尽管以前的文献中已经讨论了分类学的许多成分,但它们要么是在完全不同的上下文中提到的,要么是相互交织的。据我们所知,我们的分类法提供了现有方法最全面、最清晰的分类。
  我们的分类组织的三个自由度允许一个示意图的3D视图,说明了在深层网络可解释性方面的各种尝试是如何相关的。它还通过填补可解释性研究中的一些空白,为可能的未来工作提供了建议(参见图2)。
在这里插入图片描述

分类方法

  我们提出了一种具有三个维度的新分类法(见图 1):(1)被动与主动方法维度,(2)产生的解释的类型/格式,以及(3)分别从局部到全局的可解释性维度。 第一个维度是分类的,有两个可能的值:被动解释和主动可解释性干预。它根据是否需要改变网络架构或优化过程对现有方法进行划分。被动解释过程从经过训练的网络开始,所有权重均已从训练集中学习。此后,这些方法尝试提取逻辑规则或提取一些可理解的模式。而主动方法则需要在训练前进行一些改变,如引入额外的网络结构或修改训练过程。这些修改使网络变得更加可解释(例如,更像一个决策树)。最常见的是,此类主动干预以正则化条款的形式出现。
在这里插入图片描述
  与以前的调查不同,其他两个维度允许序数值。例如,前面提出的解释器[49]的维度类型产生了诸如决策树、决策规则、特征重要性、敏感性分析等子类别。然而,这些预先认可的解释器之间并没有明确的联系(决策树和特征重要性之间的关系是什么)。相反,我们的第二个维度是解释的类型/格式。通过检查不同方法产生的各种解释,我们可以观察到它们的明确程度的差异。逻辑规则提供了最清晰和明确的解释,而其他类型的解释可能是隐含的。例如,显著性映射本身只是某个输入的掩码。通过观察显著性图,人们构建了一种解释:“模型之所以做出这种预测,是因为它聚焦于(输入的)这个高度有影响力的部分和那个部分”。希望这些部分对应于一些领域可理解的概念。严格来说,隐含的解释本身并不是完整的解释,需要进一步的人类解释,而这通常是人们在看到它们时自动完成的。我们在这里认识到四种主要的解释类型,逻辑规则、隐藏语义、归因和举例解释,并按解释能力递减的顺序排列。在之前的文献中也有类似的讨论,例如,Samek等人[61]提供了一个关于“解释类型”的简短小节(包括解释习得表征、解释个体预测等)。然而,它与我们将在下一段中介绍的可解释性研究的另一个独立维度混合在一起。最近的一项调查[62]遵循同样的哲学,将显著性映射和概念归因[63]视为不同类型的解释,而我们认为它们是相同的,只是在下面的维度上有所不同。
  最后一个维度,从局部可解释性到全局可解释性(相对于输入空间),在最近的论文中变得非常常见(例如,[18]、[49]、[58]、[64]),其中全局可解释性意味着能够理解模型的整体决策逻辑,局部可解释性侧重于单个预测的解释。然而,在我们提出的维度中,全局可解释性和局部可解释性(即半局部可解释性)之间存在过渡而不是硬性划分。局部解释通常利用目标输入的信息(例如,它的特征值,它的梯度)。但全局解释试图推广到尽可能广泛的输入(例如,规则学习中的顺序覆盖、特征重要性排名的边际贡献)。这种观点也得到了几种半局部解释方法[65]、[66]的存在的支持。也有人尝试以自下而上的方式将局部解释融合到全局解释中[19],[67],[68]。为了帮助理解后两个维度,表II列出了分类法下不同子类别产生的典型解释的示例。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/124021.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于Python的书籍数据采集与可视化分析系统

温馨提示:文末有 CSDN 平台官方提供的学长 Wechat / QQ 名片 :) 1. 项目简介 基于Python的书籍数据采集与可视化分析系统旨在挖掘和分析海量图书数据背后的规律和趋势,为读者、出版商和数据分析师提供更深入的洞察和辅助决策。本系统依托于某瓣庞大的图书…

JS逆向爬虫---请求参数加密②【某麦数据analysis参数加密】

主页链接: https://www.qimai.cn/rank analysis逆向 完整参数生成代码如下&#xff1a; const {JSDOM} require(jsdom) const dom new JSDOM(<!DOCTYPE html><p>hello</p>) window dom.windowfunction customDecrypt(n, t) {t t || generateKey(); //…

20 VPN详解

1、连接数据中心 1.第一种方式是走公网&#xff0c;但是公网太不安全 2.第二种方式是专线&#xff0c;但是比较贵 3.VPN连接2、vpn的概念 全名Virtual Private Network&#xff0c;虚拟专用网&#xff0c;就是利用开放的公众网络&#xff0c;建立专用数据传输通道&#xff0c…

洛谷P5731 【深基5.习6】蛇形方阵java版题解

import java.util.Arrays; import java.util.Scanner;// 给出一个不大于9的正整数n&#xff0c;输出nn的蛇形方阵。 public class Main {public static void main(String[] args) {Scanner sc new Scanner(System.in);int n sc.nextInt();int[][] a new int[n][n];int total…

《016.SpringBoot+vue校园社团管理系统》【有文档】

《016.SpringBootvue校园社团管理系统》【有文档】 项目简介 [1]本系统涉及到的技术主要如下&#xff1a; 推荐环境配置&#xff1a;DEA jdk1.8 Maven MySQL 前后端分离; 后台&#xff1a;SpringBootMyBatisPlus; 前台&#xff1a;vueElementUI; [2]功能模块展示&#xff1a…

HCIP---VLAN

文章目录 目录 目录 文章目录 前言 一.VLAN概述 作用&#xff1a; 二.VLAN基础认识 VLAN ID: VLAN端口类别 总结 前言 VLAN技术是现代企业网络和数据中心网络的核心技术之一。本文将重点针对VLAN技术进行详解。 一.VLAN概述 VLAN&#xff08;Virtual Local Area Network…

自动化实战 - 测试个人博客系统

前言 本篇使用Selenium3Junit5对个人博客进行自动化测试&#xff0c;如有错误&#xff0c;请在评论区指正&#xff0c;让我们一起交流&#xff0c;共同进步&#xff01; 文章目录 前言一.web自动化测试用例二.测试准备1.注册界面自动化测试测试过程中遇到的Bug: 2.登录界面自动…

Java基础——数组(一维数组与二维数组)

文章目录 一维数组声明初始化与赋值内存图解 二维数组声明初始化与赋值内存图解 数组练习杨辉三角冒泡排序线性查找二分法数组反转 数组是多个相同类型的数据按一定顺序排列的集合。 说明&#xff1a; 数组是引用数据类型&#xff0c;数组的元素是同一类型的任何数据类型&…

【C#学习笔记】事件

前言 在之前我学习委托的时候&#xff0c;写到了 学习了委托&#xff0c;事件其实也就学习了&#xff0c;事件和委托基本上一模一样&#xff1a; 然而在实际工作中通过对事件的深入学习后发现&#xff0c;实际上事件的使用比委托要严格一些&#xff0c;本节将详细讲解事件的使…

介绍两个好用又好玩的大模型工具

先让数字人跟大家打个招呼吧。 我的AI数字人会手语了 发现没&#xff0c;我的数字人本周又学了一个新技能&#xff1a;手语。 这些数字人都是通过AI生成的。 但数字人不是今天的主题&#xff0c;今天要跟大家聊聊大模型。 自从大模型出现后&#xff0c;很多人&#xff08;包…

20行JS代码实现屏幕录制

在开发中可能有遇到过屏幕录制的需求&#xff0c;无论是教学、演示还是游戏录制&#xff0c;都需要通过屏幕录制来记录和分享内容。一般在App内H5页基于客户端能力实现的较多&#xff0c;现在浏览器中的 MediaRecorder 也提供了这种能力。MediaRecorder 是一种强大的技术&#…

Mybatis(一)

1. Mybatis简介 MyBatis下载地址 1.1 MyBatis历史 MyBatis最初是Apache的一个开源项目iBatis, 2010年6月这个项目由Apache Software Foundation迁移到了Google Code。随着开发团队转投Google Code旗下&#xff0c;iBatis3.x正式更名为MyBatis。代码于2013年11月迁移到Github…

【遍历二叉树的非递归算法,二叉树的层次遍历】

文章目录 遍历二叉树的非递归算法二叉树的层次遍历 遍历二叉树的非递归算法 先序遍历序列建立二叉树的二叉链表 中序遍历非递归算法 二叉树中序遍历的非递归算法的关键&#xff1a;在中序遍历过某个结点的整个左子树后&#xff0c;如何找到该结点的根以及右子树。 基本思想&a…

4个杀手级Pycharm高效插件

本文将介绍4个学习Python的人都应该安装的Pycharm插件&#xff0c;通过这些插件提高工作效率并使Pycharm看起来更美观。 1、简介 Pycharm是Python最受欢迎的集成开发环境之一。它具有良好的代码助手、漂亮的主题和快捷方式&#xff0c;使编写代码变得简单快捷。 话虽如此&…

深度学习中的图像增强合集

引言 图像增强是我们在深度学习领域中绕不开的一个话题&#xff0c;本文我们将讨论什么是图像增强&#xff0c;并在三个不同的 python 库中实现它&#xff0c;即 Keras、Pytorch 和 augmentation&#xff08;专门用于图像增强的一个库&#xff09;。所以第一个问题就是什么是图…

Linux shell编程学习笔记21:用select in循环语句打造菜单

一、select in循环语句的功能 Linux shell脚本编程提供了select in语句&#xff0c;这是 Shell 独有的一种循环语句&#xff0c;非常适合终端&#xff08;Terminal&#xff09;这样的交互场景&#xff0c;它可以根据用户的设置显示出带编号的菜单&#xff0c;用户通过输入不同…

nginx-配置拆分(各个模块详细说明)

主配置文件 配置结构 ... #nginx全局块events { #events块... #events块 }http { #http块... #http全局块server { #server块... #server全局块location [PATTERN] { #location块... #location块}location [PATTERN] {...}}serv…

高性能网络编程 - The C10K problem 以及 网络编程技术角度的解决思路

文章目录 C10KC10K的由来C10K问题在技术层面的典型体现C10K问题的本质C10K解决思路思路一&#xff1a;每个进程/线程处理一个连接思路二&#xff1a;每个进程/线程同时处理多个连接&#xff08;IO多路复用&#xff09;● 实现方式1&#xff1a;直接循环处理多个连接● 实现方式…

线上 kafka rebalance 解决

上周末我们服务上线完毕之后发生了一个kafka相关的异常&#xff0c;线上的kafka频繁的rebalance&#xff0c;详细的报错我已经贴到下面&#xff0c;根据字面意思&#xff1a;消费者异常 org.apache.kafka.clients.consumer.CommitFailedException: 无法完成提交&#xff0c;因为…

设计模式-状态模式 golang实现

一 什么是有限状态机 有限状态机&#xff0c;英⽂翻译是 Finite State Machine&#xff0c;缩写为 FSM&#xff0c;简称为状态机。 状态机不是指一台实际机器&#xff0c;而是指一个数学模型。说白了&#xff0c;一般就是指一张状态转换图。 已订单交易为例&#xff1a; 1.…
最新文章