你是一家连锁餐厅的老板,生意火爆,但有个烦恼:新来的AI大厨做菜一绝,却没人说得清他为什么调整菜谱——是换了牛肉?增加了辣椒?还是缩短炖煮时间?你想复刻大厨的手艺,他却是个“黑箱”。DeepLIFT(Deep Learning Important Features)就像一个聪明的餐饮分析师:他不去问大厨“这道菜怎么做”(那太复杂),而是把这周的菜和上周的菜放在一起对比,然后一项项计算:换食材、调火候、改摆盘……每个改变为味道提升贡献了多少?这正是“增量归因”的思想。 DeepLIFT把“最终发生了什么”拆解为“与参考状态相比改变了什么”,再沿着网络把功劳或责任一分不差地送回每个输入特征。这样,我们不仅能信任AI大厨,还能复盘他的每一次精彩操作或翻车现场。这套方法在金融风控、医疗诊断等强监管场景中尤其重要——它让模型从“说不清的黑箱”变成“可审计的账本”。

岗位关联

学会DeepLIFT,你就掌握了给深度学习模型出具“决策审计报告”的能力,让模型在金融、医疗等高合规场景中真正落地,成为团队里不可替代的可解释AI专家。

目录
  1. 可视化演示
  2. 可解释AI背景:黑箱时代的信任危机
  3. DeepLIFT核心原理:增量归因的“经营账本”
  4. 反向传播规则:功劳的接力棒
  5. 方法对比:DeepLIFT的“同台竞技”
  6. 实现与优化:把账本记得更稳
  7. 应用场景:账本走进各行各业
  8. 实践指南:从账房先生到审计体系
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

动态展示DeepLIFT深度学习特征归因方法:前向传播激活、参考基线对比、反向贡献传播Delta规则及输入特征重要性归因分配,含正负贡献量化。

本节配有交互动效(进入视口后自动加载,约 3KB)。

DeepLIFT 深度特征归因 前向激活 参考基线 反向贡献 正归因 C(x-x0) Delta规则反向分配

可解释AI背景:黑箱时代的信任危机

你是连锁餐厅老板,AI大厨手艺惊艳,但你最怕顾客问:“你这道招牌菜凭什么定价这么高?”大厨耸耸肩:“我尝着好就定了。”这种“结果正确但无法说明理由”的困境,正是企业采用深度学习时的真实焦虑。监管部门要解释、客户要说法、工程师要排查事故,可模型就像一个只会说“我算出来的”的黑箱,让人又爱又怕。

可解释AI(XAI)就是给这个黑箱装上一扇窗。在众多XAI技术中,特征归因是最直接的一种思路:回答“模型的这个决定,哪些输入特征起了正面作用、哪些起了负面作用”。“你这一单被拒批,主要是负债率太高,其次是收入波动大。”这种解释对业务人员来说才是可操作的。

早期的解释方法走的是“梯度”路线——把输出对输入的导数当作重要性指标。它的思路是:如果微小地改变某个输入,输出变化剧烈,那这个输入肯定重要。可问题在于,深度网络里ReLU等激活函数存在大量“饱和区”,在那些区域梯度接近于零,明明很重要的特征也会被判定为“无关紧要”。这就像你用速度表判断车子走了多远,可车堵在坡道上一动不动,速度表归零,你总不能说车子没动吧?

所以我们需要一种“不看瞬时速度、只看位移差”的归因方法——这正是DeepLIFT登场的理由。它不追求“敏感性”,而追求“增量贡献”:你相对上周走了一公里,我们就老老实实按这一公里分账。

DeepLIFT核心原理:增量归因的“经营账本”

现在你要开一家“AI大厨餐厅”的分店,账房先生拿出一套记账法:营业额从上周的100万涨到本周的130万,我们不去纠结100万是怎么来的——那是历史包袱——我们只对这30万增量分账:换牛肉贡献了8万,增加辣椒贡献了5万,缩短炖煮时间贡献了9万……每笔账都有归属。

DeepLIFT的核心思想正是如此。它先为每个特征选一个参考值(reference),相当于“上周的状态”。然后计算每个输入相对参考的差异,即 $\Delta x_i = x_i - x_i^0$,再把这些差异以某种规则“翻译”成对输出差异 $\Delta t$ 的贡献。它给出的贡献分数 $C_{\Delta x_i \to \Delta t}$ 不是“这个特征本身值多少”,而是“这个特征的变化,带来了多少输出变化”。

