可解釋的機器學習

2021-01-11 手機鳳凰網

原文標題 | Interpretable Machine Learning

作者 | Parul Pandey

譯者 | intelLigenJ(算法工程師)、鳶尾

編輯 | 王立魚

原文連結:

https://towardsdatascience.com/interpretable-machine-learning-1dec0f2f3e6b

圖源Pexels的Pixabay

是時候擺脫黑盒模型,構建起對機器學習的信任了!

想像你是一個數據科學家,你想要在業餘時間根據你朋友在facebook和twitter上發布的信息,來預估你朋友假期要去度假的地方。如果你預測對了,你朋友一定嘆為觀止,覺得你是錦鯉附身。如果你猜錯了也沒啥,只不過有點影響身為數據科學家的口碑而已。但如果你和其他人打了賭,就賭這個朋友暑假會去哪裡,這時候預測錯誤的成本就有點高了。也就是說,當模型對錯本身不造成很大影響的時候,解釋性並不算是很重要的要素。不過當預測模型用於金融、公共事務等重大影響決策時,解釋性就顯得尤為重要了。

可解釋的機器學習

理解(interpret)表示用可被認知(understandable)的說法去解釋(explain)或呈現(present)。在機器學習的場景中,可解釋性(interpretability)就表示模型能夠使用人類可認知的說法進行解釋和呈現。[Finale Doshi-Velez]

來自:可解釋的機器學習

機器學習模型被許多人稱為「黑盒」。這意味著雖然我們可以從中獲得準確的預測,但我們無法清楚地解釋或識別這些預測背後的邏輯。但是我們如何從模型中提取重要的見解呢?要記住哪些事項以及我們需要實現哪些功能或工具?這些是在提出模型可解釋性問題時會想到的重要問題。

可解釋性的重要性

總有人會問,為什麼模型給出預測結果了還不滿意,還要這麼執意於知道模型是如何做出預測的?這和模型在真實世界中產生的影響有很大關係。對於僅僅被用來做電影推薦的模型而言,其影響性相較於做藥物效果預估所使用的模型要小得多。

問題在於一個單一指標,就好比分類準確率,是不足以刻畫真實世界中的大部分問題的。(Doshi-Velez and Kim 2017)

這裡有一個可解釋機器學習的大框架。在某種程度上,我們通過從真實世界(World)中獲取一些原始數據(Data),並用這這些數據進行更深入的預測分析(Black Box Model)。而模型的解釋性方法(Interpretability)只是在模型之上增加了一層,以便於人們(Humans)更好地理解預測過程。

可解釋機器學習的大框架

以下是一些由可解釋性帶來的好處:

可靠性

易於調試

啟發特徵工程思路

指導後續數據搜集

指導人為決策

建立信任

模型解釋的具體技術

實踐是檢驗真理的唯一標準。如果你想對這個領域有一個更真切的了解,你可以試試Kaggle上的機器學習解釋性crash課程。這裡頭有足夠多的理論和代碼來幫助你將模型解釋性的概念應用到真實世界的問題中去。

點擊下面的連接來進入課程頁面。不過如果你想先對課程內容有一個簡單的了解,你可以先繼續閱讀本文。

https://www.kaggle.com/learn/machine-learning-explainability

洞悉模型

想要理解一個模型,我們需要洞悉如下的內容:

模型中最重要的特徵

對於每一次預估決策,不同特徵變量發揮的作用

每個特徵在使用大量數據進行預估時發揮的作用

接下來,我們會探討從模型中獲取上述信息所使用的具體技術:

1. Permutation Importance

對於模型來說,哪一個特徵才是最重要的?哪一個特徵對於模型做決策有更大的影響?這個概念被稱為特徵重要度,而Permutation Importance正是目前被廣泛採用計算特徵重要度的方式。當我們的模型預測出了難以理解的結果時,我們可以通過這個指標來知道到底發生了什麼。當然,如果我們需要向別人解釋自己模型的預測時也可以用這種方法。

Permutation Importance對很多scikit-learn中涉及到的預估模型都有用。其背後的思想很簡單:隨機重排或打亂樣本中的特定一列數據,其餘列保持不變。如果模型的預測準確率顯著下降,那就認為這個特徵很重要。與之對應,如果重排和打亂這一列特徵對模型準確率沒有影響的話,那就認為這列對應的特徵沒有什麼作用。

使用方法

試想我們現在做了一個預測足球隊裡誰會獲得「足球先生」稱號的模型,並且該模型並不是幾個簡單參數就能刻畫的。當然,只有表現最好的球員才能獲得此稱號。

Permutation Importance是在模型完成擬合之後才進行計算的。所以,我們先用RandomForestClassifier在訓練樣本上擬合出一個分類模型,我們不妨稱之為my_model。

