可解释性是不可缺少的,因为我们需要在借助机器学习模型做出决策时了解机器学习模型做出决策的原因。
模型原生的可解释性和模型本身的拟合能力之间存在着一定的矛盾,线性模型可解释性好,但拟合能力差,而神经网络则恰恰相反。兼具强可解释性和强拟合能力的决策树模型,在实际应用当中也会陷入可解释性变差的困境。我们所探讨的可解释性,是试图给黑箱的模型一个原因,来帮助决策。
模型的可解释性分为Local和Global的,一个探讨做出具体决策的原因,另一个探讨做出某一类决策的道理。
可以解决数学问题的神马汉斯,可以在人群围观的情况下解决数学问题,但没有人围观时就无法解决数学问题。事实上,神马汉斯并没有解决数学问题的能力,只是能观察到周围人群微妙的情感变化。
为了避免机器学习模型也是像神马汉斯一样的伪智能模型,我们需要机器学习的可解释性。
而在真实的应用场景中,也非常需要可解释性。如
更进一步地,如果机器学习模型有可解释性,我们还可以用可解释性修正机器学习的结果。当然,目前离这一目标还有着很远的距离。
但,我们没有必要因为神经网络模型复杂,就扬弃它。
可以类比这个路灯下找钥匙的故事,我们不应该因为其他路面黑暗,就不去那边找,应该想办法扩大路灯照明的范围。也就是我们尝试让不可解释的模型变得可解释。
这里有一对名词常被混用,实际上二者有所不同。
explainable vs interpretable
容易想到,决策树可以是既可解释,同时又拟合能力有比较强的一类模型。
但事实上,决策树有可能很复杂。而且我们可能使用forest,模型中上百棵决策树一起考虑,可解释性也被削弱了。
所以,决策树,也并非是可解释性机器学习的最终答案。
李宏毅提供了他的个人观点:
有些人认为可解释性是完全知道ML模型是如何工作的?
可解释性机器学习又分为Local可解释性,以及Global的可解释性。
以识别猫的模型为例:
将这个问题具体化,给定一张图片,机器判断它是猫的时候,到底是根据什么原因(图片的什么部位)判断它是猫呢,是根据猫的眼睛,猫的耳朵,还是猫的爪子?
通用描述的话,对一个对象,可以是图片,音频,文字或者其他,它由很多components组成。我们想要知道哪一个component贡献了这个结果。
判断的原则也很简单,就是去除或者调整component,看模型的输出有什么变化。如果某个component被修改或者去除后,模型的输出发生了巨大的变化,那就可以知道,这个component很重要。
在图像上可以更好地理解这个任务,我们在图片的不同区域放上灰色的遮盖。在分析输出结果的变化。
热图中,蓝色部分代表着,灰色遮盖移到那个位置时,模型输出不再正确,则这个位置是重要的位置。
对应三个例子,
对于图中的每个pixel,如果我们给其中一个加上一个 δ x \delta x δx,而error的增加记为 δ e \delta e δe的话,我们就可以获得整张图的 ∣ δ e δ x n ∣ \lvert \frac {\delta e}{\delta x_n} \rvert ∣δxnδe∣,绘制成saliency map。
在saliency map上,如果这个地方越亮,代表值越大,则代表这个地方越重要。
saliency map的具体应用:
训练一个宝可梦和数码宝贝的分类器,这是一个二元分类的问题。
我们尝试让机器在没有见过的测试集判断宝可梦和数码宝贝。实际上,人类也很难判断,比如可以看看下面这两张图,能够判断出哪只是宝可梦,哪只是数码宝贝吗。
而,机器竟然能在没有见过的图片上,达到98.4%的准确率!这非常令人惊讶。
所以,我们想通过绘制saliency map,来看看机器到底是如何完成分类的。
先来看看数码宝贝,发现亮点都聚集在四个角落,不在数码宝贝身上。
再来看看宝可梦,宝可梦的更加明显,也是聚集在四周,不在宝可梦身上。
最后发现,是因为宝可梦都是png格式的,数码宝贝都是jpeg格式的,而png格式的读取后四周都是黑的…所以机器只需要根据四周的颜色就能进行判断。
这个例子告诉我们,可解释性ai是很重要的。
上述例子可能很荒谬,但是,在真实数据集中也是可能发生的。比如这个PASCAL VOC 2007的数据集,判断马靠的并不是马,而是左下角这个地方。这是因为图库里面马的照片都是有这串英文水印的,机器其实是通过识别这串水印来识别马的。