“Why Should I Trust You?” Explaining the Predictions of Any Classifier

127 阅读5分钟

机器学习目前已经得到了广泛运用,但就现在的研究而言,机器学习训练所的模型绝大多数时间都是黑盒模型。模型的解释对于模型的部署运用有着极其重要的影响,同时对于模型的判断也有着极其重要的影响,哪个模型好?哪个模型能用?如果我们对于模型本身没有什么理解可言,那么我们很难向用户证明我们的模型是正确的,用户更加难以运用该模型完成自己的工作,毕竟一个医生无法向自己的患者解释病因,那将很难取得患者的信任。 基于此,作者提出了两种算法——号称可以解释一切机器学习模型: (1)LIME,一种算法,可以通过一个可解释的模型局部逼近,以忠实的方式解释任何分类器或回归器的预测。 (2)、SP-LIME,一种通过子模块优化—Submodular选择一组具有解释的代表性实例来解决“信任模型”问题的方法。 与模型预测之间关系的定性理解。我们认为,如果解释是忠实和可理解的,那么解释预测是让人类信任和有效使用机器学习的一个重要方面。 每个机器学习的应用程序还需要对于模型整体进行一种度量,我们在收集好的数据集上进行验证,这种数据集常常与现实存在的数据有很大的差异,同时,人们对于自己模型的准确度常常有很大的高估。作者采取使用几个代表性的个体预测来对模型整体进行评估(不过我觉得这样也是人工筛选,也存在作者所说的问题)。 模型评估存在多种可能导致其与事实不符: 1.数据泄露:数据集本身存在不合理性,个别属性与结果高度相关,导致模型看起来很不错,但是在实际应用时效果很差。(且这种属性和预测结果之间并无直接的因果关系,乃至于可能倒果为因,比如生病的才会吃药,但是现在根据是否吃药来判断患者是否生病)。 2.数据集偏移:训练数据和测试数据分布不匀(b站周志华的机器学习课提到过这个问题,两者应当不重叠且处于同一分布,为了达成这个目标有许多方法,但是都没有办法完全解决这个问题)。 上述两个问题的存在足以证明我们训练出来的模型可能存在很多问题,且这些问题不易被察觉,而提高解释性,不但可以帮助我们解决这些问题,甚至可能将不太好的模型转化成不错的模型(比如发现模型的解释是吃药导致生病,那么我们就可以对这个属性进行一定的处理)。 QQ截图20230301192929.png 上图给我们展示了两个模型的判断结果,我们发现,在测试集上表现很好的模型实际应用可能出现很大的问题。更何况,过于精确的模型泛化能力较弱,很多评价指标(比如准确率)又可能和用户关心的指标相去甚远,更何况还有可能存在"标题党"的情况,如果我们能找到一种解释模型的方法,那么我们就能比较各种模型。 对模型进行解释首先必须要求模型本身是可解释的,即输入输出之间必须有一定的关系,其次这种解释必须是易于理解的,不然那将毫无意义,对于模型全局的解释可能极为复杂,但是对于局部解释却可能十分简单,这要求局部保真性:对于模型局部的解释必须要是可信的。目前,对于模型的全局解释仍是一项十分困难的挑战。同时,我们提出的解释方案应该是与模型无关的,这样才能有助于用户应用。 1.局部可解释且与模型无关的(LIME),LIME 的总体目标是在局部忠实于分类器的可解释表示上识别可解释模型。 形式上,我们将解释定义为模型 g ∈ G,其中 G 是一类潜在的可解释模型,例如线性模型、决策树或下降规则列表,即模型 g ∈ G 可以很容易地呈现给具有视觉或文本伪影的用户。 g 的域是 {0,1},即 g 作用于可解释组件的缺失/存在。由于并非每个 g ∈ G 都可能足够简单以至于可以解释,因此我们让 QQ截图20230302103454.png 是解释g ∈ G 的复杂性(相对于可解释性)的度量。例如,对于决策树,QQ截图20230302103454.png 可能是树的深度,而对于线性模型,QQ截图20230302103454.png 可能是数量非零权重。让正在解释的模型表示为QQ截图20230302103042.png在分类中,f(x) 是 x 属于某个类别的概率(或二元指标)。我们进一步使用QQ截图20230302103337.png 作为实例 z 到 x 之间的接近度度量,以定义 x 周围的局部性。最后,让 QQ截图20230302103629.png 衡量 g 在 QQ截图20230302103337.png 定义的局部性中逼近 f 的程度。为了确保可解释性和局部保真度,我们必须最小化 QQ截图20230302103629.png,同时让QQ截图20230302103454.png 低到足以被人类解释。 LIME 产生的解释是通过以下方式获得的:QQ截图20230302104025.png

该公式可以与不同的解释族 G、保真度函数 L 和复杂度度量 Ω 一起使用。在这里,作者专注于稀疏线性模型作为解释,并使用扰动执行搜索。 我们必须在不对f做任何假设的情况下要最小化局部损失:取例子x,在其周围进行非零元素采样,然后对其进行扰动得到z,以对于z的解释来进行解释,z′是z的可解释形式(interpretable version)(可以理解为只有部分特征的实例)。对于文本来说,interpretable version就是选出K维的bag of words(k可以由用户设置);

对于图像来说,interpretable version就是一组K维super-pixel组成的向量,K是人工设置的一个常数。

QQ截图20230302105012.png