2021-02-27 分類: 網(wǎng)站建設(shè)
我第一次聽說 Shapley 值是在學(xué)習(xí)模型可解釋性的時候。我知道了 SHAP,它是一個框架,可以更好地理解為什么機器學(xué)習(xí)模型會那樣運行。事實證明,Shapley 值已經(jīng)存在了一段時間,它們最早起源于 1953 年的博弈論領(lǐng)域,目的是解決以下情況:
當(dāng)一個「舊」概念被應(yīng)用到另一個領(lǐng)域,如機器學(xué)習(xí),關(guān)于它是如何獲得新的應(yīng)用是非常有趣的。在機器學(xué)習(xí)中,參與者是你輸入的特征,而集體支出是模型預(yù)測。在這種情況中,Shapley 值用于計算每個單獨的特征對模型輸出的貢獻。
如何計算 Shapley 值?大多數(shù)時候,你傾向于在文獻中看到這個等式:
乍一看,這個公式似乎并沒有變?nèi)菀?,但請不要著急。很快,我將分解方程的不同部分,以便理解它們,但我們也可以定義一個具體的場景,我們可以使用它來讓所有部分都不那么抽象。
假設(shè)我們經(jīng)營一家生產(chǎn)磚塊的工廠。我們的一個生產(chǎn)團隊由四個人組成:Amanda、Ben、Claire 和 Don(從現(xiàn)在起,我將以他們名字中的第一個字母來稱呼他們)。每周他們一起設(shè)法生產(chǎn)出 X 塊磚。由于我們工廠運轉(zhuǎn)良好,我們有一筆獎金要發(fā)給隊員們。但是,為了讓我們以公平的方式做到這一點,我們需要弄清楚每個人對每周生產(chǎn) X 數(shù)量的磚塊貢獻了多少。
最困難的是,我們有好幾個因素都會影響團隊可以生產(chǎn)的磚塊數(shù)量。其中之一是團隊規(guī)模,因為團隊規(guī)模越大,生產(chǎn)的磚塊就越多。另一個可能是團隊成員之間的合作程度。問題是,我們無法以有意義的方式量化這些影響,但幸運的是,我們可以使用 Shapley 值來回避這個問題。
我們現(xiàn)在已經(jīng)定義了我們的玩家(A、B、C 和 D)以及他們參與的游戲(生產(chǎn)磚塊)。讓我們從計算生產(chǎn)的 X 磚中有多少可以歸于 Don 開始,即計算 D 的 Shapley 值。如果我們把它與 Shapley 值公式的參數(shù)聯(lián)系起來,我們就得到:
所以 D 是我們的球員 i,整個 N 組由所有四個隊員 A,B,C 和 D 組成,我們先看一下 Shapley 值公式的這一部分:
也就是說,我們需要把我們的團隊成員排除在我們現(xiàn)在關(guān)注的人之外。然后,我們需要考慮所有可能形成的子集。所以如果我們從組中排除 D,我們就只剩下 {A,B,C}。從這個剩余的組中,我們可以形成以下子集:
我們總共可以構(gòu)造出其余團隊成員的 8 個不同子集。其中一個子集是空集,即它沒有任何成員?,F(xiàn)在讓我們把注意力轉(zhuǎn)移到這個部分:
這是我們 Shapley 值的一個基本概念的應(yīng)用:在游戲中增加玩家 i 的邊際價值。所以對于任何給定的子集,我們要比較它的值和當(dāng)包括玩家 i 的時候它的值。通過這樣做,我們得到了將玩家 i 添加到該子集的邊際值。
我們把它和我們的例子聯(lián)系起來,想看看如果我們把 D 加到 8 個子集中的每一個子集上,每周生產(chǎn)的磚塊數(shù)量有什么不同。我們可以將這 8 個邊緣值直觀地表示為:
你可以將每種情況都視為我們需要觀察的不同場景,以便公平地評估 D 對整個生產(chǎn)的貢獻程度。這意味著,我們需要觀察如果沒有人工作(即空集合)會產(chǎn)生多少磚塊,并將其與只有 D 工作時的情況進行比較。我們還需要觀察 AB 產(chǎn)生的磚塊數(shù)量,并將其與 AB 產(chǎn)生的磚塊數(shù)量以及所有 8 個集合中 D 可以產(chǎn)生的磚塊數(shù)量進行比較。
好吧,我們現(xiàn)在已經(jīng)知道我們需要計算 8 個不同的邊緣值。Shapley 值方程告訴我們,我們需要把它們加在一起。然而,在我們做這些之前,我們還需要調(diào)整每一個邊際值,從等式的這一部分可以看出:
它計算出除玩家 i 以外的所有剩余團隊成員的子集的排列可以有多少個?;蛘邠Q句話說:如果你有| N |-1 個玩家,你能用它們組成多少個| S |大小的組?然后我們用這個數(shù)字除以玩家 i 對所有大小為| S |的群體的邊際貢獻。
在我們的場景中,| N |-1=3,也就是說,當(dāng)我們計算 D 的 Shapley 值時,這些是剩下的團隊成員數(shù)量。在我們的例子中,我們將使用等式的那一部分來計算我們可以形成多少個 0、1、2 和 3 大小的組,因為這些只是我們可以用剩下的成員構(gòu)造的組大小。因此,例如,如果有| S |=2,那么我們可以構(gòu)造 3 個不同的大小為 2 的組:AB、BC 和 CA。這意味著我們應(yīng)該對 8 個邊緣值中的每一個應(yīng)用以下比例因子:
讓我們思考一下為什么要這樣做。我們想知道 D 對團隊總產(chǎn)出的貢獻有多大。為了做到這一點,我們計算了他對我們所能形成的團隊中每個集合的貢獻。通過添加這個比例因子,我們平均了其他團隊成員對每個子集大小的影響。這意味著,當(dāng)我們將 D 加入到一個 0,1,2 和 3 大小的團隊中時,我們能夠捕獲這些團隊的平均邊際貢獻。
好了,我們差不多結(jié)束了,我們只有 Shapley 值方程的最后一部分要分解,這一點也應(yīng)該很容易理解。
我們需要應(yīng)用到所有的邊際值,然后才能求和。我們必須把它們和總隊員數(shù)分開。
我們?yōu)槭裁匆@么做?好吧,如果我們看看磚廠的例子,我們已經(jīng)平均出了其他團隊成員對每個子集大小的影響,這樣我們就可以算出 D 對 0、1、2 和 3 大小的組的貢獻。最后一塊拼圖是平均小組規(guī)模的影響,也就是說,D 貢獻了多少與小組規(guī)模無關(guān)。
我們現(xiàn)在終于可以計算出 D 的 Shapley 值了,我們觀察到他對團隊中所有不同的子集的貢獻是多少。我們還對團隊成員組成和團隊規(guī)模的影響進行了平均,這最終允許我們計算:
數(shù)學(xué)符號更多的是一個圖形化的說明,而不是一個數(shù)學(xué)的說明(這是我在腦海中想象它的方式)
在這里,我們得到了 D 的 Shapley 值。在我們?yōu)閳F隊的其他成員完成這項工作之后,我們將知道每個人對每周生產(chǎn)的 X 塊磚的貢獻,這樣我們就可以在所有團隊成員中公平地分配獎金。
在這一點上,我希望你對 Shapley 的價值觀有了更好的理解。很酷的是,我們不需要知道任何關(guān)于值函數(shù) v 內(nèi)部工作原理,只需要觀察它為不同子集提供的值,我們可以從參與游戲的玩家中得到這些值。
這才是 Shapley 值背后真正的力量和吸引力。然而,這是有代價的。對于一組參與游戲的 n 個玩家,你將需要分析 2^n 個子集才能計算 Shapley 值。
有一些方法可以使計算更加實際可行,在引言中我提到了 SHAP 框架,它的主要優(yōu)點是,當(dāng)將 Shapley 值應(yīng)用于機器學(xué)習(xí)時,它能夠更有效地計算 Shapley 值。
名稱欄目:機器學(xué)習(xí)中的 Shapley 值怎么理解?
網(wǎng)址分享:http://www.rwnh.cn/news49/103299.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、營銷型網(wǎng)站建設(shè)、網(wǎng)站排名、電子商務(wù)、全網(wǎng)營銷推廣、動態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容