电子说
无论构建机器学习的目的是什么,客户总是希望能知道并理解模型的来龙去脉的。此外作为数据科学家和机器学习工作者,可解释性对于模型的验证和改进有着十分积极的意义。本文将从不同的角度阐述模型的可解释性对于机器学习的重要性,并探讨模型解释的实践方法。
机器学习的可解释性为何如此重要?
在传统统计学中,我们通过数据构建并验证假设来建立模型。通过构建的模型我们可以得到一系列规则并应用于业务中去。例如市场部门就可以通过构建与竞争者数据相关的模型来决定有效的市场竞争策略和方法。这类方法属于自顶向下的方法,其中可解释性是整套方法的解释,它衔接了规则和所产生的行为策略。很多时候因果关系不那么明确,一个坚实的模型就需要为决策提供可靠的解释,帮助人们清晰的理解。
而对于自底向上的模式,将商业模型中的一部分委派给机器学习,甚至从机器学习中得到全新的商业想法。自底向上的数据科学一般与手工劳作的自动化过程相关。例如制造业公司可将传感器放置在设备上收集数据并预测其需要维护的时间,这就避免了运维工程师耗时的周期性检查和维修,他们可以高效的维护工场设备保持在运行在良好的状态。模型的可解释可以帮助验证模型是否再按期望的状态运行,同时有利于在向自动化转变的过程中创造多的信任。
作为一名数据科学家,经常需要对模型进行微调以达到最优的表现。数据科学一般都是在给定x和输出y的情况下寻找误差最小的映射模型。虽然训练优秀的模型是数据科学家的核心能力,但具有更广阔的视野也十分重要。对数据和模型的解读对于数据科学处理流程是十分重要的,同时还能保证模型与目标问题的匹配。尽管我们经常会在各种前沿模型的尝试中迷失自我,但如果能够解释模型的发现并指导你的工作这将会使得数据科学的处理变得更加透彻。
对于模型的深度分析是数据的科学的根本
1. 识别并减小偏差
偏差广泛存在于数据集中,数据科学家需要识别并修正它的影响。很多时候数据集的规模可能很小不足以覆盖所有的情况,或者在数据获取过程中没有考虑潜在的偏差。它的影响往往会在数据处理后护着在模型预测中变得明显。偏差存在的形式各不相同,需要明确的是,处理偏差的手段并不单一,但在考虑模型的可解释性的时候必须要考虑到偏差的存在。
2.帮助分析问题的前后联系
在大多数问题中,我们收集到的数据仅仅是问题的粗略表示,并不能完全反映真实状态下的复杂性。可解释模型可以帮助我们理解并计量哪些因素被包含到模型中,并根据模型预测计量问题的前后联系。
3.改善泛化性
可解释性越强的模型一般都会具有更好的泛化性。可解释性并不是模型对于每一个数据点的细节描述,而是结合了坚实的模型和数据以及对于问题的理解,综合形成对于问题更好更全面的理解。
4.伦理和法律需要
在金融和医疗等行业人们需要审视模型的决策过程,并保证模型的决策不带有歧视和违法等行为。随着数据隐私保护的加强,模型的可解释性变得更加重要。同时在一些如医疗、自动驾驶等关键领域,一个错误会产生十分巨大的反响,所以模型的可解释性变得十分重要,让人们明白系统是如何工作的,决策是如何形成的。
如何解释你的模型?
在这一领域通常有一个规律,模型的可解释性随着复杂度的增加而下降,甚至更快的下降。特征重要性一般是解释模型的起点。即使对于黑箱般的深度学习模型,依然有一系列技术用于解释他们如何工作。在文章的最后我们还将讨论LIME(Local Interpretable Model-Agnostic Explanations)框架来作为分析框架构建可解释性。
1.特征重要性
一般线性模型
一般线性模型将特征作为x输入并与模型的权重相结合,通过函数作用后可以预测一系列广泛的变量。其常见的应用包括回归(线性回归)、分类(逻辑回归)和泊松过程建模(泊松回归)。其权重来自于特征训练后的结果,他们可以为模型提供十分简练的解释。
例如构建一个文本分类器的过程中,可以绘制分类的特征图并验证它是否过拟合了噪声。如果最重要的特征与你的直觉不符,这就意味着模型在噪声上过拟合了,它在新数据上的表现也不会好。
随机森林和支持向量机
即使对于树这一类的非线性模型依然可以特征重要性中提取信息。在随机森林中,特征重要性是验证初始假设和评价模型学习效果的好方法。而在基于核方法的支持向量机中,可以将特征映射到核空间中进行学习。
从上图中可以看到模型从数据中学习到了什么,什么是重要的
深度学习
深度学习模型的表现十分优异,但由于缺乏可解释性广受诟病。这主要是由于内部的参数共享和复杂的特征抽取与组合。这类模型在一系列机器学习任务上达到了最先进的水平,很多人都在致力于衔接器预测与输入的关系,期待解释模型的优异表现。
机器学习可解释的学术研究火热
深度学习的不可解释性是阻碍其发展的障碍,特别是在图像和文本处理上,很难解释模型到底学习到了什么。目前这一领域的主要研究方向集中在将输出或者预测映射回输入数据上。虽然在线性模型上十分简单,但在深度学习中依然是悬而未决的问题。目前主要集中在梯度和注意力机制两方面来解决。
1) 基于梯度的方法中利用方向传播梯度的概念产生出一幅地图,用于描述出输入图中对于输入预测重要的部分。
视觉标注任务中在原图显示对于结果重要的部分
2) 基于注意力机制的方法主要用于序列数据。除了网络中归一化的权重外,注意力权重被训练用于"输入门"。注意力权重可以被用于决定输入部分多少被用于最后的网络输出。除了可解释性,文本中的注意力机制在问答系统中帮助系统更加集中于任务本身。
显示了文本中对于问题回答重要的部分
2.LIME
LIME是一个更为通用的解释框架。
为了保持模型的独立性,LIME修改局域的输入将特别的测试用例输入模型并观察对预测造成的影响,通过一个个特定的样例来观察模型的可解释性。在文本内容分类中,这意味着某些词被替换后观察输出的结果。这就可以看到哪些修改后的结果是更为重要的。从而从侧面来解释模型。
全部0条评论
快来发表一下你的评论吧 !