DeepLIFT最重要的性质是求和性质:所有输入特征的贡献之和,恰好等于输出实际值与参考值之差。账要平,一分不多一分不少。

有了求和性质做约束,DeepLIFT在每一层都要精打细算。先看最简单的情况——线性层:如果输出是输入的加权和,那么贡献分配非常直观。

账房先生的账本第一页写得很清楚:先定好基准(参考值),再定义每笔功劳(贡献分数),最后保证账目平衡(求和性质)。但现实中的餐厅不止一盘账——厨房里还有大量“非线性工序”等着处理。

∑i=1nCΔxi→Δt=Δt=t−t0\displaystyle \sum_{i=1}^{n} C_{\Delta x_i \to \Delta t} = \Delta t = t - t^0
公式通俗说明:线性层里,每个输入特征的贡献等于它的权重乘以它的变化量。权重是“放大倍数”,变化量是“投入量”,两者相乘就是“产出增量”。
  1. 剥离权重线性层输出是输入的加权和,权重 $w_i$ 衡量第i个输入的“放大倍数”,权重越大,同样变化带来的影响越大。
    wiw_i
  2. 计算输入变化$\Delta x_i$ 是第i个特征相对参考的增量,增量越大,可归因的基础越大,账房先生按实际变化量分账。
    Δxi\Delta x_i
  3. 相乘得贡献把权重与变化量相乘,就把“投入变化”换算成“贡献金额”,在线性结构下这是精确的,不多不少。
    CΔxi→Δt=wi×ΔxiC_{\Delta x_i \to \Delta t} = w_i \times \Delta x_i

反向传播规则:功劳的接力棒

账房先生记好了最终营业额的功劳账,但这些功劳不能直接记在“总收入”头上——总收入是很多环节共同作用的结果。他需要把功劳从最终结果出发,像接力棒一样倒着传回每一个起始环节:总营业额 → 各菜品销售额 → 各食材采购量。这一过程就是DeepLIFT的反向传播。

对于线性层,接力棒传递很简单:贡献 = 权重 × 变化量。但遇到ReLU这类非线性激活函数,接力棒要经过一道“关卡”:输出要么保留输入,要么干脆归零。DeepLIFT用一个“平均乘子”来处理非线性,把输出差异与输入差异之比当作传递系数:

当参考值取0时,ReLU的规则会变得更加简洁好记:输入比参考大,贡献就保留这份增量;输入比参考小,输出本来就是0,贡献也记0。这被称为ReLU的“揭示规则”——只有被“揭示”出来的正增量才算功劳。

接力棒就这样一站一站倒传:输出层把总功劳分给隐藏层,隐藏层经过ReLU关卡再分给输入层。每一站都遵守“分账不重不漏”的原则,最终每个原始特征都拿到属于自己的那份功劳。

CΔx→Δy=ΔyΔx×Δx\displaystyle C_{\Delta x \to \Delta y} = \frac{\Delta y}{\Delta x} \times \Delta x
公式通俗说明:参考值为0时,ReLU只承认“正向变化”的功劳:输入增大了,贡献等于增量;输入减小了,贡献记0。好比一道菜只有“加了辣椒”会被记为贡献,“没加辣椒”不会产生负贡献。
  1. 正增量保留$\max(\Delta x, 0)$ 表示只有输入相对参考增大时,才保留这份增量作为贡献,符合ReLU只对正输入响应的特性。
    max⁡(Δx,0)\max(\Delta x, 0)
  2. 负增量归零当输入比参考还小时,ReLU输出恒为0,所以贡献记为0,这是ReLU“截断”特性在归因中的体现。
    if Δx≤0, C=0\text{if } \Delta x \le 0, \ C = 0
  3. 规则结论参考为0时,ReLU的贡献规则退化为一个阈值截断函数,这也是DeepLIFT能穿透饱和区的原因——它不看梯度,只看增量。
    CΔx→Δy=max⁡(Δx,0)C_{\Delta x \to \Delta y} = \max(\Delta x, 0)

方法对比:DeepLIFT的“同台竞技”

账房先生不是唯一会算账的人。市面上的“分析师”各有一套招数,DeepLIFT要和他们同台比一比。

