机器学习中的 Shapley 值怎么理解?

2021-02-27    分类: 网站建设

我第一次听说 Shapley 值是在学习模型可解释性的时候。我知道了 SHAP,它是一个框架,可以更好地理解为什么机器学习模型会那样运行。事实证明,Shapley 值已经存在了一段时间,它们最早起源于 1953 年的博弈论领域,目的是解决以下情况:

  • 一群拥有不同技能的参与者为了集体奖励而相互合作。那么,如何在小组中公平分配奖励?

当一个「旧」概念被应用到另一个领域,如机器学习,关于它是如何获得新的应用是非常有趣的。在机器学习中,参与者是你输入的特征,而集体支出是模型预测。在这种情况中,Shapley 值用于计算每个单独的特征对模型输出的贡献。

如何计算 Shapley 值?大多数时候,你倾向于在文献中看到这个等式:

乍一看,这个公式似乎并没有变容易,但请不要着急。很快,我将分解方程的不同部分,以便理解它们,但我们也可以定义一个具体的场景,我们可以使用它来让所有部分都不那么抽象。

假设我们经营一家生产砖块的工厂。我们的一个生产团队由四个人组成:Amanda、Ben、Claire 和 Don(从现在起,我将以他们名字中的第一个字母来称呼他们)。每周他们一起设法生产出 X 块砖。由于我们工厂运转良好,我们有一笔奖金要发给队员们。但是,为了让我们以公平的方式做到这一点,我们需要弄清楚每个人对每周生产 X 数量的砖块贡献了多少。

最困难的是,我们有好几个因素都会影响团队可以生产的砖块数量。其中之一是团队规模,因为团队规模越大,生产的砖块就越多。另一个可能是团队成员之间的合作程度。问题是,我们无法以有意义的方式量化这些影响,但幸运的是,我们可以使用 Shapley 值来回避这个问题。

我们现在已经定义了我们的玩家(A、B、C 和 D)以及他们参与的游戏(生产砖块)。让我们从计算生产的 X 砖中有多少可以归于 Don 开始,即计算 D 的 Shapley 值。如果我们把它与 Shapley 值公式的参数联系起来,我们就得到:

机器学习中的 Shapley 值怎么理解?

所以 D 是我们的球员 i,整个 N 组由所有四个队员 A,B,C 和 D 组成,我们先看一下 Shapley 值公式的这一部分:

机器学习中的 Shapley 值怎么理解?

也就是说,我们需要把我们的团队成员排除在我们现在关注的人之外。然后,我们需要考虑所有可能形成的子集。所以如果我们从组中排除 D,我们就只剩下 {A,B,C}。从这个剩余的组中,我们可以形成以下子集:

机器学习中的 Shapley 值怎么理解?

机器学习中的 Shapley 值怎么理解?

我们总共可以构造出其余团队成员的 8 个不同子集。其中一个子集是空集,即它没有任何成员。现在让我们把注意力转移到这个部分:

机器学习中的 Shapley 值怎么理解?

这是我们 Shapley 值的一个基本概念的应用:在游戏中增加玩家 i 的边际价值。所以对于任何给定的子集,我们要比较它的值和当包括玩家 i 的时候它的值。通过这样做,我们得到了将玩家 i 添加到该子集的边际值。

我们把它和我们的例子联系起来,想看看如果我们把 D 加到 8 个子集中的每一个子集上,每周生产的砖块数量有什么不同。我们可以将这 8 个边缘值直观地表示为:

机器学习中的 Shapley 值怎么理解?

你可以将每种情况都视为我们需要观察的不同场景,以便公平地评估 D 对整个生产的贡献程度。这意味着,我们需要观察如果没有人工作(即空集合)会产生多少砖块,并将其与只有 D 工作时的情况进行比较。我们还需要观察 AB 产生的砖块数量,并将其与 AB 产生的砖块数量以及所有 8 个集合中 D 可以产生的砖块数量进行比较。

好吧,我们现在已经知道我们需要计算 8 个不同的边缘值。Shapley 值方程告诉我们,我们需要把它们加在一起。然而,在我们做这些之前,我们还需要调整每一个边际值,从等式的这一部分可以看出:

机器学习中的 Shapley 值怎么理解?

它计算出除玩家 i 以外的所有剩余团队成员的子集的排列可以有多少个。或者换句话说:如果你有| N |-1 个玩家,你能用它们组成多少个| S |大小的组?然后我们用这个数字除以玩家 i 对所有大小为| S |的群体的边际贡献。

在我们的场景中,| N |-1=3,也就是说,当我们计算 D 的 Shapley 值时,这些是剩下的团队成员数量。在我们的例子中,我们将使用等式的那一部分来计算我们可以形成多少个 0、1、2 和 3 大小的组,因为这些只是我们可以用剩下的成员构造的组大小。因此,例如,如果有| S |=2,那么我们可以构造 3 个不同的大小为 2 的组:AB、BC 和 CA。这意味着我们应该对 8 个边缘值中的每一个应用以下比例因子:

机器学习中的 Shapley 值怎么理解?

让我们思考一下为什么要这样做。我们想知道 D 对团队总产出的贡献有多大。为了做到这一点,我们计算了他对我们所能形成的团队中每个集合的贡献。通过添加这个比例因子,我们平均了其他团队成员对每个子集大小的影响。这意味着,当我们将 D 加入到一个 0,1,2 和 3 大小的团队中时,我们能够捕获这些团队的平均边际贡献。

好了,我们差不多结束了,我们只有 Shapley 值方程的最后一部分要分解,这一点也应该很容易理解。

机器学习中的 Shapley 值怎么理解?

我们需要应用到所有的边际值,然后才能求和。我们必须把它们和总队员数分开。

我们为什么要这么做?好吧,如果我们看看砖厂的例子,我们已经平均出了其他团队成员对每个子集大小的影响,这样我们就可以算出 D 对 0、1、2 和 3 大小的组的贡献。最后一块拼图是平均小组规模的影响,也就是说,D 贡献了多少与小组规模无关。

我们现在终于可以计算出 D 的 Shapley 值了,我们观察到他对团队中所有不同的子集的贡献是多少。我们还对团队成员组成和团队规模的影响进行了平均,这最终允许我们计算:

机器学习中的 Shapley 值怎么理解?

数学符号更多的是一个图形化的说明,而不是一个数学的说明(这是我在脑海中想象它的方式)

在这里,我们得到了 D 的 Shapley 值。在我们为团队的其他成员完成这项工作之后,我们将知道每个人对每周生产的 X 块砖的贡献,这样我们就可以在所有团队成员中公平地分配奖金。

机器学习中的 Shapley 值怎么理解?

在这一点上,我希望你对 Shapley 的价值观有了更好的理解。很酷的是,我们不需要知道任何关于值函数 v 内部工作原理,只需要观察它为不同子集提供的值,我们可以从参与游戏的玩家中得到这些值。

这才是 Shapley 值背后真正的力量和吸引力。然而,这是有代价的。对于一组参与游戏的 n 个玩家,你将需要分析 2^n 个子集才能计算 Shapley 值。

有一些方法可以使计算更加实际可行,在引言中我提到了 SHAP 框架,它的主要优点是,当将 Shapley 值应用于机器学习时,它能够更有效地计算 Shapley 值。

名称栏目:机器学习中的 Shapley 值怎么理解?
网址分享:/news49/103299.html

成都网站建设公司_创新互联,为您提供关键词优化营销型网站建设网站排名电子商务全网营销推广动态网站

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都网站建设