Press "Enter" to skip to content

使用“假设工具”来研究机器学习模型

 

好的从业者都像侦探一样,探寻如何 更好地理解他们所构建的模型。

 

在可解释机器学习领域,不能仅仅满足于简单地训练模型获得预测。为了工作能更有意义并或得更好的结果,我们应该深入探寻和研究我们的模型。除此之外,算法的约束条件和偏置在也能在后续操作模型时得到清晰的认识。

 

审查模型时需要提出很多问题,我们需要具有敏锐的探索精神,并查找模型的一些问题和不一致性。通常,这样的任务往往比较复杂,需要写下很多常规代码。幸运的是“What-If”工具被设计用来处理上面描述的问题,他能简单去检查,评估以及调试,同时精准度比较高。

 

    What-If 工具(WIT)

 

 

What-If Tool 是一个交互式可视化工具用于研究机器学习模型(WIT)。他通过辅助检查、评估和对比学习模型来帮助我们理解分类或回归问题。由于他友好的接口设计以及很少涉及复杂的编码,开发者、产品经理、研究者或学生都可以轻松使用。

 

WIT 是一个开源的可视化工具,由谷歌release 在PAIR(People + AI Research) 中。PAIR 通过谷歌将将研究者汇集在一起学习和重新设计与AI的交互方式。

 

这个系统工具可以通过TensorBoard、Juypter拓展接口或Colab接入。

 

优点

 

这个工具的目的是提供一种简单、直观、强有力的可视化接口去与训练机器学习模型和数据交互。下面是WIT的主要优点:

 

 

我们怎幺使用WIT?

 

 

在一个工作流中比较多个模型

 

可视化预测结果

 

通过相似性排列数据点

 

编辑数据点并观察模型的输出

 

比较反现实的数据点

 

使用特征值

 

实验中使用混淆矩阵或ROC曲线

 

测试算法的约束限制

 

 

我们将从上面的几点分别展开。

 

Demos

 

为了更好地显示WIF的功能,PAIR小组发布了一组使用预先训练训练模型的demos。你可以通过notebook或直接通过网站来运行demo。

 

 

简单使用一下WIT

 

使用

 

WIT可以被嵌入在 Jupyter、Colab 或 TensorBoard中。这个被清晰地在文稿中指明了,我强烈建议你去通读这个,在这片短文中详细解释并不现实。

 

完整的想法是首先训练一个模型,然后使用WIT可视化训练的分类器在测试数据上的结果。

 

使用在TensorBoard上

 

为了使用在TensorBoard中使用WIT,模型需要在通过ensorFlow Model Server部署,被分析的数据需要存储在TFRecords中并能访问到。更多详细信息请通过原文查看 documentation。

 

使用Notebook中的WIT

 

为了通过notebook中访问WIT,需要WitConfigBuilder 来制定数据之后才能分析模型。documentation中提供了在notebook中使用WIT的详细步骤。

 

 

你还可以使用 demo notebook 来编辑自己的数据集中的代码

 

详细解释

 

下面使用一个例子来详细解释WIT的可用性。例子源自网站傻姑娘提供的demo:收入分类用来基于人口普查信息预测一个人的年收入是否超过50k。数据集源自 UCI Census dataset ,它的特征包括:年龄、身份、受教育水平等。

 

总览

 

首先做一些数据集上的探讨。下面的链接link指示了demo:

 

https://pair-code.github.io/what-if-tool/uci.html

 

WIT包括两个主面板,右边的面板包括:加载数据集合的数据点。

 

在这个例子中,蓝色的表示通过模型预测的年收入低于50k的数据,红点表示高于50k的数据。默认情况下,WIT使用了0.5的positive classification threshold。如果预测分大于等于0.5,数据点将被预测成正例:高收入者。

 

简单介绍一下Facets Dive工具,可视化后的结果比较有趣。Facets Dive 是被PAIR团队开发的一个FACETS工具,用于帮助理解和探索数据的多特征。如果你不熟悉的话可以参考我之前写的文章

 

使用谷歌的FACETS 来可视化机器学习数据集。Visualising Machine Learning Datasets with Google’s FACETS.

 

An open source tool from Google to easily learn patterns from large amounts of data 一个开源的工具用来简单的学习大量数据的模式。

 

他可以多种不同方式来组织数据包括:混淆矩阵,散点图、条形图以及下拉菜单中指定域的点图。下面呈现了一些例子:

 

 

 

左边的面板中包含了三个tab,分别是数据点编辑器、性能、特征。

 

    1.数据点编辑器选项卡

 

数据点编辑器通过以下方式帮助执行数据分析:

 

查看和编辑数据点的详细信息

 

它允许选定数据点,并在右侧面板上以黄色突出显示。让我们尝试将年龄从53更改为58,然后单击“运行推理”按钮以查看它对模型性能的影响。

 

 