我們使用ELI5庫可以進行Permutation Importance的計算。ELI5是一個可以對各類機器學習模型進行可視化和調試Python庫,並且針對各類模型都有統一的調用接口。ELI5中原生支持了多種機器學習框架,並且也提供了解釋黑盒模型的方式。

通過eli5庫來計算並展示特徵重要度:

點擊此處查看完整代碼

模型解釋

最上面的特徵是最重要的特徵,最下面則是最不重要的特徵。在這個case中,進球數(Goal Scored)是最重要的特徵。

±後面的數字表示多次隨機重排之間的差異值

有些特徵重要度權重是負數,表示隨機重排這些特徵之後,模型的表現甚至更好了

練習

現在,我們可以用一個完整的例子來檢驗一下你對該方法的理解,你可以點擊下面的連接來進入Kaggle的頁面:

https://www.kaggle.com/dansbecker/permutation-importance

2. Partial Dependency Plots

Partial Dependency Plots(後續用PDP或PD簡稱)會展示一個或兩個特徵對於模型預測的邊際效益(J. H. Friedman 2001)。PDP可以展示一個特徵是如何影響預測的。與此同時,我們可以通過繪製特徵和預測目標之間的一維關係圖或二維關係圖來了解特徵與目標之間的關係。

使用方法

PDP也是在模型擬合完成之後開始計算的。用剛剛足球球員的例子來說,模型使用了很多特徵,類似傳球數、射門次數、進球數等等。我們從中抽取一個樣本球員來進行說明,比如該球員佔全隊50%的持球時長、傳球過100次、射門10次並進球1次。

我們先訓練模型,然後用模型預測出該球員獲得「足球先生」的概率。然後我們選擇一個特徵,並變換球員該特徵值下的特徵輸入。比如我們調整剛剛抽取的那名球員,將其進球數分別設置成一次、兩次、三次,然後畫出預測概率隨著進球數變化的走勢圖。

Python中使用partial dependence plot toolbox來畫PDP圖,該工具簡稱PDPbox。

點擊此處查看完整代碼

模型解釋

Y軸表示預測相較於基準線或最左值的增加值

藍色區域表示置信區間

從上圖針對進球數的PDP分析看,隨著進球數增多,球員獲得「足球先生」的概率也會逐步增加,但增加到一定程度之後就收斂了。

我們同樣可以使用二維圖上畫出針對兩個特徵的PDP分析圖:

練習

https://www.kaggle.com/dansbecker/partial-plots

3. SHAP Values

SHAP(SHapley Additive exPlanation)有助於細分預測以顯示每個特徵的影響。它基於Shapley values,這是一種用於博弈論的技術,用於確定協作遊戲中每個玩家促成其成功的貢獻有多少¹。通常情況下,在準確性和可解釋性之間取得正確的權衡可能是一個困難的平衡行為,但SHAP值可以同時提供這兩者。

操作

再一次,以足球為例,我們想要預測一個球隊有一名球員贏得「最佳球員」的概率。SHAP values解釋了給定特性具有特定值的影響,並與我們在該特性具有某些基線值時所做的預測進行比較。

SHAP values 使用Shap庫進行計算。從PyPI或conda安裝Shap 庫很簡單.

Shap值顯示給定的特性對我們的預測有多大的改變(與我們在該特性的某個基線值上進行預測相比)。假設我們想知道當球隊進了3個球而不是某個固定的底線時預測是什麼。如果我們能夠解決這個問題,我們可以對其他功能執行相同的步驟如下:

點擊此處查看完整代碼

因此,預測可以分解為如下圖:

這裡是一個更大視圖的連結

解釋

上面的解釋顯示了推動模型輸出從基本值(我們傳遞的訓練數據集中的平均模型輸出)到模型輸出的每個特性。將預測推高的特徵用紅色表示,將預測推低的特徵用藍色表示。

這裡的base_value是0.4979,而我們的預測值是0.7。

得分= 2對預測增加的影響最大,

而控球率對預測減少的影響最大。

練習

有一個比我在這裡解釋的更深層次的SHAP values理論,你可通過下面的連結了解得更全面:

https://www.kaggle.com/dansbecker/shap-values

4. SHAP Values 的高級用法

聚合許多SHAP Values有助於更詳細的了解模型。

