diff --git a/docs/0.md b/docs/0.md index d93293c7d2148f114d4544fb76e6fd67876794b9..c396cf129f247047b3c8f3a72ce9af8eb25e1b29 100644 --- a/docs/0.md +++ b/docs/0.md @@ -8,6 +8,8 @@ ## 前言 +![img](https://christophm.github.io/interpretable-ml-book/images/title_page.jpg) + 机器学习对于改进产品、过程和研究有很大的潜力。但是**计算机通常不能解释他们的预测**,这是机器学习的一个障碍。这本书是关于使机器学习模型和它们的决策可解释。 在探索了可解释性的概念之后,您将学习简单的、**可解释的模型**,如决策树、决策规则和线性回归。后面几章重点介绍了**解释黑箱模型**的一般模型不可知论方法,如特征重要性和累积局部效应,以及用沙普利值(Shapley) 和 LIME 解释个别预测。 diff --git a/docs/1.md b/docs/1.md index 2f27fa2f6080ad2a81d43913f24396cb66b01768..5bca1fa8233c41b2e70473a1ebe2ff34fedc9ceb 100644 --- a/docs/1.md +++ b/docs/1.md @@ -26,6 +26,8 @@ $^1$ 弗里德曼、杰罗姆、特雷弗·黑斯迪和罗伯特·提比西拉 ### 2030年:瑞士医学实验室 +![img](https://christophm.github.io/interpretable-ml-book/images/hospital.jpg) + “这绝对不是最糟糕的死法!“汤姆总结了一下,试图在负面的事情中找到一些正面的东西。他从静脉输液管上取下了泵。 “他是因为错误而死的,”莉娜补充说。 “当然是用错了吗啡泵!为我们增大了工作量!“汤姆一边抱怨一边拧下泵的后板。拆下所有的螺丝后,他把盘子举起放在一边。他把电缆插入诊断端口。 @@ -59,6 +61,8 @@ $^1$ 弗里德曼、杰罗姆、特雷弗·黑斯迪和罗伯特·提比西拉 ### 2050年:新加坡的地铁站 +![img](https://christophm.github.io/interpretable-ml-book/images/access-denied.jpg) + 她赶到璧山地铁站。按照她的想法,她已经在工作了。新的神经架构的测试现在应该已经完成了。她领导重新设计了政府的“个人实体纳税亲和力预测系统”,该系统预测一个人是否会向税务局隐瞒资金。她的团队想出了一个优雅的想法。如果成功,该系统不仅可以为税务局服务,还可以提供给其他系统,如反恐警报系统和商业登记处。有一天,政府甚至可以将这些预测纳入公民信任评分。公民信任评分评估一个人的可信度。这个估计会影响到每个人日常生活的每一部分,比如贷款或者要等多久才能拿到新护照。当她走下扶梯时,她想象着她的团队系统与公民信任评分系统的整合会是怎样的。 她经常在不降低行走速度的情况下用手擦拭 RFID 阅读器。她的思绪被占据了,但是感官期望和现实的不一致在她的大脑中敲响了警钟。 @@ -85,6 +89,8 @@ $^1$ 弗里德曼、杰罗姆、特雷弗·黑斯迪和罗伯特·提比西拉 ### 612年(火星定居后):火星博物馆 +![img]I(https://christophm.github.io/interpretable-ml-book/images/burnt-earth.jpg) + “历史很无聊,”Xola 低声对她的朋友说。Xola,一个蓝头发的女孩,正懒洋洋地用左手追着一架投影仪在房间里嗡嗡作响。“历史很重要,”老师看着女孩们,用一种沮丧的声音说。Xola 脸红了。她没想到老师会听到了她说话。 “Xola,你刚学到了什么?”老师问她。“古人用尽了地球上所有的资源,然后死了?“她仔细地问。“不,他们让气候变热,不是人,而是电脑和机器。“这是行星地球,而不是地球行星,”另一个叫林·塞拉的女孩点头表示同意。带着一丝骄傲,老师微笑着点了点头。“你们都是对的。你知道为什么会这样吗?因为人们目光短浅,贪婪?“Xola问。“人们无法停止他们的机器!”林脱口而出。 @@ -127,55 +133,59 @@ $^1$ 弗里德曼、杰罗姆、特雷弗·黑斯迪和罗伯特·提比西拉 *拥抱熵。* -“黑暗的记忆,”老师说,打破了房间里的沉默。“它将上载到你的图书馆中。你的家庭作业下个星期交。”Xola叹了口气。她设法抓住了一只小无人机。无人机从中央处理器和引擎发出的声音很温暖。Xola喜欢它温暖她的手。 +“黑暗的记忆,”老师说,打破了房间里的沉默。“它将上载到你的图书馆中。你的家庭作业下个星期交。”Xola 叹了口气。她设法抓住了一只小无人机。无人机从中央处理器和引擎发出的声音很温暖。Xola 喜欢它温暖她的手。 ## 1.2 什么是机器学习? 机器学习是计算机用来根据数据作出和改进预测或行为的一套方法。 -例如,为了预测房屋的价值,计算机将从过去的房屋销售中学习模式。这本书集中在监督机器学习上,它涵盖了所有的预测问题,其中我们有一个数据集,我们已经知道感兴趣的结果(如过去的房价),并希望学习预测新数据的结果。例如,从监督学习中排除的是群集任务(=无监督学习),在这些任务中,我们没有感兴趣的特定结果,但希望找到数据点的群集。此外,诸如强化学习之类的事情也被排除在外,在这种情况下,代理通过在一个环境中(如玩俄罗斯方块的计算机)的行为来学习优化某种奖励。监督学习的目标是学习一个预测模型,将数据特征(如房屋大小、位置、楼层类型等)映射到输出(如房价)。如果输出是分类的,则任务称为分类,如果输出是数值的,则称为回归。机器学习算法通过估计参数(如权重)或学习结构(如树)来学习模型。该算法由一个最小化的分数或损失函数指导。在房屋价值示例中,机器将估计房屋价格和预测价格之间的差额最小化。然后,可以使用经过充分训练的机器学习模型来预测新实例。 +例如,为了预测房屋的价值,计算机将从过去的房屋销售中学习模式。这本书关注点在监督机器学习上,它涵盖了所有的预测问题,其中我们有一个数据集,我们已经知道感兴趣的结果(如过去的房价),并希望学习预测新数据的结果。例如,聚类任务(=无监督学习)就不在监督学习范畴中,在这些任务中,我们没有特定关注的结果,但希望找到数据点的簇(中心点)。此外,诸如强化学习之类的事情也被排除,在这种情况下,智能体通过在一个环境中(如玩俄罗斯方块的计算机)的行为来学习优化某种奖励。监督学习的目标是学习一个预测模型,将数据特征(如房屋大小、位置、楼层类型等)映射到输出(如房价)。如果输出是类别,则任务称为分类,如果输出是数值,则称为回归。机器学习算法通过估计参数(如权重)或学习结构(如树)来学习模型。该算法由一个最小化的分数或损失函数指导。在房屋价值示例中,机器将估计房屋价格和预测价格之间的差值进行最小化。然后,可以使用经过充分训练的机器学习模型来预测新实例。 房价估算、产品推荐、路标检测、信用违约预测和欺诈检测:所有这些例子都有共同点,可以通过机器学习来解决。任务不同,但方法相同: -第一步:数据采集。越多越好。数据必须包含要预测的结果以及要从中进行预测的其他信息。对于街道标志检测器(“图像中有街道标志吗?”“),您将收集街道图像并标记街道标志是否可见。对于信用违约预测者,您需要实际贷款的过去数据、客户是否拖欠贷款的信息以及有助于您做出预测的数据,例如收入、过去信用违约等。对于自动房屋价值评估程序,您可以从过去的房屋销售中收集数据和有关房地产的信息,如大小、位置等。 +第一步:数据采集。越多越好。数据必须包含要预测的结果以及要从中进行预测的其他信息。对于街道标志检测器(“图像中有街道标志吗?“),您将收集街道图像并标记是否存在街道标志。对于信用违约的预测,您需要过去实际贷款的数据、客户是否拖欠贷款的信息以及有助于您做出预测的数据,例如收入、过去信用违约等。对于自动房屋价值评估程序,您可以从过去的房屋销售中收集数据和有关房地产的信息,如大小、位置等。 第二步:将这些信息输入机器学习算法,生成信号检测器模型、信用评级模型或房屋价值估计器。 -步骤3:将模型与新数据一起使用。将模型集成到产品或流程中,例如自动驾驶汽车、信贷申请流程或房地产市场网站。 +第三步:将新数据输入模型。将模型集成到产品或流程中,例如自动驾驶汽车、信贷申请流程或房地产市场网站。 + +机器在许多任务上都超过人类,例如下棋(或最近的Go)或天气预测。即使机器和人一样好,或者在任务上略微逊色,在速度、再现性和缩放方面仍然有很大的优势。一个一旦实现的机器学习模型可以比人类更快地完成一项任务,可靠地提供一致的结果,并且可以无限地复制。在另一台机器上复制机器学习模型既快又廉价。训练一个人完成一项任务可能需要几十年(尤其是当他们年轻时),而且成本很高。使用机器学习的一个主要缺点是,关于数据和机器解决的任务的思路被隐藏在愈加复杂的模型中。你需要数以百万计的参数来描述一个深层的神经网络,而没有办法完全理解这个模型。其他模型,如随机森林,由数百个决策树组成,它们“投票”预测。为了理解这个决定是如何做出的,你必须查看数百棵树中每棵树的投票和结构。不管你有多聪明或者你的记忆能力有多好,这都是行不通的。即使每个模型都可以被解释,但性能最好的模型通常是无法解释的多个模型(也称为集合)的集成。如果只关注性能,您将自动获得越来越多不透明的模型。只需看一看[Kaggle.com](http://blog.kaggle.com/)机器学习竞赛平台对获胜者的采访:胜出的模型大多是模型的集成,或是非常复杂的模型,如集成树或深层神经网络。 + +## 1.3 术语 -机器在许多任务上都超过人类,例如下棋(或最近的下棋)或预测天气。即使机器和人一样好,或者在任务上有点差,在速度、再现性和缩放方面仍然有很大的优势。一个一旦实现的机器学习模型可以比人类更快地完成一项任务,可靠地提供一致的结果,并且可以无限地复制。在另一台机器上复制机器学习模型既快又便宜。训练一个人完成一项任务可能需要几十年(尤其是当他们年轻时),而且代价很高。使用机器学习的一个主要缺点是,机器解决的数据和任务的见解隐藏在越来越复杂的模型中。你需要数以百万计的数字来描述一个深层的神经网络,而没有办法完全理解这个模型。其他模型,如随机森林,由数百个决策树组成,它们“投票”预测。为了理解这个决定是如何做出的,你必须查看数百棵树中每一棵树的投票和结构。不管你有多聪明或者你的工作记忆有多好,这都是行不通的。即使每个模型都可以被解释,但性能最好的模型通常是无法解释的多个模型(也称为集合)的混合。如果只关注性能,您将自动获得越来越多不透明的模型。看一看:胜出的模型大多是模型的集合,或是非常复杂的模型,如增强树或深层神经网络。 +为避免歧义引起混淆,本书中使用的术语定义如下: -1.3术语 +**算法**是机器为达到特定目标[$^2$](https://christophm.github.io/interpretable-ml-book/#fn2%20class=)而遵循的一组规则。可以将算法视为定义输入、输出以及从输入到输出所需的所有步骤的说明。烹饪食谱是一种算法,其中成分是输入,熟食是输出,准备和烹饪步骤是算法指令。 -为避免歧义造成混淆,本书中使用的术语定义如下: +**机器学习**是一套方法,允许计算机从数据中学习,以做出和改进预测(例如癌症、每周销售、信用违约)。机器学习是从“正常编程”到“间接编程”的一种范式转换,所有指令都必须明确地提供给计算机,而“间接编程”是通过提供数据来实现的。 -算法是机器为达到特定目标而遵循的一组规则。可以将算法视为定义输入、输出以及从输入到输出所需的所有步骤的配方。烹饪食谱是一种算法,其中成分是输入,熟食是输出,准备和烹饪步骤是算法指令。 +![img](https://christophm.github.io/interpretable-ml-book/images/programing-ml.png) -机器学习是一套方法,允许计算机从数据中学习,以做出和改进预测(例如癌症、每周销售、信用违约)。机器学习是从“正常编程”到“间接编程”的一种范式转换,所有指令都必须明确地提供给计算机,而“间接编程”是通过提供数据来实现的。 +**学习者**或**机器学习算法**是用来从数据中学习机器学习模型的程序。另一个名字是“诱导器”(例如“树诱导器”)。 -学习者或机器学习算法是用来从数据学习机器学习模型的程序。另一个名字是“诱导器”(例如“树诱导器”)。 +**机器学习模型**是将输入映射到预测的学习程序。这可以是线性模型或神经网络的一组权重。“模型”这个不太具体的词的其他名称是“预测器”,或者——取决于任务——“分类器”或者“回归模型”。在公式中,经过训练的机器学习模型称为 $(\hat{f})$ 或 $(\hat{f}(x))$。 -机器学习模型是将输入映射到预测的学习程序。这可以是线性模型或神经网络的一组权重。“模型”这个不太具体的词的其他名称是“预测器”,或者——取决于任务——“分类器”或者“回归模型”。在公式中,经过训练的机器学习模型称为\(\hat f \)或\(\hat f(x))。 +![img](https://christophm.github.io/interpretable-ml-book/images/learner.png) -图1.1:学习者从标记的培训数据学习模型。该模型用于预测。 +图1.1:学习者从标记的训练数据学习模型。该模型用于预测。 -黑盒模型是一个不揭示其内部机制的系统。在机器学习中,“黑匣子”描述了通过查看参数(例如神经网络)无法理解的模型。黑盒的对立面有时被称为白盒,在本书中被称为可解释性,将机器学习模型视为黑盒,即使它们不是。 +**黑盒模型**是一个不揭示其内部机制的系统。在机器学习中,“黑匣子”描述了通过查看参数(例如神经网络)却无法理解的模型。黑盒的对立面有时被称为**白盒**,在本书中被称为[可解释性模型](https://christophm.github.io/interpretable-ml-book/simple.html#simple),用于解释模型的[不可知方法](https://christophm.github.io/interpretable-ml-book/agnostic.html#agnostic)将机器学习模型视为黑盒,即使它们不是。 -可解释机器学习是指使机器学习系统的行为和预测对人类可理解的方法和模型。 +![img](https://christophm.github.io/interpretable-ml-book/images/iml.png) -数据集是一个表,其中包含机器从中学习的数据。数据集包含要预测的功能和目标。当用于诱导模型时,数据集称为训练数据。 +**可解释机器学习**是指使机器学习系统的行为和预测对人类可理解的方法和模型。 -实例是数据集中的一行。“instance”的其他名称是:(data)point,example,observation。实例由功能值\(x^(i)\)和目标结果(如果已知)组成。 +**数据集**是一个表格,其中包含机器从中学习的数据。数据集包含要预测的特征和目标。当用于训练模型时,数据集称为训练数据。 -这些特征是用于预测或分类的输入。功能是数据集中的列。在整本书中,人们都认为特征是可以解释的,这意味着很容易理解它们的含义,比如某一天的温度或一个人的身高。特征的可解释性是一个很大的假设。但是,如果很难理解输入特性,那么更难理解模型的功能。对于单个实例,具有所有特性的矩阵称为x和\(x^(i)\)。所有实例的单个功能的向量是\(x_j),而功能j和实例i的值是\(x^(i)_j)。 +**实例**是数据集中的一行。“instance”的其他名称是:(数据)点,样本,观测对象。实例由特征值 $(x^{i})$ 和目标结果 $(y_i)$(如果已知)组成。 -目标是机器学会预测的信息。在数学公式中,对于单个实例,目标通常称为y或(y_i)。 +这些**特征**是用于对输入进行预测或分类的。特征是数据集中的列。在整本书中,人们都认为特征是可解释的,这意味着很容易理解它们的含义,比如某一天的温度或一个人的身高。特征的可解释性是一个很大的假设。但是,如果很难理解输入特征,那么更难理解模型的行为。对于单个实例,具有所有特征的矩阵称为 $X$ 和 $(x^{i})$ 。所有实例的单个特征向量是 $(x_j)$,而特征 $j$ 和实例 $i$ 的值是 $(x^i_j)$。 -机器学习任务是一个具有特征和目标的数据集的组合。根据目标的类型,任务可以是分类、回归、生存分析、聚类或异常值检测。 +**目标**是机器学会预测的信息。在数学公式中,对于单个实例,目标通常称为 $y$ 或 $(y_i)$ 。 -预测是机器学习模型根据给定的特性“猜测”目标值应该是什么。在本书中,模型预测用\(\hat f(x^(i))或\(\hat y)表示。 +**机器学习任务**是一个具有特征和目标的数据集的组合。根据目标的类型,任务可以是分类、回归、生存分析、聚类或异常值检测。 -![img](file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image002.gif) +**预测**是机器学习模型根据给定的特征“猜测”目标值应该是什么。在本书中,模型预测用 $(\hat{f}(x^i))$ 或 $\hat{y}$ 表示。 -1。“算法定义”。(2017年)。 +2. “算法的定义”。 https://www.merriam-webster.com/dictionary/algorithm(2017年) diff --git a/docs/2.md b/docs/2.md index 3e357811582379618b89d369fd23d3d4c505334a..e67cb40d0dcc69bbbdb2acd00f9ce625edbc9a55 100644 --- a/docs/2.md +++ b/docs/2.md @@ -1,192 +1,173 @@ # 第二章 解释性 -对可解释性没有数学定义。Miller(2017)对(非数学)的定义是:可解释性是指人们能够理解决策原因的程度。另一个问题是:可解释性是指一个人能够始终如一地预测模型结果的程度机器学习模型的可解释性越高,就越容易理解为什么做出某些决定或预测。如果一个模型的决策比另一个模型的决策更容易理解,那么它比另一个模型更容易解释。我将同时使用可解释和可解释的术语。像Miller(2017)一样,我认为区分术语的可解释性/可解释性和解释性是有意义的。我将使用“解释”来解释个别预测。去了解我们人类认为是一个很好的解释。 +对可解释性没有是数学定义的。Miller(2017)[$^3$](https://christophm.github.io/interpretable-ml-book/#fn3%20class=)对(非数学)的定义是:**可解释性是指人们能够理解决策原因的程度**。另一种说法是:**可解释性是指一个人能够一直预测模型结果的程度**[$^4$](https://christophm.github.io/interpretable-ml-book/#fn4%20class=)。机器学习模型的可解释性越高,就越容易理解为什么做出某些决定或预测。如果一个模型的决策比另一个模型的决策更容易理解,那么它比另一个模型更容易解释。我将同时使用可解释和可解释的术语。像Miller(2017)一样,我认为区分术语的可解释性/可解释性和解释性是有意义的。我将使用“解释”来解释个别预测。请参阅[有关解释的部分](https://christophm.github.io/interpretable-ml-book/explanation.html#explanation),以了解我们所认为的好的解释性这个定义。 -![img](file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image003.gif) +$^3$ 米勒,蒂姆。“人工智能的解释:社会科学的洞察”,arxiv:1706.07269。(2017年)。 -\1. 米勒,蒂姆。“人工智能的解释:社会科学的洞察”,arxiv再版:1706.07269。(2017年)。 +$^4 $ Kim、Be、Rajiv Khanna和Oluwasanmi O.Koyejo。“例子不够,要学会批判!对可解释性的批评,《神经信息处理系统的进展》(2016年)。 -\2. Kim、Be、Rajiv Khanna和Oluwasanmi O.Koyejo。“例子不够,要学会批判!对可解释性的批评〉,《神经信息处理系统的进展》(2016年)。 +## 2.1 可解释性的重要性 -2.1可解释性的重要性 +如果一个机器学习模型运行良好,**为什么我们不相信这个模型**而无视它**为什么**做出某个决定呢?“问题在于,单一指标(如分类精度)是对大多数现实任务的不完整描述。”(Doshi Velez和Kim 2017 [$^5$](https://christophm.github.io/interpretable-ml-book/#fn5%20class=)) -如果一个机器学习模型运行良好,为什么我们不信任这个模型而忽略它为什么做出某个决定呢?“问题在于,单一指标(如分类精度)是对大多数现实任务的不完整描述。”(Doshi Velez和Kim 2017 +让我们更深入地讨论解释性如此重要的原因。当涉及到预测建模时,你必须权衡一下:你只是想知道预测的结果**是什么**吗?例如,客户流失的概率,或者某些药物对患者的疗效。或者你想知道**为什么**会做出预测,并且可能会因为预测性能的下降而付出解释性的代价吗?在某些情况下,你不关心做出决定的原因,只需知道测试数据集的预测性能是好的就足够了。但在其他情况下,了解“为什么”可以帮助你了解更多关于问题、数据以及模型可能失败原因的信息。有些模型可能不需要解释,因为它们在低风险环境中使用,这意味着错误不会产生严重后果(例如电影推荐系统),或者该方法已经被广泛研究和评价(例如光学字符识别)。对可解释性的需求来自问题形式化的不完整性(Doshi Velez和Kim 2017),这意味着对于某些问题或任务,获得预测结果是不够的(**是什么**)。模型还必须解释它是如何得出预测的(**为什么**),因为正确的预测只部分地解决了最初的问题。以下原因推动了对可解释性和解释的需求(Doshi Velez和Kim 2017和Miller 2017)。 -让我们更深入地探讨解释性如此重要的原因。当涉及到预测建模时,你必须权衡一下:你只是想知道什么是预测的吗?例如,客户流失的概率,或者某些药物对患者的疗效。或者你想知道为什么会做出预测,并且可能会因为预测性能的下降而付出解释性的代价吗?在某些情况下,您不关心做出决定的原因,只需知道测试数据集的预测性能是好的就足够了。但在其他情况下,了解“为什么”可以帮助您了解更多关于问题、数据以及模型可能失败的原因的信息。有些模型可能不需要解释,因为它们在低风险环境中使用,这意味着错误不会产生严重后果(例如电影推荐系统),或者该方法已经被广泛研究和评估(例如光学字符识别)。对可解释性的需求来自问题形式化的不完整性(Doshi Velez和Kim 2017),这意味着对于某些问题或任务,不足以得到预测(什么)。模型还必须解释它是如何得出预测的(原因),因为正确的预测只部分地解决了您最初的问题。以下原因推动了对解释和解释的需求(Doshi Velez和Kim 2017和Miller 2017)。 +**人类的好奇心和学习能力**:人类有一个环境的心理模型,当一些意想不到的事情发生时,这个模型就会被更新。通过查找意外事件的解释来执行此更新。例如,一个人突然感到不舒服,他问:“为什么我感到这么不舒服?“。他知道每次吃那些红色浆果他都会生病。他更新了他的心理模型,并决定浆果导致了疾病,因此应该避免。当研究中使用不透明的机器学习模型时,如果模型只给出没有解释的预测,那么科学发现仍然是完全隐藏的。为了促进学习与满足好奇心,为什么某些预测或行为是由机器产生的,可解释性和解释是至关重要的。当然,人类不需要对所发生的一切进行解释。对于大多数人来说,他们可以不理解计算机是如何工作的的。意外事件使我们好奇。例如:为什么我的计算机意外关闭? -人类的好奇心和学习能力:人类有一个环境的心理模型,当一些意想不到的事情发生时,这个模型就会被更新。通过查找意外事件的解释来执行此更新。例如,一个人突然感到不适,他问:“为什么我感到如此不适?“。他知道每次吃那些红色浆果他都会生病。他更新了他的精神模型,并决定浆果导致了疾病,因此应该避免。当研究中使用不透明的机器学习模型时,如果模型只给出没有解释的预测,科学发现仍然完全隐藏。为了便于学习并满足好奇心,为什么某些预测或行为是由机器产生的,解释能力和解释是至关重要的。当然,人类不需要对所发生的一切进行解释。对于大多数人来说,他们不理解计算机是如何工作的是可以的。意外事件使我们好奇。例如:为什么我的计算机意外关闭? +与学习密切相关的是人类在世界上**寻找意义的愿望**。我们希望协调我们知识结构要素之间的矛盾或不一致。“为什么我的狗会咬我,尽管它以前从来没有这样做过?“一个人可能会问。了解狗过去的行为与新发生的、令人不快的咬伤经历之间存在着矛盾。兽医的解释调和了狗主人的矛盾:“狗处于压力和咬伤之下。”机器的决定对人的生活影响越大,机器解释它的行为就越重要。如果机器学习模型拒绝贷款申请,这对于申请者来说可能是完全意外的。他们只能用某种解释来调和期望和现实之间的这种不一致。这些解释实际上并不需要完全解释情况,但应该提供一个主要原因。另一个例子是算法产品推荐。就我个人而言,我总是想,为什么某些产品或电影在算法上被推荐给我。通常情况很清楚:网络上的广告跟随着我,因为我最近买了一台洗衣机,我知道在接下来的几天里,洗衣机广告会推送给我。是的,如果我的购物车里已经有一顶冬帽,建议戴手套是有意义的。算法推荐这部电影,因为喜欢我喜欢的其他电影的用户也喜欢推荐的电影。越来越多的互联网公司在他们的建议中增加了解释。亚马逊产品推荐就是一个很好的例子,它基于经常购买的产品组合: -与学习密切相关的是人类在世界上寻找意义的愿望。我们希望协调我们知识结构要素之间的矛盾或不一致。“为什么我的狗会咬我,尽管它以前从来没有这样做过?“一个人可能会问。对狗过去行为的了解与新做的、令人不快的咬伤经历之间存在着矛盾。兽医的解释调和了狗主人的矛盾:“狗处于压力和咬伤之下。”机器的决定对人的生活影响越大,机器解释它的行为就越重要。如果机器学习模型拒绝贷款申请,这对于申请者来说可能是完全意外的。他们只能用某种解释来调和期望和现实之间的这种不一致。这些解释实际上并不需要完全解释情况,但应该解决一个主要原因。另一个例子是算法产品推荐。就我个人而言,我总是想,为什么某些产品或电影在算法上被推荐给我。通常情况很清楚:网络上的广告跟随着我,因为我最近买了一台洗衣机,我知道在接下来的几天里,我会被洗衣机的广告跟随着。是的,如果我的购物车里已经有一顶冬帽,建议戴手套是有意义的。算法推荐这部电影,因为喜欢我喜欢的其他电影的用户也喜欢推荐的电影。越来越多的互联网公司在他们的建议中增加了解释。亚马逊产品推荐就是一个很好的例子,它基于经常购买的产品组合: +![img](https://christophm.github.io/interpretable-ml-book/images/amazon-freq-bought-together.png) 图2.1:从亚马逊购买油漆时的推荐产品。 -在许多科学学科中,从定性方法到定量方法都发生了变化。 +在许多科学学科中,从定性方法到定量方法都发生了变化(例如社会学、心理学),以及机器学习(生物学、基因组学)。**科学的目标**是获取知识,但是许多问题都是通过大数据集和黑盒机器学习模型来解决的。模型本身成为知识的来源,而不是数据。可解释性使得提取模型获得额外知识成为一种可能。 -(例如社会学、心理学),以及机器学习(生物学、基因组学)。科学的目标是获取知识,但是许多问题都是通过大数据集和黑盒机器学习模型来解决的。模型本身成为知识的来源,而不是数据。可解释性使得提取模型捕获的额外知识成为可能。 +机器学习模型承担需要**安全措施**和测试的实际任务。想象一下,一辆自动驾驶的汽车根据深度学习系统自动检测骑自行车的人。希望100%地确定系统所学的抽象是无错误的,因为汽车直接驶过而无视骑车人是非常糟糕的。一个解释可能会揭示,最重要的学习功能是识别自行车的两个轮子,这个解释可以帮助您思考极端情况,例如自行车的侧袋部分挡住了车轮。 -机器学习模型承担需要安全措施和测试的现实任务。想象一下,一辆自动驾驶的汽车根据深度学习系统自动检测骑自行车的人。您希望100%地确定系统所学的抽象是无错误的,因为在骑自行车的人身上运行是非常糟糕的。一个解释可能会揭示,最重要的学习功能是识别自行车的两个轮子,这个解释可以帮助您思考边缘情况,例如自行车的侧面袋部分覆盖了车轮。 +默认情况下,机器学习模型从训练数据中提取偏差。这可以把你的机器学习模式变成歧视受保护群体的种族主义者。可解释性是机器学习模型**检测偏差**的一种有用的调试工具。训练好的自动批准或拒绝信用申请的机器学习模型可能会歧视少数人。主要目标是只向最终会偿还贷款的人提供贷款。在这种情况下,问题表述的不完整性在于,不仅想要最小化贷款违约,而且也有义务不根据某些人口统计数据加以区分。这是问题公式(以低风险和合规的方式发放贷款)中的一个附加约束,而机器学习模型优化所针对的损失函数没有涵盖这一约束。 -默认情况下,机器学习模型从训练数据中提取偏差。这可以把你的机器学习模式变成歧视受保护群体的种族主义者。可解释性是检测机器学习模型偏差的一种有用的调试工具。你培训过的自动批准或拒绝信用申请的机器学习模式可能会歧视少数人。你的主要目标是只向最终会偿还贷款的人发放贷款。在这种情况下,问题公式的不完整性在于,你不仅想要最小化贷款违约,而且也有义务不根据某些人口统计数据加以歧视。这是问题公式(以低风险和合规的方式发放贷款)中的一个附加约束,而机器学习模型优化所针对的损失函数没有涵盖这一约束。 +将机器和算法整合到日常生活中的过程需要可解释性,以增加**社会认可度**。人们把信仰、欲望、意图等归因于对象。在一个著名的实验中,海德和西梅尔(1944年)[$^6$](https://christophm.github.io/interpretable-ml-book/#fn6%20class=)向参与者展示了一些形状的视频,其中一个圆圈打开一扇“门”进入一个“房间”(只是一个长方形)。参与者描述了形状的动作,就像他们描述人的行为一样,为形状分配了思想,甚至情感和个性特征。机器人就是一个很好的例子,就像我的吸尘器,我把它命名为“Doge”。如果Doge被卡住了,我想:“Doge想继续打扫,但因为它卡住了而向我求助。”后来,当Doge打扫完并寻找家庭基地重新充电时,我想:“Doge有重新充电的愿望,并打算找到家庭基地。”我还将人格特征归为:“Doge有点笨,但很可爱。”这是我的想法,特别是当我发现Doge在尽职地打扫房子的时候撞倒了一棵植物。解释其预测的机器或算法会得到更多的认可。另见[解释章节](https://christophm.github.io/interpretable-ml-book/explanation.html#explanation),它认为解释是一个社会过程。 -将机器和算法整合到日常生活中的过程需要可解释性,以增加社会接受度。人们把信仰、欲望、意图等归因于物体。在一个著名的实验中,海德和西梅尔(1944年)向参与者展示了一些形状的视频,其中一个圆圈打开一扇“门”进入一个“房间”(只是一个长方形)。参与者描述了形状的动作,就像他们描述了人的行为一样,为形状分配了意图,甚至情感和个性特征。机器人就是一个很好的例子,就像我的吸尘器,我把它命名为“狗”。如果Doge被卡住了,我想:“Doge想继续打扫,但因为它卡住了而向我求助。”后来,当Doge打扫完并搜索家庭基地重新充电时,我想:“Doge有重新充电的愿望,并打算找到家庭基地。”我还将人格特征归为:“狗有点笨,但很可爱。”这是我的想法,特别是当我发现狗在尽职地打扫房子的时候撞倒了一棵植物。解释其预测的机器或算法会得到更多的认可。另见,它认为解释是一个社会过程。 +解释用于**管理社会互动**。通过创造某事物的共同意义,解释者影响着接受解释者的行为、情感和信念。对于要与我们互动的机器,可能需要塑造我们的情感和信念。机器必须“说服”我们,这样它们才能达到预期的目标。我不会完全接受我的机器人真空吸尘器,如果它没有在某种程度上解释它的行为。真空吸尘器创造了一个共同的意义,例如,“事故”(如被困在浴室地毯上……再次),解释说它被卡住了,而不是简单地停止工作而不发表评论。有趣的是,解释机器(创建信任)的目标和接收者的目标(理解预测或行为)之间可能存在偏差。也许对Doge被卡住的原因的完整解释可能是电池电量非常低,其中一个轮子工作不正常,还有一个bug让机器人一次又一次地走到同一个地方,即使有障碍物。这些原因(还有其他一些)导致机器人被卡住,但它只解释了有什么东西挡在路上,这足以让我相信它的行为,并得到事故的共同含义。顺便说一下,Doge又被困在浴室里了。我们每次都要把地毯拆下来,然后让Doge吸尘。 -解释用于管理社会互动。通过创造某事物的共同意义,解释者影响着接受解释者的行为、情感和信仰。机器要与我们互动,可能需要塑造我们的情感和信仰。机器必须“说服”我们,这样它们才能达到预期的目标。我不会完全接受我的机器人真空吸尘器,如果它没有在某种程度上解释它的行为。真空吸尘器创造了一个共同的意义,例如,“事故”(如被困在浴室地毯上……再次),解释说它被卡住了,而不是简单地停止工作而不发表评论。有趣的是,解释机器(创建信任)的目标和接收者的目标(理解预测或行为)之间可能存在偏差。也许对Doge被卡住的原因的完整解释可能是电池电量非常低,其中一个轮子工作不正常,还有一个bug让机器人一次又一次地走到同一个地方,即使有障碍物。这些原因(还有其他一些)导致机器人被卡住,但它只解释了有什么东西挡在路上,这足以让我相信它的行为,并得到事故的共同含义。顺便说一下,多格又被困在浴室里了。我们每次都要把地毯拆下来,然后让狗吸尘。 +![img](https://christophm.github.io/interpretable-ml-book/images/doge-stuck.jpg) -图2.2:我们的真空吸尘器Doge卡住了。作为事故的解释,多格告诉我们,它需要在一个平坦的表面上。 +图2.2:我们的真空吸尘器Doge卡住了。作为事故的解释,Doge告诉我们,它需要在一个平坦的表面上。 -机器学习模型只有在可以解释时才能进行调试和审核。即使在低风险环境中,例如电影推荐,在研究和开发阶段以及部署之后,解释能力也是很有价值的。后来,当一个模型用于一个产品时,事情可能会出错。对错误预测的解释有助于理解错误的原因。它为如何修复系统提供了一个方向。考虑一个Husky与Wolf分类器的例子,它将一些Huskie误认为是狼。使用可解释的机器学习方法,您会发现错误分类是由于图像上的雪造成的。分类器学会了使用snow作为一个特征来将图像分类为“wolf”,这对于在训练数据集中分离狼和huskie可能是有意义的,但在实际应用中却没有意义。 +机器学习模型只有在可以解释时才能进行**调试和审核**。即使在低风险环境中,例如电影推荐,在研究和开发阶段以及部署之后,解释能力也是很有价值的。之后,当一个模型用于一个产品时,事情可能会出错。对错误预测的解释有助于理解错误的原因。它为如何修复系统提供了方向。考虑一个哈士奇与狼分类器的例子,它将一些哈士奇误认为是狼。使用可解释的机器学习方法,您会发现错误分类是由于图像上的雪造成的。分类器学会了使用雪作为一个特征来将图像分类为“狼”,这对于在训练数据集中分离狼和哈士奇可能是有意义的,但在实际应用中却没有意义。 如果您能够确保机器学习模型能够解释决策,您还可以更容易地检查以下特征(Doshi Velez和Kim 2017): -• 公平性:确保预测是公正的,不含蓄或明确地歧视受保护的群体。一个可解释的模型可以告诉你为什么它决定了一个人不应该得到贷款,而且对于一个人来说,判断这个决定是否基于学习人口统计学(如种族)的偏见会变得更容易。 +- 公平性:确保预测是公正的,不隐含或明确地歧视受保护的群体。可解释的模型可以告诉你为什么它决定了一个人不应该得到贷款,而且对于一个人来说,判断这个决定是否基于学习人口统计学(如种族)的偏见会变得更容易。 +- 隐私:确保保护数据中的敏感信息。 +- 可靠性或稳健性:确保输入的小变化不会导致预测发生剧烈变化。 +- 因果关系:检查是否只找到因果关系。 +- 信任:与黑匣子相比,人们更容易信任解释其决策的系统。 -• 隐私:确保保护数据中的敏感信息。 +**当我们不需要解释的时候** -• 可靠性或稳健性:确保输入的小变化不会导致预测的大变化。 +以下场景说明了当我们何时不需要甚至不希望机器学习模型的可解释性。 -• 因果关系:检查是否只找到因果关系。 +如果模型**没有显著影响**,则不需要解释性。想象一下一个叫做迈克正在做一个机器学习方面的项目,根据Facebook的数据预测他的朋友们下一个假期会去哪里。迈克只是喜欢用有依有据的推测让他的朋友们吃惊,他们会去哪里度假。如果模型是错误的,那就没有真正的问题了(最坏的情况是,迈克有点尴尬),如果迈克不能解释模型的输出,那就没有问题了。在这种情况下,没有可解释性是完全可以的。如果迈克开始围绕这些度假目的地的预测建立业务,情况将会改变。如果模型是错误的,企业可能会赔钱,或者模型可能会因为种族偏见而对某些人更糟。一旦模型产生重大影响,无论是金融还是社会,可解释性就变得相关。 -• 信任:与黑板相比,人们更容易信任解释其决策的系统。 +当问题**研究得很好**时,不需要解释性。对一些应用进行了充分的研究,以便对模型有足够的实践经验,并随着时间的推移解决了模型的问题。一个很好的例子是光学字符识别的机器学习模型,它处理信封中的图像并提取地址。这些系统有多年的使用经验,很明显它们是有效的。此外,我们对获取有关这上面的任务的更多信息并不真正感兴趣。 -当我们不需要解释的时候。 - -以下场景说明了当我们不需要甚至不需要机器学习模型的可解释性时。 - -如果模型没有显著影响,则不需要解释性。想象一下有人 - -迈克正在做一个机器学习方面的项目,根据Facebook的数据预测他的朋友们下一个假期会去哪里。迈克只是喜欢用有根据的猜测让他的朋友们吃惊,他们会去哪里度假。如果模型是错误的,那就没有真正的问题了(最坏的情况是,迈克有点尴尬),如果迈克不能解释模型的输出,那就没有问题了。在这种情况下,没有可解释性是完全可以的。如果迈克开始围绕这些度假目的地的预测建立业务,情况将会改变。如果模型是错误的,企业可能会赔钱,或者模型可能会因为种族偏见而对某些人更糟。一旦模型产生重大影响,无论是金融还是社会,可解释性就变得相关。 - -当问题研究得很好时,不需要解释性。对一些应用进行了充分的研究,以便对模型有足够的实践经验,并随着时间的推移解决了模型的问题。一个很好的例子是光学字符识别的机器学习模型,它处理信封中的图像并提取地址。这些系统有多年的使用经验,很明显它们是有效的。此外,我们对获取有关手头任务的更多信息并不真正感兴趣。 - -可解释性可能使人或程序能够操纵系统。欺骗系统的用户的问题是由模型的创建者和用户的目标不匹配造成的。信用评分是这样一个系统,因为银行希望确保贷款只发放给可能归还贷款的申请人,而申请人的目标是获得贷款,即使银行不想给他们一个。这两个目标之间的不匹配导致了鼓励申请者对系统进行博弈,以增加他们获得贷款的机会。如果申请人知道拥有两张以上的信用卡会对他的分数产生负面影响,他只需返回第三张信用卡来提高分数,并在贷款获得批准后组织新的信用卡。虽然他的分数有所提高,但实际偿还贷款的可能性保持不变。只有当输入是因果特性的代理时,系统才能进行博弈,但实际上不会导致结果。尽可能避免使用代理功能,因为它们使模型具有可玩性。例如,谷歌开发了一个名为“谷歌流感趋势”的系统来预测流感爆发。该系统将谷歌搜索与流感爆发相关联,但其表现不佳。搜索查询的分布发生了变化,谷歌流感趋势错过了许多流感爆发。谷歌搜索不会引起流感。 +可解释性可能使人或程序能够**操纵系统**。欺骗系统的用户的问题是由模型的创建者和用户的目标不匹配造成的。信用评分是这样一个系统,因为银行希望确保贷款只发放给可能归还贷款的申请人,而申请人的目标是获得贷款,即使银行不想提供给他们。这两个目标之间的不匹配导致了鼓励申请者对系统进行博弈,以增加他们获得贷款的机会。如果申请人知道拥有两张以上的信用卡会对他的分数产生负面影响,他只需返回第三张信用卡来提高分数,并在贷款获得批准后申请新的信用卡。虽然他的分数有所提高,但实际偿还贷款的可能性保持不变。只有当输入是因果特性的代理时,系统才能进行博弈,但实际上不会导致结果。尽可能避免使用代理功能,因为它们使模型具有可玩性。例如,谷歌开发了一个名为“谷歌流感趋势”的系统来预测流感爆发。该系统将谷歌搜索与流感爆发相关联,但其表现不佳。搜索查询的分布发生了变化,谷歌流感趋势错过了许多流感爆发。谷歌搜索不会引起流感。 当人们寻找“发烧”这样的症状时,这仅仅是与实际流感爆发的相关性。理想情况下,模型只使用因果特性,因为它们不可玩。 -![img](file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image001.gif) - -\1. Doshi Velez,终曲,曾是Kim。“对可解释机器学习的严格科学研究”,编号:ML:1-13。(2017年)。 + $^5$ Doshi Velez,终曲,曾是Kim。“对可解释机器学习的严格科学研究”,编号:ML:1-13。(2017年)。 -\2. 海德、弗里茨和玛丽安·西梅尔。“表观行为的实验研究”,《美国心理学杂志》57(2)。JSTOR:243–59。(1944年)。 + $^6$ 海德、弗里茨和玛丽安·西梅尔。“表观行为的实验研究”,《美国心理学杂志》57(2)。JSTOR:243–59。(1944年)。 -2.2解释方法分类 +## 2.2 解释方法分类 机器学习的可解释性方法可以根据不同的标准进行分类。 -内在的还是事后的?该标准通过限制机器学习模型(固有)的复杂性或应用培训后分析模型的方法(事后分析)来区分是否实现了可解释性。内在可解释性是指由于结构简单而被认为是可解释的机器学习模型,如短决策树或稀疏线性模型。事后解释性是指模型训练后解释方法的应用。例如,排列特征重要性是一种事后解释方法。事后处理方法也可以应用于本质上可解释的模型。例如,可以计算决策树的排列特征重要性。本书各章的组织由和之间的区别决定。 - -解释方法的结果可以根据不同的解释方法的结果进行粗略的区分。 +**内在的还是事后的?**该标准通过限制机器学习模型(内在)的复杂性或在训练后分析模型的方法(事后)来区分是否实现了可解释性。内在可解释性是指由于结构简单而被认为是可解释的机器学习模型,如短决策树或稀疏线性模型。事后解释性是指模型训练后运用解释方法。例如,排列特征重要性是一种事后解释方法。事后处理方法也可以应用于本质上可解释的模型。例如,可以计算决策树的排列特征重要性。本书各章节的组织由[本质上可解释](https://christophm.github.io/interpretable-ml-book/simple.html#simple)和[事后(模式诊断)解释方法](https://christophm.github.io/interpretable-ml-book/agnostic.html#agnostic)之间的区别决定。 -• 特征汇总统计:许多解释方法为每个特征提供汇总统计。有些方法返回每个特征一个数字,例如特征重要性,或者更复杂的结果,例如成对特征交互强度,它由 +**解释方法的结果**可以根据不同的解释方法的结果进行粗略的区分。 -每个功能对的编号。 +- **特征汇总统计**:许多解释方法为每个特征提供汇总统计。有些方法为每个特征返回一个数字,例如特征重要性,或者更复杂的结果,例如成对特征交互强度,其中包含每个特征对的数字。 +- **特征摘要可视化**:大多数特征摘要统计信息也可以可视化。有些特征摘要实际上只有在可视化的情况下才有意义,且表格不是对的选择。特征的部分依赖就是这样一种情况。部分相关图是显示特征和平均预测结果的曲线。呈现部分依赖关系的最佳方法是实际绘制曲线,而不是打印坐标。 -• 功能摘要可视化:大多数功能摘要统计信息也可以可视化。有些功能摘要实际上只有在可视化的情况下才有意义,而表是错误的选择。特征的部分依赖就是这样一种情况。部分相关图是显示特征和平均预测结果的曲线。表示部分依赖关系的最佳方法是实际绘制曲线,而不是打印坐标。 +- **模型内部(例如学习的权重)**:对本质上可解释的模型的解释属于这一类。例如,线性模型中的权重或决策树的学习树结构(用于分割的特征和阈值)。例如,在线性模型中,模型内部和特征汇总统计之间的线条模糊,因为权重同时是模型内部和特征汇总统计。输出模型内部的另一种方法是在卷积神经网络中学习的特征检测器的可视化。输出模型内部的可解释性方法是通过定义特定模型的方法(见下一个标准)。 +- **数据点**:此类别包括返回数据点(已存在或新创建)以使模型可解释的所有方法。一种方法叫做反事实解释。为了解释对数据实例的预测,该方法通过用一些方式改变某些特征以改变预测结果(例如预测类中的翻转),找到类似的数据点。另一个例子是识别预测类的原型。为了有效性,输出新数据点的解释方法要求可以解释数据点本身。这对图像和文本很有效,但对于具有数百个特性的表格数据不太有用。 +- **本质上可解释模型**:解释黑盒模型的一个解决方案是用可解释模型(全局或局部)对其进行近似。通过查看内部模型参数或特征汇总统计信息来解释可解释性模型本身。 -• 模型内部(例如学习的权重):对本质上可解释的模型的解释属于这一类。例如,线性模型中的权重或决策树的学习树结构(用于分割的特征和阈值)。例如,在线性模型中,模型内部和特征汇总统计之间的线条模糊,因为权重同时是模型内部和特征汇总统计。输出模型内部的另一种方法是在卷积神经网络中学习特征检测器的可视化。输出模型内部的可解释性方法是通过定义特定于模型的方法(见下一个标准)。 +**特定模型还是模型不可知?**特定于模型的解释工具仅限于特定的模型类。线性模型中回归权重的解释是特定于模型的解释,因为根据定义,本质上可解释模型的解释总是特定模型的。仅用于解释神经网络的工具是特定于模型的。模型不可知工具可用于任何机器学习模型,并在模型经过训练(事后)后应用。这些不可知论方法通常通过分析特征输入和输出对来工作。根据定义,这些方法不能访问模型内部,如权重或结构信息。 -• 数据点:此类别包括返回数据点(已存在或新创建)以使模型可解释的所有方法。一种方法叫做反事实解释。为了解释对数据实例的预测,该方法通过改变预测结果以相关方式改变的某些特征(例如预测类中的翻转),找到类似的数据点。另一个例子是识别预测类的原型。为了有用,输出新数据点的解释方法要求可以解释数据点本身。这对图像和文本很有效,但对于具有数百个特性的表格数据不太有用。 +**局部还是全局?**解释方法是否解释单个预测或整个模型行为?还是范围介于两者之间?在下一节中阅读关于范围标准的更多信息。 -• 本质上可解释模型:解释黑盒模型的一个解决方案是用可解释模型(全局或局部)对其进行近似。可解释模型本身是通过查看内部模型参数或特性摘要统计信息来解释的。 - -具体型号还是不可知型号?特定于模型的解释工具仅限于特定的模型类。线性模型中回归权重的解释是特定于模型的解释,因为根据定义,本质上可解释模型的解释总是特定于模型的。仅用于解释神经网络的工具是特定于模型的。模型不可知工具可用于任何机器学习模型,并在模型经过培训(事后)后应用。这些不可知论方法通常通过分析特征输入和输出对来工作。根据定义,这些方法不能访问模型内部,如权重或结构信息。 - -本地还是全球?解释方法是否解释单个预测或整个模型行为?还是范围介于两者之间?在下一节中阅读关于范围标准的更多信息。 - -2.3解释范围 +## 2.3 解释范围 算法训练产生预测的模型。每个步骤都可以根据透明度或可解释性进行评估。 -**2.3.1** 算法透明度 - -算法是如何创建模型的? +### 2.3.1 算法透明度 -算法透明度是指算法如何从数据中学习模型,以及它可以学习到什么样的关系。如果使用卷积神经网络对图像进行分类,可以解释该算法在最底层学习边缘检测器和滤波器。这是对算法如何工作的理解,但不适用于最终学习的特定模型,也不适用于单个预测的生成方式。算法的透明性只需要对算法的了解,而不需要对数据或学习模型的了解。这本书的重点是模型的可解释性,而不是算法的透明度。对线性模型的最小二乘法等算法进行了深入的研究和理解。他们的特点是透明度高。深度学习方法(通过具有数百万权重的网络推动梯度)不太容易理解,内部工作是正在进行的研究的重点。它们被认为是不透明的。 +*算法是如何创建模型的?* -**2.3.2** 全球整体模型的可解释性 +算法透明度是指算法如何从数据中学习模型,以及它可以学习到什么样的关系。如果使用卷积神经网络对图像进行分类,可以解释该算法在最底层学习边缘检测器和滤波器。这是对算法如何工作的理解,但不是对最终学习的特定模型的理解,也不是对个体预测的生成方式。算法的透明性只需要对算法的了解,而不需要对数据或学习模型的知识。这本书的重点是模型的可解释性,而不是算法的透明度。对线性模型的最小二乘法等算法进行了深入的研究和理解。他们的特点是透明度高。深度学习方法(通过具有数百万权重的网络推动梯度)不太容易理解,内部工作是正在进行的研究重点。它们被认为是不透明 -经过训练的模型如何进行预测? +### 2.3.2 全局整体模型的可解释性 -如果你能一次理解整个模型,你可以将模型描述为可解释的(Lipton201)。要解释全局模型输出,您需要经过培训的模型、算法知识和数据。这种水平的可解释性是基于对模型特征和每个学习组件(如权重、其他参数和结构)的整体看法来理解模型是如何做出决策的。哪些特性很重要,它们之间会发生什么样的交互?全局模型的可解释性有助于理解基于特性的目标结果的分布。全球模型的可解释性在实践中很难实现。任何超过几个参数或权重的模型都不可能适合普通人的短期记忆。我认为你不能真正想象一个具有5个特征的线性模型,因为这意味着要在5维空间中从思想上绘制估计的超平面。任何超过3维的特征空间都是人类无法想象的。通常,当人们试图理解一个模型时,他们只考虑其中的一部分,例如线性模型中的权重。 +*训练好的模型如何进行预测?* -**2.3.3** 模块化水平上的全局模型可解释性 +如果你能同时理解整个模型,你可以将模型描述为可解释的(Lipton2016[$^7$](https://christophm.github.io/interpretable-ml-book/#fn7%20class=))。要解释全局模型输出,您需要经过训练的模型、算法知识和数据。这种可解释性水平是基于对模型特征和每个学习部分(如权重、其他参数和结构)的整体看法来理解模型是如何做出决策的。哪些特征很重要,它们之间有什么样的相互作用?全局模型的可解释性有助于理解基于特征的目标结果的分布。全局模型的可解释性在实践中很难实现。任何超过几个参数或权重的模型都不可能适合普通人的短期记忆。我认为你不能真正想象一个具有5个特征的线性模型,因为这意味着要在5维空间中想象绘制估计的超平面。任何超过3维的特征空间都是人类无法想象的。通常,当人们试图理解一个模型时,他们只考虑其中的一部分,例如线性模型中的权重。 -模型的某些部分如何影响预测? +### 2.3.3 模块化层面上的全局模型可解释性 -一个具有数百个特性的朴素的Bayes模型对我和您来说太大了,无法保存在我们的工作记忆中。即使我们能够记住所有的权重,我们也无法快速预测新的数据点。此外,您需要在头脑中对所有特性进行联合分布,以估计每个特性的重要性以及特性如何平均影响预测。一项不可能的任务。但是你很容易理解一个重量。虽然全局模型的可解释性通常是无法达到的,但至少有机会在模块级别上理解某些模型。并非所有模型都可以在参数级别上解释。对于线性模型,可解释部分是权重,对于树来说,是分割(选定的特征加上截止点)和叶节点预测。例如,线性模型看起来似乎可以在模块化级别上完美地解释,但单个权重的解释与所有其他权重是相互关联的。对单个权重的解释总是伴随着脚注,即其他输入特性保持相同的值,这在许多实际应用中并非如此。一个预测房屋价值的线性模型,考虑到房屋的大小和房间的数量,可以对房间特征有负权重。这种情况可能发生,因为已经存在高度相关的房屋尺寸特征。在一个人们更喜欢大房间的市场中,房间少的房子比房间多的房子更值钱,如果两个房间的大小相同的话。权重仅在模型中其他特征的上下文中有意义。但是,线性模型中的权重仍然可以比深层神经网络中的权重更好地解释。 +*模型的某些部分如何影响预测?* -2.3.4单一预测的局部可解释性 +具有数百个特性的朴素的贝叶斯模型对我来说太大了,无法保存在我们的工作记忆中。即使我们能够记住所有的权重,我们也无法快速预测新的数据点。此外,您需要在头脑中对所有特征进行联合分布,以估计每个特征的重要性以及特征如何平均影响预测。一项不可能的任务。但是你很容易理解一个权重。虽然全局模型的可解释性通常是无法达到的,但至少有机会在模块层面上理解某些模型。并非所有模型都可以在参数级别上解释。对于线性模型,可解释部分是权重,对于树来说,是分割(选定的特征加上截止点)和叶节点预测。例如,线性模型看起来似乎可以在模块化层面上完美地解释,但单个权重的解释与所有其他权重是相互关联的。对单个权重的解释总是伴随着脚注,即其他输入特征保持相同的值,这在许多实际应用中并非如此。一个预测房屋价值的线性模型,考虑到房屋的大小和房间的数量,可以对房间特征有负权重。这种情况可能发生,因为已经存在高度相关的房屋尺寸特征。在一个人们更喜欢大房间的市场中,房间少的房子比房间多的房子更值钱,如果两个房间的大小相同的话。权重仅在模型中其他特征的上下文中有意义。但是,线性模型中的权重仍然可以比深层神经网络中的权重更好地解释。 -为什么模型会对一个实例做出某种预测? +### 2.3.4 单一预测的局部可解释性 -您可以放大一个实例,检查模型为这个输入预测了什么,并解释原因。如果你观察一个单独的预测,那么这个原本复杂的模型的行为可能表现得更为愉快。在局部,预测可能只依赖于线性或单调的某些特征,而不是对它们有复杂的依赖性。例如,房子的价值可能与它的大小成非线性关系。但是,如果您只查看一个特定的100平方米的房子,那么对于该数据子集,您的模型预测可能与大小成线性关系。你可以通过模拟当你增加或减少10平方米的尺寸时,预测的价格是如何变化的来发现这一点。因此,本地解释比全局解释更准确。这本书提出的方法,可以使个人的预测更容易解释。 +*为什么模型会对一个实例做出某种预测?* -2.3.5一组预测的局部可解释性 +你可以放大一个实例,检查模型为这个输入预测了什么,并解释原因。如果你观察一个单独的预测,那么这个原本复杂的模型的行为可能表现得更为轻松。在局部,预测可能只依赖于线性或单调的某些特征,而不是对它们有复杂的依赖性。例如,房子的价值可能与它的大小成非线性关系。但是,如果您只查看一个特定的100平方米的房子,那么对于该数据子集,您的模型预测可能与大小成线性关系。你可以通过模拟当你增加或减少10平方米的尺寸时,预测的价格是如何变化的来发现这一点。因此,本地解释比全局解释更准确。本书介绍的方法,在[模型不可知方法章节](https://christophm.github.io/interpretable-ml-book/agnostic.html#agnostic)可以使个人的预测更容易解释。 -为什么模型对一组实例进行特定的预测? +### 2.3.5 一组预测的局部可解释性 -多个实例的模型预测可以用全局模型解释方法(模块化级别)或单个实例的解释来解释。全局方法可以通过获取实例组、将其视为完整的数据集以及使用包含此子集的全局方法来应用。可以对每个实例使用单独的解释方法,然后为整个组列出或聚合。 +*为什么模型对一组实例进行特定的预测?* -![img](file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image002.gif) +多个实例的模型预测可以用全局模型解释方法(模块级别)或单个实例的解释来解释。全局方法可以通过获取实例组、将其视为完整的数据集以及使用包含此子集的全局方法来应用。可以对每个实例使用单独的解释方法,然后为整个组列出或聚合。 -1。模型可解释性的神话〉,《arxiv预印arxiv:1606.03490》(2016)。 +$^7$ 《模型可解释性的神话》,arXiv preprint arXiv:1606.03490,(2016)。 -2.4可解释性评价 +## 2.4 可解释性评估 -对于机器学习中的可解释性没有真正的共识。如何测量也不清楚。但有一些初步的研究,并试图制定一些评估方法,如下面的章节所述。 +对于机器学习中的可解释性没有真正的共识。如何衡量也不清楚。但有一些初步的研究,并试图制定一些评估方法,如下面的章节所述。 Doshi Velez和Kim(2017)提出了三个评价可解释性的主要水平: -应用级评估(实际任务):将解释放入产品中,由最终用户进行测试。想象一下有一个机器学习组件的骨折检测软件,它可以定位和标记X光片中的骨折。在应用层,放射科医生将直接测试骨折检测软件来评估模型。这需要一个良好的实验装置和对如何评估质量的理解。一个很好的基准总是一个人在解释同一个决定时有多好。 +**应用级评估(实际任务)**:将解释放入产品中,由最终用户进行测试。想象一下有一个机器学习组件的骨折检测软件,它可以定位和标记X光片中的骨折。在应用层面,放射科医生将直接测试骨折检测软件来评估模型。这需要一个良好的实验装置和对如何评估质量的理解。一个很好的基准是人类在解释同一个决定时有多好。 -人级评估(简单任务)是一种简化的应用程序级评估。不同的是,这些实验不是由领域专家进行的,而是由外行进行的。这使得实验更便宜(特别是如果领域专家是放射科医生的话),并且更容易找到更多的测试人员。一个例子是向用户展示不同的解释,用户会选择最好的解释。 +**人员级评估(简单任务)**是简化的应用程序级评估。不同的是,这些实验不是由领域专家进行的,而是由外行进行的。这使得实验更廉价(特别是如果领域专家是放射科医生的话),并且更容易找到更多的测试人员。一个例子是向用户展示不同的解释,用户会选择最好的解释。 -功能级别评估(代理任务)不需要人工。当所使用的模型类已经由其他人在人类级别的评估中进行了评估时,这是最有效的。例如,可能知道最终用户了解决策树。在这种情况下,解释质量的代理可能是树的深度。树越短,解释性得分越高。增加约束条件是有意义的,即与较大的树相比,树的预测性能保持良好且不会降低太多。 +**功能级别评估(代理任务)**不需要人工。当所使用的模型类已经由其他人在人类级别的评估中进行了评估时,这是最有效的。例如,可能知道最终用户了解决策树。在这种情况下,树的深度可能可以来表示解释质量的好坏。树越短,解释性得分越高。增加约束条件是有意义的,即与较大的树相比,树的预测性能保持良好且不会降低太多。 -下一章着重于对功能级别上的单个预测的解释进行评估。我们将在评估中考虑解释的相关性质是什么? +下一章着重于对功能级别上的单个预测的解释进行评估。我们将在评估中考虑解释的相关属性是什么? -2.5解释性质 +## 2.5 解释的属性 -我们要解释机器学习模型的预测。为了实现这一点,我们依赖于某种解释方法,这是一种生成解释的算法。解释通常以一种人性化的方式将实例的特征值与其模型预测联系起来。其他类型的解释包括一组数据实例(例如,对于k-最近邻模型)。例如,我们可以使用支持向量机预测癌症风险,并使用生成决策树作为解释的来解释预测。或者我们可以用线性回归模型代替支持向量机。线性回归模型已经配备了解释方法(权重解释)。 +我们要解释机器学习模型的预测。为了实现这一点,我们依赖于某些解释方法,这是一种生成解释的算法。解释通常以一种人类可理解的方式将实例的特征值与其模型预测联系起来。其他类型的解释包括一组数据实例(例如,对于k-最近邻模型)。例如,我们可以使用支持向量机预测癌症风险并使用[局部代理方法](https://christophm.github.io/interpretable-ml-book/lime.html#lime)来解释预测结果,并方法生成决策树来解释预测。或者我们可以用线性回归模型代替支持向量机。线性回归模型已经配备了解释方法(权重解释)。 -我们更详细地了解了解释方法和解释的性质(Robnik Sikonja和Bohanec,2018年)。这些属性可用于判断解释方法或解释的好坏。对于所有这些属性来说,如何正确地测量它们还不清楚,因此其中一个挑战是如何正式确定它们的计算方式。 +我们更详细地了解了解释方法和解释的属性(Robnik Sikonja和Bohanec,2018[$^8$](https://christophm.github.io/interpretable-ml-book/#fn8%20class=))。这些属性可用于判断解释方法或解释的好坏。对于所有这些属性来说,如何正确地衡量它们还不清楚,因此其中一个挑战是如何正式确定它们的计算方式。 -解释方法的性质 +**解释方法的属性** -• 表达力是该方法能够产生的解释的“语言”或结构。一种解释方法可以生成if-then规则、决策树、加权和、自然语言或其他东西。 +- **表达能力**是该方法能够产生的解释的“语言”或结构。解释方法可以生成IF-THEN规则、决策树、加权和、自然语言或其他东西。 -• 半透明性描述了解释方法依赖于查看机器学习模型(如其参数)的程度。例如,依赖于内在可解释模型(如线性回归模型(特定于模型))的解释方法是高度透明的。方法仅依赖于操作输入和观察预测,其半透明性为零。根据具体情况,可能需要不同程度的半透明。高半透明性的优点是该方法可以依靠更多的信息来生成解释。低透明度的优点是解释方法更易于移植。 +- **半透明度**描述了解释方法依赖于查看机器学习模型(如其参数)的程度。例如,依赖于内在可解释模型(如线性回归模型(特定模型))的解释方法是高度透明的。方法仅依赖于操作输入和观察预测,其半透明度为零。根据具体情况,可能需要不同程度的半透明。高半透明度的优点是该方法可以依赖更多的信息来生成解释。低半透明度的优点是解释方法更易于移植。 -• 可移植性描述了机器学习模型的范围,可以使用解释方法。低半透明的方法具有较高的可移植性,因为它们将机器学习模型视为黑盒。代理模型可能是具有最高可移植性的解释方法。仅适用于复发性神经网络的方法具有低可移植性。 +- **可移植性**描述了机器学习模型可使用解释方法的范围。低半透明度的方法具有较高的可移植性,因为它们将机器学习模型视为黑盒。替代的模型可能是具有最高可移植性的解释方法。仅适用于递归神经网络的方法具有低可移植性。 -• 算法复杂性描述了生成解释的方法的计算复杂性。当计算时间成为生成解释的瓶颈时,必须考虑此属性。 +- **算法复杂度**描述了生成解释的方法的计算复杂性。当计算时间成为生成解释的瓶颈时,必须考虑此属性。 -个别解释的性质 +**个别解释的性质** -• 准确度:一个解释如何预测看不见的数据?如果将解释用于预测而不是机器学习模型,那么高精度尤为重要。如果机器学习模型的精度也很低,并且目标是解释黑盒模型的作用,那么低精度就很好了。在这种情况下,只有忠诚才是重要的。 +- **准确度**:解释如何预测看不见的数据?如果将解释用于预测而不是机器学习模型,那么高精度尤为重要。如果机器学习模型的精度也很低,并且目标是解释黑盒模型的作用,那么低精度就很好了。在这种情况下,只有保真度才是重要的。 -• 保真度:这个解释与黑匣子模型的预测有多接近?高保真度是解释的重要属性之一,因为低保真度的解释对解释机器学习模型是无用的。准确度和逼真度密切相关。如果黑盒模型具有较高的精度和解释的高保真度,说明也具有较高的精度。一些解释只提供局部保真度,这意味着解释仅与数据子集(例如 +- **保真度**:解释与黑匣子模型的预测有多接近?高保真度是解释的重要属性之一,因为低保真度的解释对解释机器学习模型是无用的。准确度和逼真度密切相关。如果黑盒模型具有较高的精度并且解释的高保真度,说明也具有较高的精度。一些解释只提供局部保真度,这意味着解释仅与数据子集(例如[局部代理模型](https://christophm.github.io/interpretable-ml-book/lime.html#lime))甚至只针对单个数据实例(例如[Shapley值](https://christophm.github.io/interpretable-ml-book/shapley.html#shapley))。 -)甚至只针对单个数据实例(例如)。 +- **一致性**:在接受过相同任务训练的模型和产生类似预测的模型之间,解释有多大不同?例如,我在同一个任务上训练一个支持向量机和一个线性回归模型,两者都产生非常相似的预测。我用自己选择的方法计算解释,并分析解释有多不同。如果解释非常相似,说明是高度一致的。我发现这个属性有点棘手,因为这两个模型可以使用不同的特征,但得到相似的预测(也叫”[罗生门效应](https://en.wikipedia.org/wiki/Rashomon_effect)“。在这种情况下,高度一致性是不可取的,因为解释必须非常不同。如果模型确实依赖于相似的关系,则需要高一致性。 -• 一致性:在接受过相同任务培训的模型和产生类似预测的模型之间,解释有多大不同?例如,我在同一个任务上训练一个支持向量机和一个线性回归模型,两者都产生非常相似的预测。我用自己选择的方法计算解释,并分析解释有多不同。如果解释非常相似,说明是高度一致的。我发现这个属性有点棘手,因为这两个模型可以使用不同的特性,但得到相似的预测(也叫。在这种情况下,高一致性是不可取的,因为解释必须非常不同。如果模型确实依赖于相似的关系,则需要高一致性。 +- **稳定性**:对类似情况的解释有多相似?虽然一致性比较模型之间的解释,但稳定性比较固定模型的类似实例之间的解释。高稳定性意味着实例特征的细微变化不会实质性改变解释(除非这些细微变化也会强烈改变预测)。缺乏稳定性可能是解释方法方差较大的结果。换句话说,解释方法受到要解释的实例的特征值的微小变化的强烈影响。缺乏稳定性也可能是由解释方法的不确定成分引起的,如数据采样步骤,就像[本地代理](https://christophm.github.io/interpretable-ml-book/lime.html#lime)方法一样。高稳定性总是可取的。 -• 稳定性:对类似情况的解释有多相似?虽然一致性比较模型之间的解释,但稳定性比较固定模型的类似实例之间的解释。高稳定性意味着实例特征的细微变化不会实质性改变解释(除非这些细微变化也会强烈改变预测)。缺乏稳定性可能是解释方法方差较大的结果。换句话说,解释方法受到要解释的实例的特征值的微小变化的强烈影响。缺乏稳定性也可能是由解释方法的不确定成分引起的,如数据采样步骤,如用途。高稳定性总是可取的。 +- **可理解性**:人类对解释的理解程度如何?这看起来像是许多房产中的一个,但它是房间里的大象。很难定义和衡量,但要正确处理非常重要。许多人都同意,可理解性取决于观众。衡量可理解性的想法包括测量解释的大小(线性模型中具有非零权重的特征的数量,决策规则的数量,…)或测试人们如何从解释中预测机器学习模型的行为。还应考虑解释中使用的特征的可理解性。特征的复杂转换可能比原始特征更难理解。 -• 可理解性:人类对解释的理解程度如何?这看起来像是许多房产中的一个,但它是房间里的大象。很难定义和衡量,但要正确处理非常重要。许多人都同意,可理解性取决于观众。测量可理解性的想法包括测量解释的大小(线性模型中具有非零权重的特征的数量,决策规则的数量,…)或测试人们如何从解释中预测机器学习模型的行为。还应考虑解释中使用的特征的可理解性。特征的复杂转换可能比原始特征更难理解。 +- **确定性**:解释是否反映了机器学习模型的确定性?许多机器学习模型只给出预测,而没有关于预测正确的模型置信度的描述。如果模型预测一个病人患癌症的概率为4%,那么另一个具有不同特征值的病人接受癌症的概率是否与4%一样确定?一个包含模型确定性的解释是非常有用的。 -• 确定性:解释是否反映了机器学习模型的确定性?许多机器学习模型只给出预测,而没有对模型的声明,即预测是正确的。如果模型预测一个病人患癌症的概率为4%,那么另一个具有不同特征值的病人接受癌症的概率是否与4%一样确定?一个包含模型确定性的解释是非常有用的。 +- **重要程度**:解释在多大程度上反映了解释的特征或部分的重要性?例如,如果生成决策规则作为对单个预测的解释,那么是否清楚该规则的哪些条件最重要? -• 重要程度:解释在多大程度上反映了解释的特征或部分的重要性?例如,如果生成决策规则作为对单个预测的解释,那么是否清楚该规则的哪些条件最重要? +- **新颖性**:解释是否反映了待解释的数据实例来自远离训练数据分布的“新”区域?在这种情况下,模型可能不准确,解释可能毫无用处。新颖性的概念与确定性的概念有关。新颖性越高,由于缺乏数据,模型的确定性就越低。 -• 新颖性:解释是否反映了待解释的数据实例来自远离培训数据分布的“新”区域?在这种情况下,模型可能不准确,解释可能毫无用处。新颖性的概念与确定性的概念有关。新颖性越高,由于缺乏数据,模型的确定性就越低。 +- **代表性**:一个解释包括多少个实例?解释可以覆盖整个模型(例如线性回归模型中的权重解释),也可以只表示单个预测(例如[Shapley值](https://christophm.github.io/interpretable-ml-book/shapley.html#shapley))。 -• 代表性:一个解释包括多少个实例?解释可以覆盖整个模型(例如线性回归模型中的权重解释),也可以只表示单个预测(例如)。 +$^8$ Robnik Sikonja、Marko和Marko Bohanec。“基于扰动的预测模型解释”,人类和机器学习。施普林格,查姆。159-175页。(2018年)。 -![img](file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image003.gif) - -1。Robnik Sikonja、Marko和Marko Bohanec。“基于扰动的预测模型解释”,人类和机器学习。施普林格,查姆。159-175页。(2018年)。 - -2.6人性化解释 +## 2.6 人性化解释 让我们更深入地挖掘并发现我们人类所认为的“好的”解释以及对可解释机器学习的影响。人文科学研究可以帮助我们找到答案。Miller(2017)对有关解释的出版物进行了大量调查,本章以他的总结为基础。 @@ -194,7 +175,7 @@ Doshi Velez和Kim(2017)提出了三个评价可解释性的主要水平: 当你需要一个特定的预测或行为的所有因素的解释时,你不需要一个人类友好的解释,而是一个完全的因果归因。如果法律要求您指定所有影响功能或调试机器学习模型,则可能需要因果属性。在这种情况下,忽略以下几点。在所有其他情况下,当外行或时间很少的人是解释的接受者时,下面的部分对您来说应该很有趣。 -2.6.1什么是解释? +### 2.6.1 什么是解释? 解释是为什么问题的答案(Miller,2017年)。 @@ -208,7 +189,7 @@ Doshi Velez和Kim(2017)提出了三个评价可解释性的主要水平: 在下文中,“解释”一词是指解释的社会和认知过程,也指这些过程的产物。解释者可以是人或机器。 -2.6.2什么是好的解释? +### 2.6.2 什么是好的解释? 本节进一步浓缩了米勒关于“好”解释的总结,并为可解释机器学习添加了具体含义。 @@ -250,7 +231,7 @@ Rashomon是一部日本电影,讲述了一个武士死亡的另类、矛盾的 对于可解释的机器学习意味着什么:通用性可以很容易地通过特性的支持来衡量,即解释应用到的实例数除以实例总数。 -![img](file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image004.gif) + \1. 彼得·利普顿。“对比解释”,《皇家哲学研究所补编》27(1990):247-266。