通过简单地改变这个人的年龄,该模型现在预测该人属于高收入类别。对于这个数据点,早期阳性(高收入)类的推理得分为0.473,阴性(低收入)类的得分为0.529。但是,通过改变年龄,积极的班级分数变为0.503。

 

寻找最近的反事实

 

理解模型行为的另一种方法是查看哪些小的变化可以导致模型颠倒其决策,这被称为反事实。只需单击一下,我们就可以看到最相似的反事实(以绿色突出显示)到我们选定的数据点。在数据点编辑器选项卡中,我们现在还可以看到原始数据点的特征值旁边的反事实的特征值。绿色文本表示两个数据点不同的功能。WIT使用L1和L2距离来计算数据点之间的相似性。

 

 

在这种情况下,最近的反事实稍微更老并且具有不同的职业和资本收益,但在其他方面是相同的。

 

我们还可以使用“显示与所选数据点的相似性”按钮来查看所选点与其他点之间的相似性。WIT测量从选定点到每个其他数据点的距离。让我们改变我们的X轴散射,以显示到所选数据点的L1距离。

 

 

分析部分相关图

 

部分相关图(简称PDP或PD图)显示了一个或两个特征对机器学习模型预测结果的边际效应(J. H. Friedman 2001)。

 

年龄和教育数据点的PDP(分析部分相关图)如下:

 

 

上图显示:

 

该模型已经了解了年龄与收入之间的正相关关系

 

更高级的学位使模型对更高的收入更有信心。

 

高资本收益是高收入的一个非常有力的指标,远远超过任何其他单一特征。

 

    2.性能与公平选项卡

 

此选项卡允许我们使用混淆矩阵和ROC曲线查看整体模型性能。

 

模型性能分析

 

为了分析模型的性能,我们需要告诉工具什幺是基本事实特征,即模型试图预测哪个特征是“超过50K”。

 

 

我们可以看到,在默认阈值为0.5时,我们的模型在大约15%的时间内是不正确的,大约5%的时间是误报,10%的时间是假阴性。更改阈值以查看其对模型准确性的影响。

 

还有一个“成本比”设置和一个“优化阈值”按钮,也可以调整。

 

机器学习的公平性

 

机器学习的公平性与模型构建和预测结果同样重要。训练数据中的任何偏差都将反映在训练模型中,如果部署了这样的模型,结果输出也会有偏差。WIT可以通过几种不同的方式帮助调查公平问题。我们可以设置用于切片数据的输入要素(或一组要素)。例如,让我们看看性别对模型性能的影响。

 

 

性别对模型表现的影响

 

我们可以看到该模型对女性的准确性高于男性。此外,该模型预测女性的高收入远低于男性(女性占9.3%,男性占28.6%)。一个可能的原因可能是由于数据集中女性代表性不足,我们将在下一节中探讨。

 

此外,该工具可以最佳地设置两个子集的决策阈值,同时考虑与算法公平性相关的许多约束中的任何一个,例如人口统计或机会均等。

 

    3.功能选项卡

 

“功能”选项卡提供数据集中每个要素的摘要统计信息,包括直方图,分位数图表,条形图等。该选项卡还可以查看数据集中每个要素的值分布。例如,让我们探讨性别,资本收益和种族特征。

 

 

我们推断资本收益非常不均匀,大多数数据点都设置为0。

 

 

原住民的分配 || 性别分布

 

同样,大多数数据点都属于美国,而女性在数据集中没有很好地表示。由于数据存在偏差,因此其预测仅针对一组是很自然的。毕竟,模型从提供的数据中学习,如果数据源是倾斜的,那幺结果就是如此。机器学习已经在很多应用和领域得到了证明。然而,机器学习模型的工业应用的关键障碍之一是确定用于训练模型的原始输入数据是否包含歧视性偏差。

 

结论

 

这只是一些假设工具功能的快速浏览。WIT是一个非常方便的工具,它能够探测模型,掌握最重要的人的手中。简单地创建和训练模型不是机器学习的目的,但理解模型的原因和方式才是真正意义上的机器学习。

 

参考资料:

 

 

The What-If Tool: Code-Free Probing of Machine Learning Models

 

https://pair-code.github.io/what-if-tool/walkthrough.html

 

https://github.com/tensorflow/tensorboard/tree/master/tensorboard/plugins/interactive_inference

 

 

本文编辑: 王立鱼

 

英文原文:

 

https://towardsdatascience.com/using-what-if-tool-to-investigate-machine-learning-models-913c7d4118f

原标题 |  Using the ‘What-If Tool’ to investigate Machine Learning models.

作者 |  Parul Pandey

译者 | 汪鹏(重庆邮电大学)、鲁昂(高级开发工程师)

Be First to Comment

发表评论

电子邮件地址不会被公开。 必填项已用*标注