可解释的机器学习

前言

什么是机器学习

  • 机器学习是计算机基于数据做出和改进预测或行为的一套方法。

  • 抽象方法

    • 步骤一:数据采集,越多越好。数据必须包含你要预测的结果以及要从中进行预测的其他信息。
    • 步骤二:将这些信息输⼊机器学习算法。
    • 步骤三:将新数据输⼊模型。将模型集成到产品或流程中。

术语

  • 算法(Algorithm)是机器为达到特定目标而遵循的一组规则。
  • 机器学习(Machine Learning)是一套方法,能够允许计算机从数据中学习,以做出和改进预测。
  • 机器学习是从 “常规编程” (Normal Programming) 到 “间接编程”(Indirect Programming) 的一种范式转换,“常规编程” 是指所有指令都必须显式地提供给计算机,而“间接编程” 是通过提供数据来实现的。
  • 学习器 (Learner) 或机器学习算法 (Machine Learning Algorithm) 是⽤来从数据中学习机器学习模型的程序。
  • 黑盒模型 (Black Box Model) 是⼀个不揭⽰其内部机制的系统。在机器学习中,“黑盒模型”描述了通过查看参数 (例如深度神经⽹络的参数) 却无法理解的模型。黑盒的对立面有时被称为白盒 (White Box),在本书中被称为可解释模型。模型无关的解释方法将机器学习模型视为⿊盒 (即使这些模型本身不是黑盒)。
  • 可解释的机器学习 (Interpretable Machine Learning) 是指使机器学习系统的行为和预测对人类可理解的算法和模型。

可解释性

  • 可解释性是⼈们能够理解决策原因的程度。
  • 可解释性是指⼈们能够⼀致地预测模型结果的程度。

可解释性的重要性

  • 了解 “为什么” 可以帮助你更多地了解问题、数据以及模型可能失败的原因。
  • 机器的决策对人的生活影响越大,机器对它行为的解释就越重要。
  • 科学的目标是获取知识,但是许多问题都是通过大数据集和黑盒机器学习模型来解决的。模型本身应该成为知识的来源,而不是数据。可解释性使得可以提取模型捕获的这些额外知识。
  • 机器学习模型承担需要安全措施和测试的实际任务。
  • 可解释性是机器学习模型中一种有效检测偏见的调试工具。
  • 将机器和算法整合到日常生活中的过程需要可解释性,以增加社会认可度。
  • 解释用于管理社交互动。通过创造某个事物的共同含义,解释者影响着解释的接收者的行为、情感和信念。
  • 机器学习模型只有在可以解释时才能进行调试和审核。
  • 确保机器学习能够解释决策,我们可以更容易检查的性质:
    • 公平性 (Fairness):确保预测是公正的,不会隐式或显式地其实受保护地群体。
    • 隐私(Privacy):确保保护数据中地敏感信息。
    • 可靠性(Reliability)或鲁棒性(Reliability):确保输入地小变化不会导致预测发生剧烈变化。
    • 因果关系 (Causality):检查是否只找到因果关系。
    • 信任(Trust):人们更容易信任解释器决策地系统。

可解释性方法的分类

  • 本质的(Intrinsic)与事后的(Post-hoc)
    • 本质的可解释性是指由于结构简单而被认为是可解释的机器学习模型。
    • 事后可解释性是指模型训练后运用解释方法。
  • 解释方法的输出
    • 特征概要统计量(Feature Summary Statistic):为每个特征提供概要统计量以表现该特征的重要性。
    • 特征概要可视化 (Feature Summary Visualization):有些特征概要实际上只有在可视化的情况下才有意义(比如说图片)
    • 模型内部(例如模型权重)(Model Internals):例如用于分割特征的阈值。输出模型内部的可解释方法是特定于模型的。
    • 数据点(Data Point):通过返回已存在的或新创建的数据点使模型可解释。
      • 反事实解释(Counterfactual Explanations):为了解释对数据实例的预测,通过改变某些特征以改变预测结果,找到相似的数据点。
      • 识别预测类的原型,输出新数据点的解释方法要求可以解释数据点本身.
    • 本质上可解释模型:使用可解释模型对黑盒模型进行近似。
  • 特定于模型(Model-specific)和模型无关(Model-agnostic)
  • 局部(Local)与全局(Global)

可解释性范围

算法透明度(算法是如何创建模型的?)

  • 算法透明度是指算法如何从数据中学习模型,以及它可以学习到什么样的关系。
  • 算法的透明度只需要对算法的了解,不需要对数据或学习模型的了解。

全局、整体的模型可解释性(训练好的模型如何进行预测?)

  • 一旦能理解整个模型,就可以将模型描述为可解释的
  • 要解释全局模型输出,需要训练好的模型、算法知识和数据。
  • 基于对模型特征和每个学习部分的整体认知来理解模型如何做出决策
    • 那些特征很重要
    • 他们之间有什么样的交互作用
    • 全局的模型可解释性有助于基于特征理解目标结果的分布
  • 通常人们视图理解一个模型时,只考虑其中的一部分

模块层面上的全局模型可解释性(模型的某些部分如何影响预测?)

  • 全局模型可解释性通常是无法达到的,通常在模块层面上理解某些模型。
  • 并非所有模型都可以在参数级别上解释
    • 对于线性模型,可解释部分是权重
    • 对于树来说,可解释部分是分裂节点和叶节点预测
    • 权重仅在模型中其他特征的上下文中有意义

单个预测的局部可解释性(为什么模型会对一个实例做出某种预测?)

  • 在局部上,预测只依赖于线性或单调的某些特征,而不是对它们有复杂的依赖性。
  • 局部解释比全局解释更精准。

一组预测的局部可解释性(为什么模型对一组实例进行特定的预测?)

  • 多个实例的模型预测可以用全局模型解释方法或单个实例的解释来解释。
  • 全局方法可以通过获取实例组,将其视为一个完整的数据集以及使用全局方法处理这个数据集。
  • 也可以对每个实例使用单独的局部解释方法,然后为整个组列出其结果或对结果进行聚合。

可解释性评估

  • 应用级评估 (实际任务) (Application Level Evaluation)
    • 将解释放入产品中,由最终用户进行测试
    • 需要一个良好的实验装置和对如何评估质量的理解
    • 人类在解释相同决策时的表现是很好的基准
  • 人员级评估 (简单任务) (Human Level Evaluation)
    • 简化的应用级评估,由非专业人员进行
    • 使实验更加廉价,能更容易找到更多的测试人员
  • 功能级评估 (代理任务) (Function Level Evaluation)
    • 不需要人工
    • 当所使用的模型类已经由其他人在人员级评估进行评估时,是有效的
    • 例如各种指标

解释的性质

  • 解释(Explanation)通常以一种人类可理解的方式将实例的特征值与其模型预测联系起来
  • 解释方法的性质
    • 表达能力(Expressive Power):
      • 解释方法能够产生的解释的语言或结构
      • 解释方法可以是生成IF-THEN规则、决策树、加权和、自然语言或其他东西
    • 半透明(Translucency):
      • 描述了解释方法依赖于查看机器模型的程度、
      • 依赖于本质上可解释模型(例如线性回归)的解释方法是高度透明的
      • 仅依赖于修改输入和观察预测的半透明度为零
      • 高半透明度的优点是该方法可以依赖更多的信息来生成解释
      • 低半透明的优点是解释易于移植
    • 可移植性(Portability):
      • 描述使用解释方法的机器学习模型的范围
    • 算法复杂度(Algorithmic Complexity):
      • 描述了生成解释的方法的计算复杂度
  • 单个解释的性质
    • 准确性(Accuracy):
      • 解释预测看不见的数据会如何
      • 解释代替机器模型进行预测的准确性
    • 保真度(Fidelity):
      • 解释对黑盒模型预测的近似程度如何
      • 一些解释只提供局部保真度,意味着该解释仅非常适合于数据子集的模型预测
    • 一致性(Consistency):
      • 经过相同任务训练并产生相似预测的模型之间的解释有多少不同
      • 如果两个模型使用不同特征却得到相似的预测,高度一致性是不可取的
    • 稳定性(Stability):
      • 类似实例之间的解释有多相似
      • 稳定性是同一模型相似实例之间的解释稳定性
    • 可理解性(Comprehensibility):
      • 人类对解释的理解程度如何
      • 测量可理解性的想法包括测量解释的大小或测试人们如何从解释中预测机器学习模型的行为
    • 确定性(Certainty):
      • 解释是否反映了机器学习模型的确定性
      • 许多模型只给出预测,而没有关于预测正确的模型置信度的描述
    • 重要程度(Degree of Importance):
      • 解释多大程度上反映了解释的特征或部分的重要性
      • 如果生成决策规则作为单个预测的解释,那么是否清楚该规则的哪个条件最重要。
    • 新颖性(Novelty):
      • 解释是否反映了待解释的数据实例来自远离训练数据分布的新区域
      • 新颖性越高,由于缺乏数据,模型的确定性就越低
    • 代表性(Representativeness):
      • 一个解释能覆盖多少个实例

