可解释的人工智能(explainable AI) 是机器学习领域热门话题之一。 机器学习模型通常被认为是“黑盒”,具有内部不可知的特性。因此这些模型在应用时,往往需要首先获取人们的信任、明确其误差的具体含义、明确其预测的可靠性。 本文中,我们将探讨 explainable AI 的内涵及其重要性,并且提供了几个案例以帮助理解。
现阶段机器学习的工作流程(从训练到工业应用)大致如下:
ML 工作流程
上图展示了:基于原始数据通过学习来对模型进行训练;其中学习过程依赖于学习函数,给其输入原始数据,能够输出对应的预测数据;而使用者主要接触并使用预测数据。
具体地,学习函数除了可以是人工神经网络,也可以是决策树、支持向量机、boosting model 等。
当学习函数通过原始数据训练确定后,就可以被用于输入新的数据并且进行预测。在此基础上,使用者便可以及基于预测数据做出决策或采取行动了。
但是其中涉及到的问题,正如图片中的若干问号所示:预测值的准确性及可信度。
通常,运用机器学习模型时,首先需要确定误差函数或者损失函数,通过真实数据和预测数据之间的距离来反映模型的性能。但是误差函数或者损失函数可以说明一切吗?
模型可能表现出较低误差或损失,但是仍然具有一定的偏差,可能不时产生一些奇怪的预测结果。 当然,这些意外的预测结果可能让我们发现一些新的规律,但是也可能反映出模型存在某些错误,并且需要进行修正。
即使预测结果不存在问题,我们获得了良好的预测结果,但是这也远远不够。我们不仅仅局限于结果的预测,也倾向于想要知道所使用的模型的内部作用机制,即该模型是怎么做到准确预测的。
上述问题阐述了 Explainable AI 为何被人们所重视。 当机器学习中采用 explainable AI 时,其工作流程如下:
采用 explainable AI 的 ML 模型
上图展示了:采用新的学习机制来训练新的学习函数,形成新的 explainable 模型。这一新的学习函数不仅具有准确预测的能力,同时也能够对其预测结果产生的过程进行溯源解释。 这样提供给使用者的就不仅仅是预测的结果,还将能够提供更多的细节。
当我们使用 AI 时,往往需要大量的参数实现对于原始数据的处理和分析,因此导致最后形成难以解释的“黑盒模型”。当然,建立开发该模型的数据科学家或工程师很清楚具体的计算处理过程,但是对于使用者而言,该模型是相对神秘和神奇的。使用者只需要输入数据,然后能够直接得到预测结果。
ML 模型=“黑盒”
在 AI 发展早期,人们更多关注于 AI 能不能给出很好的预测结果,因此即使它是“黑盒”也无所谓。 但是随着技术的不断发展和深入,人们愈来愈重视 AI 的可解释性。人们想要知道 AI 是如何产生准确的预测结果的。发生这一变化的原因如下:
但是具有更好预测性能的模型往往具有更差的可解释性。 以随机森林和决策树为例,随机森林方法的性能通常优于决策树,但是决策树具有更好的可解释性。
可解释性 VS 模型性能
如上图所示,可解释性和模型性能呈现反比例关系。但是基于这一事实,我们想要进一步实现从 X 到 O 的跃升,即在不降低模型性能的条件下提高模型的可解释性。
为了实现在不降低模型性能的条件下提高模型的可解释性这一目的,可以采用如下方法:
接下来以房价预测为例进行 explainable AI 的阐述。
使用的数据集为:Kaggle 房价预测
该数据集包含了在爱荷华州艾姆斯市的住宅数据,79个解释性变量(几乎)描述了住宅的方方面面,需要基于该数据集预测部分住宅的最终价格。
因为本文的目的在于解释 explainable AI,所以只使用数据集当中的数值型数据,并且所采用的模型使用默认的超参数设定。
决策树是最容易解释的机器学习模型之一。其实现方法非常简单:通过递归地将数据分割成越来越小的组,这些组最终会出现在我们的子节点中。
决策树使用示例
上图展示了通过决策树分析利用数据。决策树基于房价数据,依次判断 LSTAT 和 RM 参数,最后分类到最终的子节点中。
那么如何解释决策树的预测过程呢?显然,我们只需要基于样本分类的路径,就能够很好地解释预测结果是如何产生的。
决策树某一样本的分类路径
上图展示了决策树某一样本的分类路径,该样本的房价为 212545 美元。 基于路径,可以生成如下解释性语句: “优质建筑,地面生活面积小于1941平方英尺,地下室小于1469平方英尺,车库大于407平方英尺,一楼大于767平方英尺。1978年之后,它被重新改造过。因此,预计价格为212542美元。”
决策树虽然能够较为方便地解释结果,但是其预测能力不够强大。往往不能得出最好的预测结果。
使用同样的数据集,用随机森林方法进行预测。 将随机森林和决策树的误差函数进行对比:
随机森林方法 VS 决策树方法
可以看出,决策树方法的误差几乎是随机森林方法的两倍。
虽然随机森林方法具有更好的预测能力,但是却也更加复杂,如何对其进行解释呢? 针对这一问题,可以在模型中增加一个解释层以实现解释的目的。
"黑盒"模型中增加解释层
通常,可以使用 Shapley Values 归因算法作为解释层。 Shapley Values 来源于游戏理论,主要作用在于反映游戏中每个玩家的贡献大小。 被用于机器学习中,则反映每个特征值对于预测结果的贡献大小。
通过 Python 中的 SHAP 库,我们可以调用相关的函数实现指定输入数据的 Shapley Values。 在房价预测案例中,我们只需要向 Shapley Explainer 中输入训练数据,该训练数据与 ML 模型中的训练数据一致,并且声明使用的 ML 模型(随机森林方法)。 然后 Shapley Explainer 就会生成各个特征值的贡献大小。
Shapley Values
上图显示了各个特征值对于预测结果的贡献大小。 粉色和蓝色交汇的点便是模型预测值。 最接近粉色和蓝色交汇点的变量是对特定预测影响最大的变量。
粉色的变量及其对应值有助于提高房价,而蓝色的变量及其对应值有助于降低房价。正如我们在这里看到的,最有助于提高房价的变量是 OverallQual,其值为7。
在这种情况下,房屋的质量和建造年份(2003年)是房屋最相关的积极特征。地下室和一层面积的较小值是最相关的负特征。总之,所有这些变量及其值都证明了预测的正确性。
这些信息都可以生成相应的解释性文本,有助于更精确和复杂的模型的解释说明。
当然,除了 Shapley Values 以外,还有其他的解释层方法,如: Permutation Importance、LIME。