如果我们看看2018年Kaggle所做的机器学习和数据科学调查结果,大约60%的受访者认为他们可以解释大多数机器学习模型(有些模型仍难以解释)。用于机器学习理解的最常用方法,是通过查看特征重要性和特征相关性来分析模型特征。
特征重要性分析提供了对模型学习内容以及哪些因素可能重要的初步的良好洞察。但是,如果特征之间是相关的则该方法会不太可靠。只有模型变量可解释时,它才能提供良好的洞察。对于许多GBMs库(Gradient Boosting Machine),绘制关于特征重要性的图表非常容易。
对于深度学习来说,情况要复杂得多。使用神经网络时,可以查看权重,因为它们包含关于输入的信息,但信息是压缩的。此外,你只能分析第一层的连接,因为在更深的层次上它太复杂了。
难怪2016年LIME(局部可解释的模型-可解释的说明)论文在NIPS会议上发表时,它产生了巨大的影响。LIME的模式是在可解释的输入数据上构建一个易于理解的白盒模型去局部模拟一个黑盒模型。已经证明它在为图像分类和文本提供解释方面获得很棒的结果。但是,对于列表数据,很难找到可解释的特征,其局部解释可能会产生误导。
LIME通过Python(lime和Skater)和R(lime包和iml包、live包)实现,并非常容易使用。
另一个有前景的想法是SHAP(Shapley Additive Explanations)。它基于博弈论。它将特征当做玩家、将模型当做联盟,用Shapley值说明各特征分别带来了怎样的“影响(Payout)”。该方法公平地衡量(各特征的)作用,易于使用并提供吸引人的可视化实现。
以R提供的DALEX软件包(描述性机器学习说明)提供了一组工具,可帮助了解复杂模型的工作原理。使用DALEX,可以创建模型解释器并通过可视化进行检查,例如分解绘图。你可能也会对DrWhy.Ai感兴趣,它和DALEX是由同一组研究人员开发的。