人性化的解释

  • 人类更喜欢简短的解释(只有1-2个原因)
  • 解释是解释者与被解释者之间的社会互动,社会背景对解释的实际内容有很大的影响
  • 预测或行为的所有因素的解释:完整的因果归因

什么是解释

  • 解释是“为什么”这个问题的答案
  • 解释(Explanation)一词是指解释的社会和认知过程,也指这些过程的产物。
  • 解释者(Explainer)可以是人或机器

什么是好的解释

  • 解释具有对比性

    • 人们通常不会问为什么会做出某种预测,但会问为什么会做出这种预测而不是另一种预测。
    • 最好的解释是强调感兴趣的对象和参照对象之间最大的差异
    • 人类不希望对预测有一个完整的解释,而是希望将不同之处与另一个实例的预测进行比较
    • 自动创建对比性解释的解决方案还肯涉及在数据中寻找原型
  • 选择性的解释

    • 人们不希望对涵盖事件的实际原因和完整原因进行解释
    • 人们习惯于从各种可能的原因中选择一个或两个原因作为解释
    • 一个事件可以由各种原因解释,为什么做出了某种预测也可能由不止一个选择性的解释
  • 解释是社会性的

    • 解释是解释者和解释的接收者之间的交互
    • 社会背景决定了解释的内容和性质
  • 解释的重点是异常

    • 人们更关注异常原因来解释事件
    • 如果一个预测的输入是异常的,并影响了预测,那么它应该将其包括在解释中
  • 解释是真实地

    • 良好地解释是真实的,但不是“好的”解释的重要因素
    • 选择性似乎比真实性更重要
    • 解释应该尽可能真实地预测事件
    • 对人类来说,解释地保真度不如它的选择性、对比性和社会性重要
  • 好的解释与被解释者地先验知识是一致的

    • 人们往往忽视与他们先验知识不一致的信息,这种效应被称为确认偏差
    • 这种偏差不可避免,人们往往会贬低或忽视与他们先验知识不一致的解释
    • 先验知识因人而异
    • 群体可能存在共同的先验知识
    • 好的解释与先验知识是一致的
  • 好的解释是普遍性和很可能的

    • 可以普遍解释很多事件的解释可以被认为是一个好的解释

    • 与异常原因能够做出好的解释说法矛盾

      • 作者认为 异常原因胜过普遍原因
      • 在给定情况下,异常原因是罕见的,在没有异常事件的情况下,普遍性的解释被认为是一个好解释
      • 人们往往会误判共同事件的可能性
    • 普遍性可以很容易通过特征的支持来衡量

可解释的模型

算法 线性 单调 交互 任务
线性回归 回归
逻辑回归 分类
决策树 部分 分类;回归
RuleFit 分类;回归
朴素贝叶斯 分类
k-最近邻 分类;回归

线性回归

  • 线性回归(Linear Regression)将目标预测为特征输入的加权和
  • 所学关系的线性使解释变得容易
  • 线性回归模型的线性特点使估计过程变得简单
  • 线性方程在模块化水平上具有易于解释的理解
  • 模型是否为正确的模型取决于数据中的关系是否满足某些假设
    • 线性
      • 线性回归使预测成为特征的线性组合
      • 线性易于量化和描述,它们可加并容易分离
    • 正态性
      • 假设给定的目标结果服从正态分布
      • 若违反此假设,则特征权重的估计置信区间无效
    • 同方差性
      • 假设误差项的方差在整个特征空间内是恒定的
      • 该假设在现实中经常被违背
        • 现实中由于不同值的不同意义,误差常常不同
        • 如不同大小的房屋价格估计误差常常不同
    • 独立性
      • 假设每个实例独立于其他实例
      • 如果存在相关关系,需要使用特殊的模型,否则会的出错误的结论
    • 固定特征
      • 输入特征被认为是固定的
      • 固定意味着它们被视为给定常数,而不是统计向量,意味着它们没有测量误差
    • 不存在多重共线性
      • 不需要强相关的特征,这回扰乱对权重的估计
      • 在两个特征强相关的情况下,由于特征效应是累加的,估计权重变得困难,无法确定哪一个相关特征归因了效应

解释

  • 线性回归模型中权重的解释取决于相应特征的类型
    • 数值特征:将数值特征增加一个单位会根据其权重改变估计结果
    • 二分类特征:每个实例都采用两个可能值之一的特征。该特征从参照类型更改为其他类型会根据特征的权重改变估计结果
    • 具有多个类别的分类特征:具有固定数量的可能值特征
    • 截距项β:截距是“常量特征”的特征权重,对于所有实例都是1。结局的解释通常不相关。
  • 数值特征的解释
    • 当其他特征保持不变时,特征x每增加一个单位,预测结果y增加z
  • 分类特征的解释
    • 当所有其他特征保持不变时,特征x参照类别改变为其他类别时,预测结果y增加z
    • R-平方度量(R-squared Measurement)
      • 该指标表现了模型解释了目标结果的总方差中的多少
      • 该指标越高,模型对数据的解释就越好
      • R^2 = 1 - SSE/SST
        • SSE 为误差项的平方和
          • 表现拟合线性模型还有多少方差
        • SST 是数据方差的平方和
          • 目标结果的总方差
      • 优化后的R-平方
        • Ro^2 = 1 - ( 1 - R^2 )( n - 1)/( n - p - 1)
          • p为特征的数量
          • n为实例的数量
        • 考虑了模型中的特征数量
        • 解释一个调整后的R平方很低的模型是没有意义的,因为这样的模型基本上不能解释大部分的方差
      • 特征重要性
        • 线性回归模型中的某个特征重要性可以用它的 t-统计量(t-statistic)的绝对值衡量
        • t-统计量是以标准差为尺度的估计权重
          • t = β / SE(β)
        • 特征的重要性随着权重的增加而增加
        • 估计权重的方差越大,特征越不重要

可视化解释

  • 权重图 (Weight Plot)
    • 权重表中的权重和方差估计可以在权重图中可视化
  • 效应图 (Effect Plot)
    • 当线性回归模型的权重与实际特征值相乘时,可以更有意义地进行分析
    • 权重取决于特性地比例
    • 特征效应
      • effect = w * x (权重 * x)

解释单个实例预测

  • 计算单个实例地特征对预测有多大贡献
  • 特定实例地特征效应地解释仅与各个特征地特征效应分布相比较才有意义

分类特征的编码

  • Treatment Coding
    • 每个类别的权重是对应类别和参照类别之间预测估计插值
    • 第一列是截距
    • 第二列是实例是否在B类中
    • 第三列是实例是否再C类中
  • Effect Coding
    • 每个类别的权重是从相应类别到总体均值的估计y值的差
    • 第一列用于估计截距,用β0表示总体均值
    • 第二列的权重表示总体均值与B类之间的差异
      • B类的总体效应为β0+β1
    • 第三列C同理
  • Dummy coding
    • 每个类别的β是这个类别y的估计均值