首先是SHAP——它像“请四大会计师事务所做全面审计”,基于博弈论中的Shapley值,理论上最公平,但要遍历大量特征组合,计算成本极高。DeepLIFT在特定设定下可以高效地近似SHAP的结果,相当于用“内部结构化账本”快速逼近“全面审计结论”。两者都尊重“贡献之和等于总差异”的账目平衡原则,但DeepLIFT不需要昂贵的采样过程。

然后是LIME——它像“只看局部区域的顾客满意度问卷”。LIME在预测点附近扰动输入,拟合一个局部线性模型,再读线性模型的系数。它灵活、模型无关,但有两个弱点:局部线性近似可能失真,而且它不保证全局账目平衡。DeepLIFT则直接利用网络结构反传,不需要外部扰动,也不需要局部近似。

最后是梯度法——它像“看仪表盘上的瞬时速度”。前面说过,梯度在饱和区失灵,DeepLIFT用“增量”替代“导数”,天然绕开了这个坑。当然,DeepLIFT也有自己的前提:必须深入模型内部、必须选定参考值,而LIME对任何模型都通用。选谁,取决于你是想快速看个大概,还是要一份账目分明的审计报告。

实现与优化:把账本记得更稳

账房先生想提高记账质量,首先要回答一个关键问题:跟谁比? 参考值的选择,直接决定每一笔功劳怎么算。这就是DeepLIFT实现中最需要讲究的“参照系”。

常见的参考值选择有三种。第一是全零向量,适合像素类输入——黑色天然是“无信息”的基线;第二是训练集特征均值,适合连续数值特征,代表“普通状态”;第三是领域中的语义中性值,比如文本分类里用特殊掩码词或零向量作为“没有信息”的对照。选错参考,就像非拿“去年亏损的餐厅”当基准,分出来的功劳自然失真。

实现中还要注意数值稳定性。DeepLIFT里常用“乘子”来统一表达各层的传递关系:

计算效率方面,DeepLIFT只需要一次前向传播和一次反向传播,就能得到全部特征的贡献分数。相比SHAP需要指数级组合采样,DeepLIFT在工程上要轻量得多,这也是它能在工业界落地的重要原因。

mΔx→Δy=CΔx→ΔyΔx\displaystyle m_{\Delta x \to \Delta y} = \frac{C_{\Delta x \to \Delta y}}{\Delta x}
公式通俗说明:乘子表示“单位输入差异能带来多少贡献”。它是DeepLIFT反向传播的基本单元,类似梯度,但面向的是增量而非瞬时变化。
  1. 定义乘子把贡献分数除以输入差异,得到“单位差异的贡献量”,这个量可以在层与层之间相乘传递。
    CΔx→ΔyΔx\frac{C_{\Delta x \to \Delta y}}{\Delta x}
  2. 符号含义乘子 $m_{\Delta x \to \Delta y}$ 是DeepLIFT反向传播的基本单元,形式上像梯度,但数值基于区间增量而非瞬时导数。
    mΔx→Δym_{\Delta x \to \Delta y}
  3. 除零防护当 $\Delta x$ 等于0时,分母为0,此时贡献本身为0,实现中要专门保护,避免出现0/0的未定义状态。
    Δx≠0\Delta x \neq 0

应用场景:账本走进各行各业

账房先生的记账法不只适用于一家餐厅。任何“输入 → 黑箱 → 输出”的场景,DeepLIFT都能派上用场。

在图像场景里,每个像素就像一道菜里的每种食材。以医学影像为例,AI模型判断“肺部CT有结节”,DeepLIFT会生成一张像素级贡献热力图:哪些区域的纹理变化让模型给了高分,哪些区域是干扰项。医生不再看到冷冰冰的“阳性”二字,而是看到“图的右上角那片阴影贡献了85%的判断依据”,复核效率大幅提升。

在文本场景里,每个词元(token)是一个“小员工”。情感分析模型对一条差评输出“负面”倾向,DeepLIFT可以把评分逐词拆解:“卫生”这个词贡献了-0.4,“等位久”贡献了-0.3,“服务态度好”反而贡献了+0.2。这种词级归因不仅让用户信服,还能帮助运营团队精准定位产品短板。

在表格数据里,每个特征列是一本分册。信贷风控模型拒绝了一笔贷款,DeepLIFT的归因报告显示:“负债率”负贡献最大,“收入稳定性”次之,“职业类型”几乎不影响。审核员可以据此向客户解释,也能反向检验模型是否学到了符合业务逻辑的规律。这三类场景共享同一套账本逻辑:不说“模型这么判断的”,而说“因为什么,所以这样判断”。