相關焦點

  • 可解釋機器學習技術之後置全局可解釋詳解
    後置全局可解釋機器學習模型從大量訓練數據中自動地學習有用模式,並將學到的知識保存到模型結構和參數中。後置全局可解釋旨在為預先訓練的模型所獲得的知識提供全局解釋,並以直觀的方式對模型參數或學習得到的表示進行說明。我們將現有的模型分為傳統機器學習和深度學習兩類,這樣分類是因為我們能夠從每個類別中提取一些類似的解釋範例。
  • 「可解釋學習」利用SHAP對分子活性預測機器學習模型進行解釋
    文章利用可解釋學習方法SHAP(SHapley Additive exPlanation)對基於複雜機器學習模型的分子活性預測模型進行解釋,嘗試打開「黑箱」。但是,機器學習模型的難以解釋的特性一直為人們所詬病,尤其是預測精度高的模型往往複雜度更高和規模更大,解釋性(Interpretability)更差。而對於QSAR模型,其中分子結構與活性的關係比起普通的圖像識別任務中標籤和圖片關係更難以理解,這增加了解釋模型的難度。這些複雜的機器學習模型的解釋有著重要的意義,可以提高模型與真實實驗符合程度從而提升模型性能,以及輔助分子作用機理的探索等。
  • 一文讀懂可解釋機器學習簡史,讓你的模型再也不是「Black Box」
    儘管這個領域才剛剛起步,但是它在回歸建模和基於規則的機器學習方面的相關工作卻始於20世紀60年代。最近,arXiv上的一篇論文簡要介紹了解釋機器學習(IML)領域的歷史,給出了最先進的可解釋方法的概述,並討論了遇到的挑戰。 當機器學習模型用在產品、決策或者研究過程中的時候,「可解釋性」通常是一個決定因素。
  • 機器學習:向量的直觀解釋
    在機器學習中我們經常提到向量,究竟什麼是向量呢?在本文中,我們將首先研究向量的定義,然後對其數學運算進行直觀的解釋。定義向量我們在X、Y數字網格上繪製一個點(1,2),其中X代表水平方向,Y代表垂直方向。我們已經很好地定義了一個向量。
  • TensorFlow Lattice:靈活、可控、可解釋的機器學習
    字幕組雙語原文:TensorFlow Lattice:靈活、可控、可解釋的機器學習英語原文:TensorFlow Lattice: Flexible, controlled and interpretable ML翻譯:雷鋒字幕組(ZeroJ)大多數的機器學習實踐者都曾遇到過訓練數據和實際運行時用以評估模型的樣本差別很大的情況。
  • 五分鐘向長輩解釋機器學習,這樣最通俗!
    全文共2746字,預計學習時長5分鐘什麼是機器學習呢?如果是對此一竅不通的長輩來問你這個問題,你該如何回答?本文將用最簡單的詞彙來嘗試解釋這一話題,包括每個人都應該知道的最主要也是最重要的部分。解釋邪惡人工智慧時「必備」的終結者圖深度學習可能是你經常聽到的另一個時髦詞彙。
  • 看機器學習如何解釋混沌系統
    機器學習的方法能預測到的未來大大延長,比此前的預測方法能預測到的長了八倍,預測效果幾乎和真實情況完全匹配。  而且,這個算法對Kuramoto-Sivashinsky方程式本身一無所知;它只能看到方程式演進的數據。  這使機器學習方法變得更強大。因為,在許多情況下,由於不能確定描述混沌系統的方程式,動力學家無法對它們進行建模和預測。
  • 機器學習能模擬解釋?
    洛桑聯邦理工學院(Ecole Polytechnique Federale de Lausanne)、哥廷根大學(University of Gottingen)和維也納大學(University of Vienna)的研究人員進行了一項合作研究,將數據驅動的機器學習技術和量子力學結合起來,為這些問題提供了物理上的洞見。
  • 機器學習未來十年:你需要把握的趨勢和熱點
    從利用數據相關性來解決問題,過渡到利用數據間的因果邏輯來解釋和解決問題,是可解釋性機器學習需要完成的核心任務之一。為什麼需要解釋:知之為知之,不知為不知,是知也。機器學習模型基於歷史數據進行分析和決策。
  • 深度學習的可解釋性研究(一):讓模型「說人話」
    非常開心本文成為 BIGSCity 興趣組的第一篇投稿,《深度學習的可解釋性研究》系列預計包含 3-4 篇內容,用儘可能淺顯的語言帶領大家了解可解釋性的概念與方法以及關於深度學習可解釋性工作的研究成果,不定期更新內容(歡迎催更)。可解釋性是什麼?廣義上的可解釋性指在我們需要了解或解決一件事情的時候,我們可以獲得我們所需要的足夠的可以理解的信息。
  • 機器學習之父Michael I. Jordan 親臨2018全球機器學習技術大會
    Jordan(麥可.喬丹)要來了,不是籃球界的飛人喬丹,是機器學習界的開山鼻祖、人工智慧領域根目錄的人物之一;是機器學習領域唯一一位獲得美國科學院、美國工程院、美國藝術與科學院三院院士成就的科學家;是伯克利大學的著名機器學習實驗室AMP Lab的聯席主任。
  • 機器學習:Python中的四種機器學習技巧
    機器學習技術與算法眾所周知,機器學習是技術和算法的結合。但在開始關注技術和算法之前,讓我們看看它們是否是同一個東西。技術是解決問題的一種方法,這是一個非常通用的術語。 但是,當我們說我們有一個算法時,意思是我們有一個輸入,並希望從中得到一定的輸出,明確規定了實現目標的步驟。
  • 量子機器學習入門科普:解讀量子力學和機器學習的共生關係
    在這篇文章中,計算機科學碩士Reena Shaw將用通俗的語言和形象的比喻帶你入門量子機器學習。△ 本文作者Reena Shaw在2017年的微軟Ignite大會上,微軟CEO Satya Nadella用玉米迷宮的形象比喻解釋了經典計算機和量子計算機之間的差異——為了找到迷宮的出口,經典計算機先開啟一條搜索路徑,遇到障礙物後會沿原路返回。
  • 谷歌推出TFQ,一個可訓練量子模型的機器學習框架
    一個可快速建立量子機器學習模型原型的開源庫。TFQ提供了必要的工具,將量子計算和機器學習技術結合起來,以控制並建模自然或人工的量子計算系統。該框架可構建量子數據集、混合量子模型和經典機器學習模型原型、支持量子電路模擬器,以及訓練判別和生成量子模型。隨著近些年量子計算技術的發展,量子機器學習模型的研發可能會在醫學、材料、傳感和通信領域取得突破,甚至產生深遠影響。不過迄今為止,業界缺乏發現量子機器學習模型的研究工具。該模型可以處理量子數據並在可用的量子計算機上執行。
  • 機器學習團隊常用工具總結,人生苦短,我用Python!
    機器學習工具,初創公司最愛哪款?   近日,Reddit上一則帖子火了:發帖者詳細總結了近幾年初創公司的機器學習團隊在各個環節使用的機器學習工具,從軟體開發設置IDE,機器學習框架,到實驗管理,可視化工具等等。   評論區也一片火爆,大家紛紛作出補充,極大的豐富了現有最新主流資源。
  • 機器學習與統計學的爭論,有意義嗎?
    正是在這種情況下,Arthur Samuel(達特茅斯會議的與會者之一)在1959年提出了「機器學習」一詞,並將其定義為一種研究領域,即不進行顯式編程就可讓計算機進行學習的研究領域。 之所以有此定義是因為Samuels和他的同事們希望通過讓計算機擁有識別能力,並隨著時間的推移不斷改進這種能力來使得計算機變得更加「智能」。
  • 圖神經網絡GNN的可解釋性問題與解釋方法最新進展
    可以使用不同的解釋方法來完成。我們已經看到了許多應用於 CNN 的有趣的可解釋性方法,例如梯度歸因(Gradient attribution)、顯著性映射(Saliency maps)或類激活映射(Class activation mapping)等。那麼,為什麼不將它們重新用於 GNN 呢?
  • 機器學習才不只是統計學的美化!
    然而,機器學習真的只是被美化的統計學嗎?哈佛大學數據科學碩士、機器學習從業者Joe Davison認為,遠不止如此。他從統計學和機器學習分別出發,對比了兩者的不同之處,希望讓人們正確認知機器學習和人工智慧。這篇博客在海外科技網站Medium上獲得了超過7.4k的認同。
  • 機器學習與深度學習有什麼區別?
    作為人工智慧的核心技術,機器學習和深度學習也變得越來越火。一時間,它們幾乎成為了每個人都在談論的話題。那麼,機器學習和深度學習到底是什麼,它們之間究竟有什麼不同呢? 什麼是機器學習?機器學習(Machine Learning,ML)是人工智慧的子領域,也是人工智慧的核心。它囊括了幾乎所有對世界影響最大的方法(包括深度學習)。
  • 新手必看的十種機器學習算法
    ,開始嘗試用某些機器學習方法自動解決可以輕鬆採集數據的問題。機器學習領域有一條「沒有免費的午餐」定理。簡單解釋下的話,它是說沒有任何一種算法能夠適用於所有問題,特別是在監督學習中。線性回歸線性回歸可能是統計和機器學習領域最廣為人知的算法之一。以犧牲可解釋性為代價,預測建模的首要目標是減小模型誤差或將預測精度做到最佳。我們從統計等不同領域借鑑了多種算法,來達到這個目標。線性回歸通過找到一組特定的權值,稱為係數 B。通過最能符合輸入變量 x 到輸出變量 y 關係的等式所代表的線表達出來。