线性模型是否有很好的解释

  • 线性模型并不能创建最佳解释
  • 线性模型是对比性的,但是参照是构造的一个数据点,其中所有数值特征都为零
  • 分类特征设置为它们的参照类别,不太可能出现再真实数据或现实中
  • 只有再所有数值特征均以均值为中心,并且所有分类特征都是Effect Coding的,参照实例就是所有特征取平均特征值的数据点

稀疏线性模型

Lasso

  • Lasso是一种将稀疏性引入线性回归模型的自动渐变方法
  • Lasso代表 最小绝对收缩和选择算子
  • Lasso为优化问题添加了特征向量的L1范数
Lasso优化目标
  • 使用L1范数会使部分权重的估计值为0,其他权重的估计值缩小

其他线性模型稀疏方法

  • 预处理方法
    • 手动选择特征:使用专家知识选择或放弃某些特征
    • 单变量选择
  • 分布方法
    • 向前选择:
      • 用一个特征拟合线性模型,对每个特征都执行此操作
      • 选择最有效的模型
      • 对于其余的特征,通过将每个特征添加到当前的最佳模型中来拟合模型的不同版本,选择最好的一个
      • 重复操作,直到达到条件,例如最大特征数
    • 向后选择
      • 从包含所有特征的模型开始
      • 尝试删除某个特征以达到性能最大程度的提高
      • 重复操作直至达到某个条件

优点

  • 将预测建模为一个加权和,使预测的生成变得透明
  • 在许多地方预测和推理都被接受
  • 有很高水平的集体经验和专业知识
  • 估计权重很简单,可以保证找到最佳权重
  • 与权重一起,还可以得到置信区间,检验和可靠的统计理论

缺点

  • 线性回归模型只能表示线性关系
  • 每一个非线性或交互都必须是人工构成的
  • 线性模型的预测性能通常不好
  • 权重的解释可能不直观
  • 完全相关的特征可能找不到线性方程的唯一解
  • 相关性太强时,线性方程变得不稳定

逻辑回归

  • 逻辑回归(Logistic Regression)建模有两个可能结果的概率分类问题,它是针对分类问题的线性回归模型的扩展

线性回归用于分类有什么问题

  • 线性模型不输出概率,但他将类视为数字(0和1),并拟合最佳超平面,以最小化点和超平面之间的距离。它只是在点之间插值,并不能把它解释为概率。

  • 由于预测的结果不是概率,而是点与点之间的线性插值,没有一个有意义的阈值可以用来区分一个类和另一个类。[Stackoverflow]

  • 线性模型不能扩展到居于偶多个类的分类问题。

理论

  • 逻辑回归不是拟合直线或超平面,而是使用逻辑函数将线性方程的输出挤压到0到1之间。\(logistic(n) = \frac{1}{1+exp(-\eta)}\)