实践指南:从账房先生到审计体系

有了账本理论,怎么把DeepLIFT真正接入你的工作流?实践中有三个关键步骤。

第一步是工具选型。DeepLIFT有官方参考实现,也有社区实现;更常用的是SHAP库内置的DeepLIFT后端——它把DeepLIFT封装成了与SHAP统一接口的解释器,对TensorFlow、PyTorch都有支持。选工具时重点看三点:是否支持你的模型框架、是否支持你的参考值设定方式、是否提供梯度检查接口。

第二步是归因验证。拿到贡献分数后不要直接写报告,先做三件事:验证求和性质是否成立(贡献和与输出差异的误差应在浮点精度内);做敏感性测试(轻微改变参考值,看归因是否发生不合理的跳变);请领域专家抽查几个case,确认归因方向符合业务常识。账不平、方向反,说明实现或参考有问题,得回头排查。

第三步是工程落地。把DeepLIFT归因固化到模型监控pipeline中,每次模型更新、每个batch的预测,都自动生成一份归因报表。当某特征的平均贡献发生显著漂移时,触发告警——这往往是数据分布变化或特征质量下降的早期信号。把“账房先生”升级成“常态化审计体系”,黑箱AI才能真正在强监管场景站稳脚跟。

AI 应用场景

金融信贷审批归因

阶段:模型解释与合规审计

解决的问题:银行信贷模型拒绝客户时,监管要求必须解释“为什么拒绝”。传统做法依靠人工规则,既慢又难以覆盖复杂模型。DeepLIFT为每个特征给出贡献值,如“负债率高贡献-0.5”“收入波动大贡献-0.3”,审核员和客户都能一目了然。

具体案例:某消费金融公司对贷款申请模型做DeepLIFT归因,发现“申请频率过高”这项特征被系统性给出高负贡献。数据分析师顺藤摸瓜,定位到该特征存在数据采集bug,修复后坏账率下降12%,模型决策质量显著提升。

医疗影像辅助诊断

阶段:临床决策支持

解决的问题:影像AI提示“疑似病灶”但医生不敢直接采信,需要知道模型“看到了什么”。DeepLIFT生成像素级贡献热力图,标注哪些区域的纹理变化支撑了阳性判断,帮助医生快速复核。

具体案例:在肺结节CT筛查项目中,DeepLIFT高亮区域与放射科主任标注的结节区域重合度达91%,还额外发现了一处被人工忽略的微小钙化点。医生将热力图纳入二次阅片流程,筛查漏检率下降18%。

Python 演示

python43 行
import numpy as np def relu(x):    return np.maximum(x, 0.0)  class SimpleNet:    """两层感知机:2维输入 -> 2维隐藏(ReLU) -> 1维线性输出"""     def __init__(self):        self.W1 = np.array([[1.2, -0.5],                            [0.8, 1.1]])        self.b1 = np.zeros(2)        self.W2 = np.array([[1.0], [-0.6]])        self.b2 = 0.0     def forward(self, x):        hidden = relu(x @ self.W1 + self.b1)        return (hidden @ self.W2 + self.b2)[0]     def deep_lift(self, x, x_ref):        delta_x = x - x_ref        z = x @ self.W1 + self.b1        hidden = relu(z)        hidden_ref = relu(x_ref @ self.W1 + self.b1)        relu_multiplier = (z > 0).astype(float)        m_x_to_z = self.W1.T        m_h_to_y = self.W2.ravel()        m_total = (m_x_to_z * relu_multiplier * m_h_to_y).sum(axis=1)        return m_total * delta_x  if __name__ == "__main__":    net = SimpleNet()    x = np.array([2.0, 1.0])    x_ref = np.array([0.0, 0.0])    contribs = net.deep_lift(x, x_ref)    total = contribs.sum()    delta_y = net.forward(x) - net.forward(x_ref)    print("各特征贡献:", contribs)    print("贡献总和:", total)    print("输出差值:", delta_y)    print("求和性质验证:", np.isclose(total, delta_y))
目的:用20行核心逻辑实现一个迷你DeepLIFT,计算每个输入特征对输出差异的贡献,并验证求和性质。
  1. m_x_to_z = self.W1.T计算输入到隐藏层预激活的乘子矩阵,形状为(输入维,隐藏维)。
  2. relu_multiplier = (z > 0).astype(float)参考值为0时,ReLU的乘子简化为“是否被激活”的0/1开关。
  3. m_total = (m_x_to_z * relu_multiplier * m_h_to_y).sum(axis=1)把三层乘子沿路径相乘再按隐藏单元求和,得到每个输入到输出的总乘子。
  4. return m_total * delta_x总乘子乘以输入差异,就是每个特征的贡献分数。
  5. np.isclose(total, delta_y)程序跑完后自动验证:贡献总和是否等于实际输出与参考输出之差,账目是否平衡。

