NTU ML2023Spring Part2.11 可解释的 ML 模型

有时在某些可能带来严重后果的任务(比如医疗,法律、自动驾驶)上,我们不止希望机器学习模型给出一个答案,更希望它给出相应的理由。

那能不能直接用更容易解释的模型呢?可以,但问题是效果不好。

interpretable 和 explainable 这两个词经常被混用,前者指它本来不是黑箱,后者指它是黑箱但可以解释。

decision tree 就是这样一种模型:它比线性模型更强大,比 deep learning 更容易解释。所以 decision tree is all you need,本文结束。(?)

然而并不是这样。当规模变大的时候,decision tree 也会逐渐难以解释。

explainable ML 的目标是什么?不像之前的作业都有一个量化的分数和 leaderboard,这一节基本都是比较感性的。

(这一段比较偏 LHY 的主观感受)我们能彻底知道 ML model 每一步为什么这样做吗?类比人类,我们现在还没有完全知道人脑的运行原理,但这不影响我们相信另一个人做出的决断。我们为什么会相信他人?一部分原因是他人可以给出解释。因此,只要机器能对每一步行为给出相应的解释,就可以认为它是 explainable 的。

explainable ML 又分为 local explanation 和 global explanation.

  • local explanation

    给机器一张图片,它认为这是猫,并且给出了原因。

  • global explanation

    不给机器图片,问它怎么判断一只猫。

Local explanation

假设模型的输入是 \(x\),它由多个 components 组成(例如图像的 pixel,文本的 token 等)。如何知道一个 component 的重要性?只要看改动某个 component 后模型输出的变化情况就行了。

还有一种更进阶的方法,就是算 loss。把输入的某一个 component 做一个小的变化(\(\Delta x\)),看 loss 的变化程度(其实就是偏导)。可以画出 saliency map,代表每个点的重要程度。

LHY 还当场举了一个例子:他训练了一个 pokemon 和 digimon 的分类器,然后在训练和测试集上都达到了很高的准确率。本来这就结束了,但是当他尝试做 explainable 的时候才发现机器是通过看两种图片的背景实现的,一种是透明背景(机器看到的是黑色),另一种是白色背景。所以其实根本就没达成想要的目标,机器只是学会了取巧的方法。

smoothgrad:在图片上加噪音之后画出平均情况下的 saliency map.

然而光看 gradient 也有局限性,因此有 integrated gradient (IG)

global explanation

如果对于一张图片,卷积层的某些 filter 有比较大的输出,那可能说明这张图片里有它负责检测的特征。基于此,我们可以人工创造出一张图片,让它输出达到最大,这张图片上的内容就可以告诉我们这个 filter 负责什么了。

对于总的输出结果也是一样的道理。以手写数字识别为例,假设我们想知道机器眼里的数字 1 是什么样的,那就可以人工找一张图片来最大化它输出 1 的概率。但实际做出来的结果并不如此,你看到的全是噪音。(其实和 adversarial attack 比较像?)

为了解决这种问题,可以考虑不手动调输入,而是训练一个 generator 产生 classifier 的输入,然后手动调 generator 的输入,得到 generator 的输出就是 classifier 心里想的大致图像。

这种调整方式像是强行找一个人看起来比较好的结果,事实上也确实如此,explainable AI 现在都在干这种事。

posted @ 2025-05-01 12:43  383494  阅读(14)  评论(0)    收藏  举报