解释

  • odds被称为几率,指时间发生概率除以事件不发生概率

  • \(\frac{odds_{x_j+1}}{odds} = \frac{exp(\beta_0+\beta_1x_1+...\beta_j(x_j+1)+...+\beta_px_p}{exp(\beta_0+\beta_1x_1+...\beta_jx_j+...+\beta_px_p}\)

  • \(\frac{odds_{x_j+1}}{odds} = exp(\beta_j(x_j+1)-\beta_jx_j) = exp(\beta_j)\)

  • 数值特征:如果你将特征\(x_j\)增加一个单位,则估计的几率将乘以因子\(exp(\beta_j)\)

  • 二分类特征:只取两种可能指的特征,其以是参照类别。将特征\(x_j\)从参照类别更改为其他类别,则估计的几率将乘以因子\(exp(\beta_j)\)

  • 截距项\(\beta_0\):所有数字特征为零和分类特征为参照类别,则估计的几率是\(exp(\beta_0)\)。截距的解释通常不相关。

优缺点

  • 逻辑回归的解释更加困难,权重的解释是乘法而不是加法

  • 逻辑回归可能受到完全分离(Complete Separation)的影响。

    • 如果有一个特征能够将两个类完全分开,那么逻辑回归模型就不能再被训练了。

    • 该特征的权重不会首先,因为最佳权重将是无限的

  • 逻辑回归模型不仅是一个分类模型,而且还给出概率。

FLM,GAM和其他模型

  • 广义线性模型(Generalized Linear Models, GLMs)

    • 解决给定特征目标结果y不遵循高斯分布问题
  • 广义加性模型(Generalized Additive Models, GAMs)

    • 解决特征和y之间的真实关系不是线性的问题

非高斯输出结果 - GLM

  • 核心概念:保留特征的加权和,但允许非高斯结果分布,并通过可能的非线性函数连接该分布的期望均值与加权和。

  • 经典线性模型被看作GLM的一个特例,经典线性模型中高斯分布的连接函数是一个简单的恒等函数。高斯分布由均值和方差进行参数化。均值描述了期望均值,方差则描述了在均值上下值的变化程度。[指数族分布表]

  • 在GLM框架下,这个概念推广到任意分布和任意连接函数。

交互

  • 线性回归模型假设一个特征的效应是保持相同的,与其他特征的值无关。

  • 在拟合线性模型之前,在特征矩阵中添加一列,表示特征之间的交互,并像往常一样拟合模型。

非线性效应-GAM

  • 非线性关系建模

    • 特征转换(如对数)

    • 特征分类

    • 广义加性模型(GAM)

      • 假定关系可以由每个特征的任意函数的和建模结果

优点

  • 线性模型具有广泛的应用,并被许多社区认为是建模的现状

  • 除了进行预测之外,还可以使用模型进行推断,得出有关数据的结论;并可以得到权重的置信区间、显著性检验、预测区间。

缺点

  • 线性模型的大多数修改都会使模型的解释性变差。

  • GLM、GAM等依赖于有关数据生成的假设,如果违反了这些假设,则对权重的解释不再有效。

决策树

  • 线性回归和逻辑回归在特征与结果之间的关系为非线性或特征交互的情况下会失败。

  • 基于树的模型根据特征中的某些截断值多次分割数据。

  • 通过分割,创建数据集的不同子集,每个实例都属于一个自己。

  • 为了预测每个叶节点的结果,使用该节点中训练数据的平均结果。

解释

  • 从根节点开始,转到下一个节点,边表明要查看的子集。一旦到达叶节点,该节点将表明预测的结果。

特征重要性

  • 决策树中特征的总体重要性计算方式:

    • 遍历使用该特征的所有分割,测量它相对于父节点减少了多少方差或基尼指数。

    • 所有重要性的综合被缩放为100,每个重要性可以解释为总体模型重要性的一部分

树分解

  • 通过将决策路径分解为每个特征的组成,可以解释决策树的单个预测

  • 可以通过树跟踪决策,并通过在每个决策节点上添加的贡献来解释预测

优点

  • 树结构非常适合捕获数据中特征之间的交互

  • 数据最终被分成不同的组,不线性回归中多维超平面上的点容易理解

  • 树结构由一个自然的可视化,包括它的节点和边

  • 不需要转换特征

缺点

  • 树不能处理线性关系。输入特征和结果之间的任何线性关系都必须能通过分割来近似,从而创建一个阶跃函数。

    • 缺乏平滑度

    • 不稳定

    • 终端节点的数量随深度的增加而迅速增加

决策规则

  • 决策规则是一个简单的IF-THEN语句,由条件和预测组成。

  • 决策规则可能是最容易解释的预测模型。

  • 决策规则的有用性通常概括为两个数字:支持度(Support)和准确性(Accuracy)

    • 规则的支持度或覆盖度:规则条件适用的实例所占的百分比称为支持度

    • 规则的准确性或置信度:规则的准确性是衡量规则在规则条件适用的实例预测正确类别时的准确性的指标。

  • 组合多个规则的两种主要策略

    • 决策列表

      • 决策列表向决策规则引入有序

      • 如果第一条规则对实例的条件为真,则使用第一条预测的规则

      • 如果没有,转移到下一个规则

      • 决策列表只返回适用列表第一个规则的预测来解决重叠规则的问题

    • 决策集

      • 决策集类似于规则的民主,只是有些规则困难有更高的投票权

      • 当一些规则适用时,解释性可能会受到影响

从单个特征学习规则(OneR)

  • OneR选择一个包含有关感兴趣结果的最多信息的特征,并从该特征创建决策规则

  • 算法实现

    • 选择适当的间隔离散化连续特征

    • 对于每个特征

      • 在特征值和分类结果之间创建交叉表

      • 对于特征的每个值,创建一个规则,预测具有此特定特征值的实例的最常见类别

      • 计算特征规则的总误差

    • 选择总误差最小的特征

顺序覆盖

  • 顺序覆盖(Sequential Covering)是一个通用过程,它重复学习单个规则以创建一个决策列表,该决策离别哦按规则覆盖整个数据集。

  • 算法思路

    • 首先,找到一个适用于某个数据点的好规划

    • 栓除规则所覆盖的所有数据点

    • 重复规则学习,在剩余的点删除覆盖的点,直到没有剩余的点或满足另一个停止条件为止

    • 最后结果是一个决策列表

  • 重复规则学习和删除覆盖数据点的方法称为“变治法(separate-and-conquer)”

  • 算法实现

    • 从一个空的列表\(rlist\)开始

    • 学习一个规则\(r\)

    • 直到规则列表低于某个质量阈值

      • 将规则\(r\)添加到\(rlist\)

      • 删除规则\(r\)覆盖的所有数据点

      • 在剩余数据中学习其他的规则

    • 返回决策列表

  • 学习规则:束搜索(Beam Search)方法

    • 学习决策树(CART或其他树学习算法)

    • 从根节点开始,递归地选择最纯地节点(具有较低地错误分类率)

    • 终端节点地多数的类别用作规则的预测

贝叶斯规则列表

  • 贝叶斯规则列表

    • 从数据中预先挖掘(pre-mind)频繁使用的模式,这些模式可用作决策规则的条件

    • 从预先挖掘的规则中选择决策列表

频繁模式的预先挖掘

  • 模式的频率是通过其在数据集中的支持度来测量

  • \(Support(x_j=A)=\frac{1}{n}\sum_{i=1}^{n}{I(x^{(i)}_j=A)}\)

    • \(A\)是特征值,\(n\)是数据集中的数据点数量,\(I\)是指示函数(如果实例\(i\)的特征\(x_j\)具有级别\(A\),则返回1,否则为0)

学习贝叶斯规则列表

  • BRL算法的目标是通过选择预先挖掘的条件来学习一个准确的决策列表,同时对规则较少、条件较短的列表进行优先级排序。

  • BRL建议的实现方法

    • 生成初始决策列表

    • 通过添加,切换或删除规则来迭代地修改列表,确保列表遵循列表的后验分布

    • 根据后验分布,从概率最高的采样列表中悬着决策列表

优点

  • IF-THEN规则很容易解释

  • 决策规则可以像决策树那样具有表达能力,同时更紧凑

  • 使用IF-THEN预测很快

  • 决策规则对于输入特征的单调变换具有很强的鲁棒性

  • IF-THEN模型仅为模型选择相关特征

  • 简单规则可以作为复杂算法的基线

缺点

  • IF-THEN集中研究分类问题,几乎完全忽略了回归

  • 输入特征必须是分类的,如果使用数值特征,必须对他们进行分类

  • 许多旧的规则学习算法容易过拟合,需要至少一些保护措施来防止过拟合。

  • 在描述特征和输出之间的线性关系时,决策规则是不好的。

RuleFit

  • RuleFit学习具有原始特征以及许多新特征(决策规则)的稀疏线性模型。

  • RuleFit从决策树自动生成这些特征。通过将分割的决策合并为规则,可以将通过树的每条路径转换为决策规则。节点预测被丢弃,决策规则中仅使用分割。

解释

  • RuleFit最终会估计一个线性模型,因此其解释与常规线性模型的解释相同

  • 区别是该模型具有从决策规则派生的新特征。

  • 决策规则是二进制特征,值为1满足规则的所有条件,否则值为0.

理论

  • RuleFit由两个部分组成:

    • 从决策树创建规则

    • 以原始特征和新规则作为输入用线性模型拟合

  • 规则生成

    • 到树中节点的任意路径都可以转换为决策规则

    • 任何树集成算法都可以用作RuleFit生成树

  • 稀疏线性模型

    • 对原始特征进行调整,是他们对异常值更加健壮

    • 使用Lasso强制某些权重获得零估计

  • 特征重要性

    • 决策规则重要性公式 \(I_k = |\alpha_k|\cdot\sqrt{s_k(1-s_k)}\)

      • \(\alpha_k\)是决策规则关联Lasso权重

      • \(s_k\)是数据中特征的支持度,即决策规则适用数据的百分比

优点

  • RuleFit自动将特征交互添加到线性模型

  • RuleFit可以处理分类和回归任务

  • 创建的规则易于解释,因为它们是二进制决策规则

  • 对于单个实例,只有少数规则适用。提高了局部可解释性。

  • RuleFit提出了许多有用的诊断工具

缺点

  • RuleFit的可解释性醉着模型特征数量的增加而降低。

  • RuleFit仍然是一个线性模型,当有规则重叠时,会出现问题。

其他可解释模型

朴素贝叶斯分类器

  • 朴素贝叶斯分类器使用条件概率的贝叶斯定理

  • 朴素贝叶斯分类器独立地计算每个特征的类概率。

  • \(P(C_k|x)=\frac{1}{Z}P(C_k)\prod_{i=1}^nP(x_i|C_k)\)

k-最近邻

  • k-最近邻方法可用于回归和分类,并将数据点的最近邻用于预测

  • 较难解释

模型无关方法

  • 模型无关的解释方法相对于模型特定的解释方法的最大优势是它们的灵活性

  • 当解释方法可以应用于任何模型时,机器学习开发人员可以自由使用他们喜欢的任意机器模型。

  • 模型不可知的解释系统的理想特征:

    • 模型的灵活性:解释方法可以与任何机器学习模型一起使用

    • 解释的灵活性:不限于某种形式的解释。在某些情况下线性公式可能会有用,在其他情况下,特征重要性的图形可能会有用。

    • 表示方式的灵活性:解释系统应该能够使用与所解释模型不同的特征表示方式。

更大的图景
  • 更大的图景

    • 透过收集数据捕获世界,通过学习使用机器学习模型预测数据来进一步抽象世界。

    • 可解释性帮助人们的理解更上一层

部分依赖图

  • 部分依赖图(Partial Dependence Plot)显示了一个或两个特征对机器学习模型的预测结果的边际效应。

  • 部分依赖函数\(f_{X_S}\)通过计算训练数据的平均值来估算,称为蒙特卡洛方法

    • \(f_{x_S}=\frac{1}{n}\sum_{i=1}^nf(x_S,x_C^{(i)})\)

    • 部分依赖函数告诉我们特征S的给定值对预测的平均边际效用是多少

    • 部分依赖图假设感兴趣特征和其他特征不存在相关关系。

优点

  • 部分依赖图计算直观,容易被非专业人士理解

  • 如果认为i计算部分依赖图的特征与其他特征不相关,部分依赖图可以完美地表示该特征如何平均影响预测。

  • 部分依赖图容易实现

  • 部分依赖图地计算具有因果关系。通过干预一项特征并测量预测地变化,构建了特征与预测之间地因果关系。

缺点

  • 部分依赖函数实际应用地最大特征数量为2

  • 一些部分依赖图未显示特征分布。忽略分布可能会产生误导,因为可能会过度解释没有数据的区域。通过显示RUG或直方图可以轻松解决此问题。

  • 独立性假设是部分依赖图最大的问题

    • 当特征关联时,部分依赖图会在特征分布区域中创建实际概率非常低的新数据点

    • 解决的一种方法是适用于条件分布而非边际分布的累积局部效应图

  • 异质效应可能被隐藏

    • 多个特征可能会抵消影响从而得出特征没影响的结论

个体条件期望

  • 个体条件期望(Individual Conditional Expectation)图为每个实例显示一条线。该线显示了特征更改时实例的预测如何改变

  • 特征平均效应部分依赖图是一种全局方法,它不关注特定实例,而是关注整体平均。

  • 实现

    • 保持所有其他特征相同,通过用网络中的值替换特征的值创建该实例的变体并用黑盒模型对这些新建的实例进行预测。

    • 获得一组具有来自网络的特征值和相应预测的点

  • 中心化个体条件期望图(Centered ICE Plot)

    • 将曲线中心化于特征中的某个点,并仅显示到该点的预测差异
  • 倒数个体条件期望图(Derivative ICE Plot)

    • 曲线的倒数表达了是否发生变化以及变化方向

优点

  • 相比于部分依赖图更加直观

  • 可以揭示异质关系

缺点

  • 只能有意义地显示一个特征

  • 如果感兴趣地特征与其他特征相关联,线中地某些点可能是无效地数据点

  • 大量地ICE曲线可能会使图过于拥挤

累积局部效应图

  • 累积局部效应(Accumulated Local Effects Plot)描述了特征平均如何影响机器学习模型地预测。

  • ALE图是部分依赖图地更快、更无偏地替代方法

动机和直觉

  • 如果机器学习模型地特征相关,部分依赖图将不可信。
  • 累积局部效应图通过基于特征的条件分布来计算差异从而避免将特征和其他所有相关特征的效应混合在一起。

理论

  • \(\hat{f}*{ {x_S},ALE}(x_S)=\int*{z_{0,1} }^{x_S}\int_{x_C}\hat{f}^S(z_s,x_c)P(x_C|z_S)dx_Cdz_S-constant\)

  • 预测平均预测的变换,而不是预测本身

  • 将变化定义为梯度(对于实际计算,替换为预测差异\(\hat{f}^S(x_s,x_c)=\frac{\delta\hat{f}(x_S,x_C)}{\delta x_S}\))

估计

  • 与数据的平均预测值相比,ALE值可以解释为某一特定值下特征的主要效应

  • 特征分布的分位数用作定义间隔的网络。使用分位数可确保每个间隔中有相同数量的数据实例。

  • 分位数的去点是间隔长度可能非常不同。如果感兴趣的特征非常偏斜,则可能会导致累积局部效应图出现异常。

用于两个特征交互的ALE图

  • 两个特征的ALE仅显示两个特征的附加交互效应

  • 二阶效应是在考虑了特征的主要效应之后,特征的附加的交互效应。

ALE用于分类特征

  • 累积局部效应方法需要特征值具有顺序,因为该方法会演特定方向累积效应

  • 为计算分类特征的ALE图,我们必须以某种方式创建或找到一个顺序。

  • 类别的顺序会影响累积局部效应的计算和解释

  • 基于其他特征根据类别的相似性对类别进行排序。

  • 两类之间的距离是每个特征的距离之和

  • 逐特征距离比较累两个类别中的累积分布,称为Kolmogorov-Smirnov距离

  • 一旦有了所有类别之间的距离,便可以使用多维缩放将距离矩阵压缩为一维距离度量

优点

  • ALE图是无偏的,在特征相关时它们仍然有效。

  • ALE绘图的计算速度比PDP更快,可以使用\(O(n)\)进行缩放

  • ALE图的解释很清楚:在给定值的条件下,可以从ALE图中读取更改特征对预测的相对影响

  • ALE图以0为中心

  • ALE绘图仅显示交互作用

缺点

  • ALE图可能会变得有些不稳定。没有完美的解决方案来设置间隔的数量。

  • ALE图不附带ICE曲线

  • 二阶ALE估计在整个特征空间中具有不同的稳定性,这是不以任何方式可视化的。

    • 对一个单元中局部效应的每次估计都是用不同数量的数据实例

    • 所有估计都具有不同的准确性

  • 二阶效应图解释起来有点烦人

    • 必须牢记主要效应
  • 相比部分依赖图更加复杂且不直观

  • 当特征强相关时,解释仍然困难

特征交互

  • 特征交互(Feature Interaction):当特征在预测模型中交互时,预测不能表示为特征效应的总和,因为一个特征的效应取决于另一个特征的值。

特征交互

  • 如果机器学习模型基于两个特征进行预测,则可以将预测分解为四项:常量项、第一特征项,第二特征项以及两个特征间的交互项

理论:弗里德曼的H统计量

  • 两种情况

    • 双向交互度量:模型中的两个特征是否交互以及在何种程度上交互

    • 总体交互度量:某个特征在模型中是否与其他所有其他特征发生交互以及在何种程度上的交互

  • 特征\(j\)\(k\)之间的交互作用提出的H统计量:

    • \(H^2_{jk}=\sum_{i=1}^n[PD_{jk}(x_j^{(i)},x_k^{(i)})-PD_j(x_j^{(i)})-PD_k(x_k^{(i)})]^2/\sum^n_{i=1}PD^2_{jk}(x_j^{(i)},x_k^{(i)})\)

    • 如果完全没有交互,则统计量为0,如果用部分依赖函数之和解释了\(PD_{jk}\)\(\hat{f}\)的所有方差,则统计为1.两个特征之间的交互统计为1表示每个PD函数都是常数,并且对预测的效应仅来自交互。

    • H统计量的评估成本很高,因为它会在所有数据点上进行迭代,并且必须在每个点评估部份依赖,而这又需要对所有n个数据点进行

    • 如果预测是概率,则交互强度统计也可以应用于分类设置

优点

  • 交互作用H统计量通过部分依赖分解具有理论基础

  • H统计量具有有意义的解释:交互作用定义为由交互作用解释的方差份额

  • 由于统计信息是无量纲的,并总在0和1之间,因此它在各个特征甚至模型之间都具有可比性

  • 统计信息会检测各种类型的交互

  • 可以分析任意更高阶的交互作用

缺点

  • 交互H统计量计算量很大

  • 如果对点进行采样,估算值也因运行而异,结果可能不稳定

  • 很难说H统计量何时足够大以至于可以认为交互足够强

  • H统计量可能大于1,难以解释

  • 该技术对图像分类器没有用

替代方法

置换特征重要性

  • 置换特征重要性(Permutation Feature Importance)衡量了对特征值进行置换后模型预测误差的增加,打破了特征与真实结果之间的联系

理论

  • 通过置换特征后计算模型的预测误差来衡量特征的重要性。

  • 如果将特征值的改变会增加模型误差,则特征重要,因为模型依赖于该特征进行预测

  • 实现

    • 计算原始误差:\(e^{orig}=L(y,f(X)\)

    • 置换数据X中的特征j生成特征矩阵\(X^{perm}\)

    • 估计误差\(e^{perm}=L(Y,f(X^{perm}))\)

    • 计算置换特征重要性\(FI^j=e^{perm}/e^{orig}\)

训练数据和测试数据的重要性

训练数据情况

  • 如果在训练模型的相同数据上测量模型误差,测量通常过于乐观,模型工作效果比实际情况好得多

  • 基于训练数据的特征重要性使我们错误的认为对于预测很重要,而实际上模型只是过拟合而特征根本不重要

测试数据情况

  • 如果希望使用所有数据来训练模型,以最终获得可能的模型,没有声音未使用的测试数据来计算特征的重要性

  • 评估模型泛化时,特征重要性不是在具有所有数据的最终模型上计算的,而是在具有可能表现不同的数据自己的模型上计算的

优点

  • 很好的解释:特征重要性是当特征信息被破坏时模型误差的增加

  • 特征重要性提供了对模型行为高度压缩的、全局的洞悉

  • 特征重要性度量是可比较的

  • 重要性度量会自动考虑与其他特征的所有交互

  • 置换特征重要性不需要重新训练模型

缺点

  • 非常不清楚应该使用训练数据还是测试数据来计算特征的重要性

  • 置换特征的重要性与模型的误差有关

  • 需要真正的结果,如果仅提供模型和未标记的数据则无法计算

  • 重复置换后,结果可能会有很大差异

  • 如果特征是相关的,置换特征重要性可能会因不切实际的数据实例而有偏差

  • 添加相关特征可以通过在两个特征之间拆分重要性降低关联特征的重要性

全局代理模型

  • 全局代理模型经过训练可近似于黑盒模型的预测。通过解释代理模型得出有关黑盒模型的结论

理论

  • 如果目标结果昂贵、耗时或难以衡量,则可以使用结果廉价、快速的代理模型。

  • 可解释的代理模型目的是尽可能准确地近似底层模型地预测,并且可以同时进行解释

  • 代理模型实现流程

    • 选择数据集X

    • 对于选定地数据集X,获取黑盒模型地预测

    • 选择一种可解释地模型

    • 在数据集X及其预测上训练可解释模型

    • 获得代理模型

    • 衡量代理模型复制黑盒模型预测地效果

    • 解释代理模型

  • R-平方度量

    • 衡量代理复制黑盒模型地能力

    • \(R^2=1-\frac{SSE}{SST}=1-\frac{\sum^n_{i=1}(\hat{y}_*^{(i)}-\hat{y}^{(i)})^2}{\sum^n_{i=1}(\hat{y}^{(i)}-\bar{\hat{y}})^2}\)

    • \(\hat{y}_*^{(i)}\)是代理模型地第i个实例的预测

    • \(\hat{y}^{(i)}\)是黑盒模型的预测

    • \(\bar{\hat{y}}\)是黑盒模型预测的平均值

优点

  • 代理模型方式非常灵活

  • 使用R-平方测量,可以轻松测量代理模型在逼近黑盒预测方面的表现

缺点

  • 得出的是有关模型而不是数据的结论

  • 尚不清楚R-平方的最佳截止点是什么,以便确信代理模型与黑盒模型足够接近

  • 对于数据集的一个子集,可解释模型可能非常接近,而对于另一子集,则可能发生很大差异

  • 受选择可解释的代理模型本身的所有优点和缺点

  • 有人认为,一般而言,没有本质上可解释的模型

局部代理(LIME)

  • 局部代理模型本身是可解释的模型,用于解释黑盒机器学习模型的单个实例预测

  • LIME并非训练全局代理模型,而是转语音训练局部代理模型以解释单个预测

  • 具有可解释性约束的局部代理模型:\(explanation(x)=arg min_{g\in G}L(f,g,\pi_x)+\Omega(g)\)

    • 对实例\(x\)的解释模型是模型\(g\)

    • 最小化损失\(L\)测量了解释\(g\)与原始模型\(f\)的预测接近程度

    • 模型复杂度\(\Omega(g)\)保持较低水平

  • 训练局部代理模型

    • 选择对黑盒预测进行解释的感兴趣实例

    • 扰动数据集并获得新点的黑盒预测

    • 根据新样本与目标实例的接近程度进行加权

    • 在新数据集上训练加权的可解释模型

    • 通过解释局部模型来解释预测

表格数据的LIME

  • 使用指数平滑核来定义邻域

  • 平滑核是一个函数,它接受两个数据实例并返回一个接近度(proximity measure)

文本的LIME

  • 从原始文本开始,通过从原始文本中随机删除单词来创建新文本

图像的LIME

  • 将图像分割成“超像素”并关闭和打开超像素创建图像的变化

  • 超像素是具有相似颜色的互连像素,可以通过将每个像素替换为用户定义的颜色来关闭

优点

  • 即使替换了底层的机器学习模型,仍然可以使用相同的局部可解释模型进行解释

  • LIME是少数适用于表格数据,文本和图像的方法之一

  • 保真度度量使我们很好地了解了可解释模型在解释感兴趣地数据实例附近地黑盒预测方向地可靠性

  • 用局部代理模型创建的解释可以使用除原始模型所用以外的其他特征

缺点

  • 当对表格式数据使用LIME时,正确定义邻域是一个很大的未解决问题

  • 解释不稳定

  • 以LIME作为具体实现的局部代理模型有非常有应用前景。但该方法仍处于开发阶段,需要解决许多问题才能安全应用。

Shapley值

  • Shapley是联盟博弈论的一种方法,告诉我们如何在特征之间公平地分配总支出

总体思路

  • Shapley值是所有可能地联盟中特征值地平均边际贡献

详细的Shapley值

  • Shapley定义:\(\phi_i(val)=\sum_{S\in\{x_1,...,x_p\}}\frac{|S|!(p-|S|-1)!}{p!}(val(S\cup\{x_j\})-val(S))\)

  • Shapley值是唯一满足效益性(Efficiency),对称性(Symmetry),虚拟性(Dummy)和可加性(Additivity)的归因方法

    • 效益性

      • 特征贡献之和等于x和平均值的预测差

      • \(\sum^p_{j=1}\phi_j=\hat{f}(x)-E_X(\hat{f}(X))\)

    • 对称性

      • 如果两个特征值j和k对所有可能的联盟均贡献相同,则它们的贡献影响同

      • 如果 \(val(S\cup\{x_j\})=val(S\cup\{x_k\})\)

      • 对于所有 \(S\subseteq\{x_1,...,x_p\}\setminus\{x_j,x_k\}\)

      • 那么 \(\phi_j=\phi_k\)

    • 虚拟性

      • 假设无论将特征值添加到哪个集合,都不会改变预测值的特征j,他的Shapley值应为0

      • 如果 \(val(S\cup\{x_j\})=val(S)\)

      • 对于所有 \(S\subseteq\{x_1,...,x_p\}\)

      • 那么 \(\phi_j=0\)

    • 可加性

      • 可加性保证对于特征值,可以分别计算每部分的Shapley值,取平均值获得整体的Shapley值
    • 直觉

      • 特征值的Shapley值是当特征值加入时,已经存在联盟所收到的预测的平均变化

估算Shapley值

  • Shapley基于蒙特卡洛抽样的近似值 \(\hat{\phi}_j=\frac{1}{M}\big(\hat{f}(x^m_{+j})-\hat{f}(x^m_{-j})\big)\)

    • \(x^m_{+j}\)是x的预测,除了特征j的值,其他不在联盟内的特征值被来自随机数数据点z的特征值替换

优点

  • 预测值与平均预测值之间的差异在实例的特征值(Shapley)之间的公平分配

  • Shapley值允许进行对比性解释

  • Shapley值是唯一具有扎实理论的解释方法

缺点

  • Shapley值计算需要大量时间。绝大多数只能使用近似的计算

  • Shapley值可能会被误解

    • 特征值的Shapley值不是从模型训练中删除特征后的预测值之差

    • 给定当前的一组特征值,特征值对实际预测值与平均预测值之差的贡献就是估计的Shapley值

  • 如果寻求稀疏解释(包含很少特征的解释),则Shapley值是错误的解释方法

    • 使用Shapley值方法创建的解释始终使用所有特征
  • Shapley值为每个特征返回一个简单值,但没有像LIME这样的预测模型

    • 不能用于对输入变化的预测做出变化的陈述
  • 如果要计算新数据实例的Shapley值,则需要访问数据

  • Shapley值方法在特征相关时会遇到不现实的数据实例

SHAP

  • SHAP(SHapley Additive ExPlanations)是一种解释个体预测的方法。SHAP基于博弈论上的最佳Shapley值

定义

  • SHAP的目标是通过计算每个特征对预测x的贡献来解释实例x的预测

  • SHAP将Shapley值的解释表示为一种可加的特征归因方法

  • SHAP解释: \(g(z^\prime)=\phi_0+\sum^M_{j=1}\phi_jz^\prime_j\)

    • \(g\)是解释模型

    • \(z^\prime\in\{0,1\}^M\)是联盟向量

    • \(M\)是最大联盟大小

    • \(\phi_j\in R\)是特征j的特征归因Shapley值

  • SHAP理想性质

    • 局部准确性(Local accuracy)

      • 表示特征归因的总和等于我们要解释的模型的输出
    • 缺失性(Missingness)

      • 缺失性表示缺失特征的归因为零
    • 一致性(Consistency)

      • 如果模型发生变化,以使特征值的边际贡献增加或保持不变,则Shapley值也会增加或保持不变

KernelSHAP

  • KernelSHAP为一个实例x估算每个特征值对预测的贡献

  • 算法流程

    • 采样联盟\(z^\prime_k\in\{0,1\}^M,k\in\{1,...,K\}\)(1=联盟中存在特征,0=不存在特征)

    • \(z^\prime_k\)预测,方法是首先将\(z^\prime_k\)转换为原始特征空间,应用模型\(f:f(h_x(z^\prime_k))\)

    • 使用SHAP核计算每个\(z^\prime_k\)的权重

    • 拟合加权线性模型

    • 返回Shapley值\(\phi_k\),即线性模型的系数

TreeSHAP

  • TressSHAP使用基于树的机器学习模型,计算速度很快,可以计算精确的Shapley值,并且在特征相关时可以正确估计Shapley值

SHAP特征重要性

  • 具有较大的Shapley绝对值的特征很重要

  • 获取全局重要性对每个特征的Shapley绝对值取平均值

  • SHAP特征重要性是置换特征重要性的替代方法

    • 置换特征重要性基于模型性能的下降

    • SHAP基于特征的归因大小

SHAP概要图

  • 概要图将特征重要性与特征效应结合在一起

  • 概要图上的每个点都是一个特征和一个实例的Shapley值

SHAP依赖图

  • x轴是特征值,y轴是相应的Shapley值

  • SHAP依赖图是部分依赖图和累积局部效应图的替代方法

SHAP交互值

  • 交互效应是在考虑了单个特征效应之后的附加的组合特征效应

  • Shapley交互指数定义:\(\phi_{i,j}=\sum_{S\subseteq\setminus\{i,j\}}\frac{|S|!(M-|S|-2)!}{2(M-1)!}\delta_{ij}(S)\)

  • \(i\neq j\)且:\(\delta_{ij}(S)=f_x(S\cup\{i,j\})-f_x(S\cup\{i\}-f_x(S\cup\{j\})+f_x(S))\)

聚类SHAP值

  • 借助Shapley值对数据进行聚类,以找到相似实例的组

优点

  • SHAP在博弈论中具有扎实的理论基础。预测结果在特征值中公平分配,可以得到对比性解释。

  • SHAP链接LIME和Shapley值,有助于同意可解释机器学习的领域

  • SHAP可以快速实现基于树的模型

  • 快速的计算使计算全局模型解释所需的许多Shapley值称为可能

缺点

  • KernelSHAP很慢

  • KernelSHAP忽略特征相关性

    • TreeSHAP通过显式建模条件期望来解决此问题
  • Shapley可能会被错误的解释

  • 需要访问数据才能为新数据计算SHAP值

基于样本的解释

  • 基于样本的解释方法(Example-based Explanation)选择数据集的特定特定实例来解释机器学习模型的行为或解释底层数据分布

  • 基于样本的解释大多与模型无关,因为它们使任何机器学习模型都据可解释性

  • 基于样本的方法通过选择数据集的实例而不是通过创建特征概要来解释模型

  • 只有当我们可以以人类可以理解的方式表示数据实例时,基于样本的解释才有意义

  • 基于样本的解释方法

    • 反事实解释:实例必须如何改变才能显著改变其预测

    • 对抗样本:用来欺骗机器学习模型的反事实

    • 原型:从数据中选择具有代表性的实例

      • 批评:原型无法解释的实例
    • 有影响力的实例:对预测模型的参数或预测本身影响最大的训练数据点

    • k-最近邻:基于样本的机器学习模型

反事实解释

  • 反事实解释(Counterfactual Explanations)通过“如果没有发生X,那么Y就不会发生”描述因果关系

  • 思考反事实需要想象一个与所观察到的事实相矛盾的假设现实

  • 预测的反事实解释描述了将预测更改为预定义输出时特征值的最小变化

  • 反事实是对人类友好的解释,因为它们与当前实例形成对比,并且通常专注于少量的特征更改

  • 反事实实例应尽可能紧密地产生预定义的预测

  • 反事实应该与特征值实例尽可能相似

  • 反事实实例应具有可能的特征值

生成反事实解释

  • \(L(x,x^\prime,y^\prime,\lambda)=\lambda \cdot(\hat{f}(x^\prime)-y^\prime)+d(x,x^\prime)\)

    • 第一项是反事实解释\(x^\prime\)的模型预测与期望结果\(y^\prime\)之间的二次距离

    • 第二项是要解释的实例\(x\)与反事实\(x^\prime\)之间的距离\(d\)

  • 计算流程

    • 选择要解释的实例x,所需的结果\(y^\prime\),公差\(\epsilon\)\(\lambda\)初始值

    • 采样一个随机额实例作为初始反事实

    • 以初始采样的反事实作为出发点,对损失进行优化

    • 增加\(\lambda\),直到\(|\hat{f}(x^\prime)-y^\prime|>\epsilon\) (以当前反事实为出发点优化损失,返回最小化损失的反事实)

    • 重复步骤2-4并返回反事实列表或最小化损失的列表

优点

  • 反事实解释的解释很清楚

  • 反事实方法不需要访问数据或模型

  • 适用于不使用机器学习的系统

  • 易于实现

缺点

  • 对于每个实例,通常会找到多个反事实解释

  • 对于给定公差\(\epsilon\),不能保证找到反事实的实例

  • 不能很好地处理具有不同级别的分类特征

对抗样本

  • 对抗样本(Adversarial Examples)是指当对一个样本的某一个特征值做出一个微小的变化而使得整个模型做出一个错误的预测

方法

  • 将对抗样本与要操控的样本之间的距离最小化,同时将预测转换为期望的结果

  • 基于梯度的优化方法来寻找深度神经网路的对抗样本的生成: \(loss(\hat{f}(x+r),l)+c\cdot|r|\)

    • \(x\)是图像

    • \(r\)对像素的变化以创建的对抗图像

    • \(l\)是期望的结果类别

    • 参数\(c\)用于平衡图像之间的距离和预测之间的距离

  • 用于生成对抗图像的快速梯度方法:

    • \(x^\prime=x+\epsilon\cdot sign(\bigtriangledown_xJ(\theta,x,y))\)

    • \(\bigtriangledown_xJ\)是模型损失函数相对于原始输入像素向量\(x\)的梯度

    • \(y\)\(x\)的真实标签向量

    • \(\theta\)是模型参数向量

  • 单像素攻击(1-pixel attacks)

    • 单像素攻击会寻找一个修改后的样本\(x^\prime\),该样本与原始图像\(x\)接近,单将预测更改为对抗结果

    • \(x_i(g+1)=x_{r1}(g)+F\cdot(x_{r2}(g)+x_{r3}(g))\)

    • \(x_i\)是候选解的元素

    • \(g\)是当前代

    • \(F\)是缩放参数

    • \(r1,r2,r3\)是不同的随机数

  • 对抗补丁(Adversarial Patch)

    • 消除了对抗图像必须接近原始图像的限制

    • 用可以采用任何形状的补丁完全替换图像的一部分

    • $E_{tT}[d(t(x^),t(x))]<$ and \(x\in[0,1]^d\)

    • \(t(x)\)是转换后的图像

    • \(x^\prime\)是对抗样本

    • \(t(x^\prime)\)是其转换后的版本

  • 黑盒攻击(Black Box Attack)

    • 无需内部模型信息且无需访问训练数据即可创建对抗样本

    • 工作原理

      • 从与训练数据来自同一域的一些图像开始

      • 从黑盒获得当前图像集的预测

      • 在当前图像集上训练代理模型

      • 使用启发式方法创建一组新的合成图像,该方法检查当前图像集,在哪个方向操作像素以使模型输出具有更大的方差

      • 基于预定义的迭代次数重复步骤2到4

      • 使用快速梯度方法为代理模型创建对抗样本

      • 用对抗样本攻击原始模型

    • 代理模型的目的是近似黑盒模型的决策边界,但不一定要达到相同的精度

网络安全视角

  • 网络安全三大黄金法则

    • 了解你的对手

      • 不同的应用程序有不同地对手

      • 了解你的对手意味着了解他们的目标

    • 主动

      • 主动意味着积极地测试和识别系统地弱点

      • 机器学习模型地可解释性在网络安全中起着重要作用

    • 保护自己

      • 主动地方法是使用对抗样本对分类器进行迭代重新训练

      • 使用多个分类器

      • 使用梯度掩膜(Gradient Masking)

原型与批评(Prototypes and Criticisms)

  • 一个原型是一个数据实例,它是所有数据地代表

  • 批评地目的是与原型一起提供见解,尤其是对于原型不能很好代表地数据点

理论

  • MMD-critic

    • 选择要查找地原型和批评数量

    • 通过贪婪搜索找到原型。选择原型,以使原型地分布接近数据分布。

    • 通过贪婪搜索找到批评。当原型地分布不同于数据的分布时,选择点作为批评。

  • 最大平均差异(MMD)

    • 确定原型的分布是否接近数据分布

    • \(MMD^2=\frac{1}{m^2}\sum^m_{i,j=1}k(z_i,z_j)-\frac{2}{mn}\sum^{m,n}_{i,j=1}k(z_i,x_j)+\frac{1}{n^2}\sum^n_{i,j=1}k(x_i,x_j)\)

    • \(k\)是一个核函数,用于测量两点的相似性

    • \(m\)是原型\(z\)的数量

    • \(n\)是原始数据集中的数据点\(x\)的数量

  • witness函数

    • 用于计算在特定点上两个密度估计值相差多少

    • \(witness(x)=\frac{1}{n}\sum^n_{i=1}k(x,x_i)-\frac{1}{m}\sum^m_{j=1}k(x,z_j)\)

  • 如何将MMD-critic用于可解释的机器学习

    • 帮助更好地理解数据分布

    • 通过建立可解释的模型

    • 通过使黑盒模型可解释

      • 查找MMD-critic的原型和批评

      • 照常训练机器学习模型

      • 使用机器学习模型预测原型和批评的结果

      • 分析预测:在哪些情况下算法错误?

优点

  • 原型和批评更具代表性

  • 可以自由的选择原型和批评的数量

  • 适用于任意数据和任何类型的机器学习模型

  • 算法易于实现

  • 找到批评独立于原型的选择过程

缺点

  • 如果选择的原型数量太少,无法覆盖数据分布

  • 必须选择原型和批评的数量

  • 面临如何选择核函数及其缩放参数

  • 以所有特征为输入,忽略了某些特征可能与预测目标结果无关的事实

  • 目前没有通用化的框架

有影响力的实例

  • 当训练实例从训练数据中删除后,会大大改变模型的参数或预测,则称为这个实例是有影响力的。

  • 通过识别有影响力的训练实例,我们可以调试机器学习模型,并更好地解释它们的行为和预测

异常值

  • 一个异常值是远离数据集中其他实例的一个实例

  • 异常值可能是有趣的数据点。当异常值影响模型时,它也是有影响力的实例

有影响力的实例

  • 有影响力的实例是数据实例,去删除对训练模型有很大影响

  • 从训练数据中删除特定实例后对模型进行重新训练时,模型参数或预测变化越大,该实例的影响力就越大

删除诊断

  • DFBETA 衡量删除实例对模型参数的影响:

    • \(DFBETA_i=\beta-\beta^{(-i)}\)

    • \(\beta\)是在所有数据实例上训练模型时的权重向量

    • \(\beta^{(-i)}\)是在没有实例i的情况下训练模型时的权重向量

    • 仅适用于具有权重参数的模型

  • Cook距离衡量删除实例对模型预测的影响

    • \(D_i=\frac{\sum^n_{i=1}(\hat{y}_j-\hat{y}_j^{(-i)})^2}{p\cdot MSE}\)

    • 分子是再有何没有第i个实例的情况下对模型的预测之间的平方差,是对数据集求和的结果

    • 分母是特征数p乘以均方差

    • 衡量从数据集删除第i个实例时,线性模型的预测输出会发生多少变化

  • \(Influence^{(-i)}=\frac{1}{n}\sum^n_{j=1}|\hat{y}_j-\hat{y}_j^{(-i)}|\)

影响函数

  • 影响函数(Influence Function)用以估计实例对模型参数和预测的影响力
  • 影响函数是模型参数或预测对训练实例的依赖程度的度量
  • 该方法通过很小的不服对损失中的实例加权
  • 该方法需要获取与模型参数相关的损失梯度,仅适合能够获取梯度的机器学习模型

影响函数背后的数学

  • 通过无限小的步幅(\(\epsilon\))对某个训练实例的损失加权,从而产生新的模型参数

  • \(\hat{\theta}_{\epsilon,z}=argmin_{\theta\in\Theta}\frac{1}{n}\sum^n_{i=1}L(z_i,\theta)+\epsilon L(z,\theta)\)

    • \(\theta\)是模型参数向量,\(\hat{\theta}_{\epsilon,z}\)是用非常小的数字\(\epsilon\)\(z\)进行加权后的参数向量

    • \(L\)是模型训练的损失函数

    • \(z_i\)是训练数据,\(z\)是我们想要增加权重来模拟其移除的训练实例

  • \(I_{up,params}(z)=\frac{d\hat{\theta}_{\epsilon,z}}{d\epsilon}|_{\epsilon=0}=-H_{\hat{\theta}}^{-1}\triangledown_{\theta}L(z,\hat{\theta})\)

    • \(\triangledown_{\theta}L(z,\hat{\theta})\)是对训练实例加权后参数的损失函数,表示稍微改变模型参数\(\theta\)时,损失会有多大变化

    • \(-H_{\hat{\theta}}^{-1}\)是逆Hessian矩阵,是梯度的变化率

  • 影响函数的应用

    • 了解模型的行为

    • 处理域不匹配/调试模型错误

      • 域不匹配意味着训练数据和测试数据的分布不同,可能导致模型在测试数据上的表现不佳
    • 修复训练数据

识别有影响力的实例的优点

  • 对有影响力的实例的研究强调了训练数据在学习过程中的作用,使影响函数和删除诊断成为机器学习模型的最佳调试工具之一

  • 删除诊断是模型无关的

  • 可以用来比较不同的机器学习模型并更好地理解它们的不同行为

  • 通过导数的影响函数也可以用来创建对抗样本

  • 可以解决 如果或增加实例z会发生什么

识别有影响力的实例的缺点

  • 删除诊断的计算非常昂贵

  • 影响函数是删除诊断的一个很好的替代方法,但仅适用于参数可微的模型

  • 影响函数仅仅是近似的

  • 判断有影响力和没有影响力的影响力度量没有明确的截止点

  • 影响力度量仅考虑单个实例的删除

水晶球

  • 本章节预测可解释机器学习的未来

  • 预测的假设

    • 数字化:任何数据都将被数字化

    • 自动化:当一个任务可以被自动化,并且自动化的成本低于一段时间内执行该任务的成本时,该任务将会被自动化

    • 错误的指定:无名不可能完美地指定一个有所限制的目标

机器学习的未来

  • 机器学习将缓慢而稳定的增长

  • 机器学习将推动很多事情

    • 只要可能,任务将会被表述为预测问题并通过机器学习解决
  • 可解释工具促进了机器学习的采用

    • 基于机器学习模型的目标永远不可能被完美指定的前提下,可解释的机器学习对于弥合错误目标和实际目标之间的差距是必要的

    • 在很多领域,可解释机器学习将成为采用机器学习的催化剂

可解释性的未来

重点将放在模型无关的可解释性工具上

  • 当与底层的机器学习模型分离时,时可解释性自动化变得容易的多

  • 本质上可解释方法也将占有一席之地

机器学习将是自动化的,并具有可解释性

  • 机器学习的构建全自动化

  • 自动计算特征重要性,绘制部分依赖关系,训练代理模型,并最终交由人类解释

我们不分析数据,我们分析模型

  • 不关心数据,二十关心数据中包含的知识

  • 可解释机器学习是从数据中提取知识的好方法

数据科学家将使自己自动化

  • 许多研究数据的工作也将自动化

机器人和程序会自我解释

  • 我们需要对大量使用机器学习的机器和程序有更直观的界面

可解释性可以促进机器智能研究

  • 通过对机器和程序的自我解释进行更多研究,可以改善对智能的理解,并更好地创造智能机器
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2017-2022 Ink East
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信