常见误区

误区我刚学完梯度,觉得输出对输入的导数大就代表这个特征重要。DeepLIFT是不是就是把梯度换了个名字?那我直接用梯度类方法不就行了?

正解梯度描述的是“输入微小扰动时输出的瞬时变化率”,在ReLU饱和区梯度会消失,导致重要特征被误判为无关。DeepLIFT计算的是“相对参考的增量贡献”,即使梯度为0,只要相对参考有变化,贡献也能算出来。好比速度表失灵(梯度)不代表车没走,看里程差(DeepLIFT)才知道实际走了多远。

为何常见:大多数人接触的第一个可解释方法就是梯度类,容易把“敏感性”和“贡献”混为一谈。

误区DeepLIFT说满足求和性质,那我把所有特征的贡献加起来,应该等于模型对这个样本的最终预测值吧?毕竟输出就是这些特征共同决定的。

正解求和性质说的是“贡献之和 = 输出差异(实际值 - 参考值)”,不是输出本身。DeepLIFT只解释“比参考多出来的部分”,不解释参考值本身对应的输出。好比账房只算“比上周多赚的部分”,上周赚多少是另一本账。

为何常见:宣传材料常省略“差异”二字,加上求和性质听起来很像“等于输出”,初学极易误解。

误区参考值不就是个常数吗,选0、选均值、选随机值应该差别不大,反正最后出来的都是每个特征的贡献分数。

正解参考值决定“跟谁比”,直接影响每个特征贡献的方向和大小。对图像选全零(黑色基线)合理,对连续特征选训练集均值更稳,对文本则常用中性掩码。选错参考,归因结果会严重失真。好比“跟去年比”和“跟目标比”,各业务线的功劳分配完全不同。

为何常见:教程示例几乎都用全零参考,让人误以为参考值是固定约定,忽略了它在归因中的决定性作用。

误区DeepLIFT告诉我哪个特征贡献最大,这不就是找到了模型预测的因果关系吗?我可以直接拿它做业务决策了。

正解DeepLIFT是“与参考对比的结构性归因”,解释的是模型内部的贡献分配机制,不直接等同于真实世界的因果联系。它适合“审计模型依赖了什么”和“发现异常模式”,但不能替代A/B测试或随机对照实验来证明因果。归因结果只能说“模型认为这个因素重要”,不能说“这个因素真的导致了这个结果”。

为何常见:XAI工具常打“因果解释”旗号,营销话术放大了技术的能力边界,用户容易把“解释模型”误认为“解释世界”。

面试题

Q1. DeepLIFT中,所有输入特征贡献分数之和应等于什么?

单选题 · easy

  • A.等于模型输出的实际数值
  • B.等于输出与参考值之差← 正确答案
  • C.等于参考数值本身
  • D.等于损失函数梯度值

答案:B。求和性质规定贡献之和等于输出差异(实际输出减参考输出)。选项A错在忘记“差异”,C错在方向反了,D把梯度概念混入。这就像账房先生只能分“比上周多赚的钱”,而不是分总营业额。

Q2. 在DeepLIFT中,参考值(reference)的主要作用是什么?

单选题 · easy

  • A.提供贡献比较的基准值← 正确答案
  • B.作为网络训练的标签值
  • C.控制反向传播的速度
  • D.直接替代激活函数值

答案:A。参考值定义“跟谁比”,是增量归因的起点。它不参与训练、不控制传播速度、也不替代激活函数。选B是混淆了训练标签,选C/D更是张冠李戴。好比“上周菜谱”是判断“本周改进了多少”的基准。

Q3. 梯度类归因方法在哪种场景下容易失效,而DeepLIFT仍然有效?

单选题 · mid

  • A.输入特征高度相关时
  • B.网络层数超过五十层
  • C.ReLU饱和区梯度近零← 正确答案
  • D.训练数据存在噪声时

答案:C。梯度下降的核心问题是饱和区导数接近0,导致重要特征被误判。DeepLIFT用“相对参考的增量”替代瞬时导数,所以能穿透饱和区。特征相关、层数深浅、数据噪声都不是梯度法失效的关键原因。

Q4. 当参考值取0时,DeepLIFT对ReLU单元的贡献规则是什么?(设Δx为输入差异)

单选题 · mid

  • A.等于Δx与0的较大值← 正确答案
  • B.等于Δx的绝对值
  • C.等于梯度乘以输出
  • D.等于Δx的平方值

答案:A。参考为0时,ReLU只对正向增量产生贡献,负向增量输出恒为0,所以贡献为0,即 max(Δx, 0)。B把负增量也变成正贡献,C混入梯度法,D无意义。这就像“没加辣椒”不会在功劳簿上记为负贡献。

Q5. 以下哪些是DeepLIFT与传统梯度法相比的优点?

多选题 · mid

  • A.满足贡献求和性质← 正确答案
  • B.无需对参考值做任何假设
  • C.能处理梯度饱和区← 正确答案
  • D.不需要任何反向传播

答案:AC。求和性质和穿透饱和区是DeepLIFT的两大核心优势。B错误:参考值假设是DeepLIFT的关键设计选择,影响结果。D错误:DeepLIFT恰恰要依赖反向传播,只是传播的是“乘子”而非梯度。

Q6. DeepLIFT中“乘子”(multiplier)的定义是?

单选题 · hard

  • A.输出差异与输入差异的比值← 正确答案
  • B.贡献分数与输出差异的比值
  • C.输入差异与参考值的比值
  • D.权重矩阵与梯度的乘积

答案:A。乘子衡量“输入差异一个单位能带来多少贡献”,即 C/Δx = Δy/Δx。B把分母换成输出差异,C把参考值拉进来混淆概念,D是梯度法的语言。乘子是DeepLIFT反向传播的基本单元,类似“每份投入的平均产出率”。

Q7. 下列哪些是合理的DeepLIFT参考值选择策略?

多选题 · mid

  • A.使用全零向量为参考← 正确答案
  • B.使用特征均值作参考← 正确答案
  • C.使用中性语义基线← 正确答案
  • D.使用随机高斯噪声

答案:ABC。全零适合像素输入,均值适合连续特征,中性语义基线适合NLP任务。随机高斯噪声没有业务含义,会让归因结果失去解释基础。参考值本质上是“无信息状态”的定义,选参考就是选“跟什么状态比”。

Q8. DeepLIFT与SHAP的关系是?

单选题 · easy

  • A.两者完全等价关系
  • B.特定设置下近似SHAP← 正确答案
  • C.SHAP是DeepLIFT特例
  • D.两者没有任何关联

答案:B。DeepLIFT在特定参考设定和线性化条件下可以近似SHAP值,且计算效率更高。但两者出发点不同:SHAP基于博弈论的Shapley值,DeepLIFT基于网络结构反传。A太绝对,C说反了,D不成立。

Q9. 与LIME相比,DeepLIFT的哪些特点描述正确?

多选题 · hard

  • A.利用网络内部结构归因← 正确答案
  • B.需要大量扰动采样计算
  • C.无需局部线性近似即可← 正确答案
  • D.不依赖参考值的选择

答案:AC。DeepLIFT直接利用网络结构反传,不需要LIME那样在样本周围做局部扰动和线性拟合。B是LIME的做法,D错误——DeepLIFT高度依赖参考值的选择,参考不同结果差异很大。

Q10. 在DeepLIFT实现中,当某个输入特征与参考值相同(Δx=0)时,该特征的贡献分数应为?

单选题 · extreme

  • A.等于该点的梯度值
  • B.等于零即无贡献← 正确答案
  • C.等于当前的参考值
  • D.等于模型输出值

答案:B。Δx=0表示该特征没有发生任何变化,既然没有变化,就不存在“增量功劳”,贡献必须为0。这也是DeepLIFT乘子定义中需要除零保护的原因:贡献为0,即使乘子未定义也无妨。好比“这周没换食材,这道菜的变化里自然没有它的功劳”。