現代機器學習中的模型可解釋性概述
- 2019 年 12 月 10 日
- 筆記

作者 | Rui Aguiar
來源 | Medium
編輯 | 代碼醫生團隊
模型可解釋性是當今機器學習中最重要的問題之一。通常某些「黑匣子」模型(例如深度神經網絡)已部署到生產中,並且正在運行從工作場所安全攝像頭到智能手機的所有關鍵系統。令人恐懼的是,甚至這些算法的開發人員都無法理解為什麼正是這些算法真正做出了自己的決定,甚至更糟的是,如何防止對手利用它們。
儘管「黑匣子」算法的設計者面臨許多挑戰,但並非完全沒有希望。實際上,有許多方法可以闡明模型所做的決策。甚至有可能了解模型預測中哪些特徵最為突出。
在本文中,對機器學習中更深層模型的模型可解釋性進行了全面概述。希望解釋在傳統上被認為是「黑匣子」的更深層次的模型實際上可以令人驚訝地解釋。使用與模型無關的方法將可解釋性應用於所有不同種類的黑匣子模型。
部分依賴圖
部分依賴圖顯示了特徵對ML模型結果的影響。

回歸的偏相關方程
局部依賴通過將機器學習模型的輸出邊緣化到不感興趣的特徵的分佈上(以集合C中的特徵表示)而起作用。這使得偏相關函數顯示了關心的特徵(通過購買S集表示)與預測結果之間的關係。通過邊緣化其他特徵,得到了僅依賴於S中特徵的函數。這使得易於理解特定特徵的變化如何影響模型預測。例如,這裡有3個關於溫度,濕度和風速的PDP圖,與通過線性模型預測的單車銷量有關。

PDP用於溫度,濕度和風速,以解決單車數量就是結果的回歸問題。從這些圖中可以清楚地看出,溫度是決定租用多少輛單車的重要決定因素,溫度越高,租用的單車越多。
PDP甚至可以用於分類功能。以下是季節對單車租賃的影響。

季節對單車租賃影響的部分依賴圖
對於分類,偏相關圖顯示給定類別的給定不同特徵值的概率。處理多類問題的一個好方法是每個類一個PDP。
局部依賴圖法是有用的,因為它是全局的。它指出了某個功能與該功能所有值上的目標結果之間的全局關係。
好處
部分依賴圖非常直觀。如果讓所有數據點都假定該特徵值,則某個特徵在某個值的偏相關函數表示平均預測。
缺點
使用部分依賴函數,實際上最多只能建模兩個功能。
獨立性的假設:假設要繪製的要素與任何其他要素都不相關。例如,如果預測的是身高和體重之外的血壓,則必須假設身高與體重無關。出現這種情況的原因是,如果要繪製高度,則必須對重量的邊際分佈求平均值(反之亦然)。例如,這意味着對於一個很高的人,可以具有很小的權重,而在實際數據集中可能看不到。
想為模型實現一個PDP。從哪裡開始?
這是scikit-learn的實現。
https://scikit-learn.org/stable/modules/partial_dependence.html
排列特徵的重要性
置換特徵重要性是通過在置換特徵之後計算模型的預測誤差的變化來衡量特徵重要性的一種方法。如果特徵的值增加會增加模型誤差,則該功能「重要」,而如果值的排列會造成模型誤差不變,則該功能「不重要」。
該算法的工作原理如下:
input: a model f, feature matrix X, target vector Y and error measure L(y, f)
1. Estimate the original model error e⁰ = L(Y, f(x))
2. For each feature j:
– Generate feature matrix X' by permuting feature j in the original feature matrix X.
– Estimate the new error e¹=L(Y, f(X')) based off the model's predictions for the new data X'
– Calculate the permutation feature importance FI=e¹/e⁰. You can also use e¹-e⁰.
3. Sort the features by descending FI.
在按FI降序對要素進行排序後,可以繪製結果。這是單車租賃問題的置換特徵重要性圖。

單車出租的置換特徵重要性圖。您以清楚地看到,該模型將溫度和自2011年以來的天數視為最重要的功能。
好處
可解釋性:功能重要性是指功能失真時錯誤會增加多少。這很容易解釋和可視化。
置換功能的重要性提供了對模型行為的全局了解。
置換特徵的重要性不需要訓練新模型或重新訓練現有模型,只需將特徵改組即可。
缺點
目前尚不清楚應該為樣區使用訓練還是測試數據。
如果要素相關,則在對要素進行置換後,可能會獲得不切實際的樣本,從而使結果產生偏差。
向模型中添加關聯的功能可能會降低其他功能的重要性。
想為模型實現置換特徵的重要性。從哪裡開始?
這是eli5模型在Python中的實現。
https://eli5.readthedocs.io/en/latest/blackbox/permutation_importance.html
累積局部效應圖
ALE圖是部分依賴圖的更快,更公正的替代方法。測量特徵如何影響模型的預測。由於它們沒有偏見,因此它們處理相關功能要比PDP更好。
如果機器學習模型的特徵相關聯,則部分依賴圖將不可信,因為您可以通過更改單個特徵來生成實際上不太可能的樣本。ALE圖通過還基於要素的條件分佈來計算預測差異而不是平均值來解決此問題。一種解釋方式是考慮ALE
「讓我向您展示模型預測在功能的一個小的「窗口」中如何變化。」
這是ALE圖中發生的情況的直觀解釋。

ALE圖計算。將x1劃分為「窗口」。對於每個窗口中的所有點,當用窗口的上下邊界替換每個點時,計算預測的差異。
這也可以通過兩個功能來完成。

2D-ALE圖。與1D圖相同的基本思想,但是無需使用上下「窗口」範圍,而是可以計算網格中正方形的四個角的預測差異。
計算完每個窗口的預測差異後,即可生成ALE圖。

單車出租的ALE地塊。顯然溫度對單車租賃預測有很大影響,但是還可以看到,如果濕度高於某個點,則對單車租賃預測也有顯着影響。
ALE圖也可以用於分類特徵。

月份和單車租賃的ALE圖。1月和3月似乎對租用的單車數量影響不大,但12月和11月似乎有很大的負面影響。
好處
ALE圖是無偏的,這意味着它們可與相關特徵一起使用。
ALE圖的計算速度很快。
ALE圖的解釋很清楚。
缺點
ALE圖的實現複雜且難以理解。
如果要素緊密相關,則解釋仍然很困難。
二階或2D ALE圖可能難以解釋。
通常,最好是在PDP上使用ALE,特別是在期望相關功能的情況下。
想為模型實現ALE。從哪裡開始?
這是一個提供ALE實現的庫。
https://github.com/blent-ai/ALEPython
個人條件期望
單個條件期望(ICE)圖在每個數據點顯示一行。它產生了一個圖,該圖顯示了模型對數據點的預測如何隨要素在集合中所有數據點上的變化而變化。對於下面的圖,可以在訓練集單車租賃數據中查看所有實例中溫度,濕度和風速變化時的ICE圖。

單車共享的ICE圖
查看此圖,可能會問自己:查看ICE圖而不是PDP有什麼意義?似乎很難解釋。
PDP只能顯示功能與預測之間的平均關係。僅當要為其計算PDP的要素與其他要素之間的相互作用不相關時,這才行得通,但是在強而相關的相互作用的情況下,ICE圖表將更具洞察力。
好處
像PDP圖一樣,ICE圖也非常直觀易懂。
ICE圖解比PDP圖解可以更好地揭示異構關係。
缺點
ICE曲線一次只能顯示一個功能。
用這種方法產生的曲線圖可能難以閱讀和擁擠。
想為模型實現ICE。從哪裡開始?
這是ICE實現的可解釋性概述。
http://savvastjortjoglou.com/intrepretable-machine-learning-nfl-combine.html
替代模型
替代模型是經過訓練的近似黑匣子預測的可解釋模型(例如決策樹或線性模型)。通過解釋代理模型的決策,可以更好地理解黑匣子。
生成替代模型的算法很簡單。
1. Select a dataset X that you can run your black box model on.
2. For the selected dataset X, get the predictions of your black box model.
3. Select an interpretable model type (e.g. linear model or decision tree)
4. Train the interpretable model on the dataset X and the black box's predictions.
5. Measure how well the surrogate model replicates the predictions of the black box model.
6. Interpret the surrogate model.
一種衡量代理通過R平方度量標準複製黑盒的能力的方法:

R平方度量是一種測量代理模型捕獲的方差的方法。R平方值接近1表示代理模型很好地捕獲了方差,接近0表示代理模型很好地捕獲了方差,並且不能很好地解釋黑盒模型。
好處
這種方法很直觀:通過近似來了解黑匣子模型認為重要的內容。
易於度量:很明顯,可解釋模型在通過R平方度量值近似黑盒方面的表現如何。
缺點
線性模型可能無法很好地近似黑盒模型。
將得出有關黑匣子模型的結論,而不是有關實際數據的結論,因為將黑匣子的模型預測用作標籤而沒有看到真實的事實。
即使確實很好地估計了黑匣子模型,「可解釋」模型的可解釋性實際上也不能代表黑匣子模型學到的知識。
可能難以解釋可解釋的模型。
想實現代理模型。從哪裡開始?
這是代理模型實現的可解釋性概述。
http://savvastjortjoglou.com/intrepretable-machine-learning-nfl-combine.html
可解釋性的未來
隨着機器學習在日常生活中變得越來越重要,可解釋性的未來比以往任何時候都更加重要。相信一些趨勢將對可解釋性的未來進行分類,這將影響將來與AI模型的交互方式。
模型不可知性可解釋性重點
深度學習研究的所有趨勢都指出了這樣一個事實,即深度網絡並未滿足於當前的計算和數據限制。重要的是要認識到,隨着模型在從圖像識別到文本生成的各個方面越來越深入,需要一種可以在所有類型的模型中提供可解釋性的方法。機器學習在不同領域的應用越廣泛,泛化性將變得越來越有用。在此博客文章中討論的方法只是一個開始,但是需要從整體上更認真地考慮可解釋性,以便更好地理解為什麼為日常動力提供支持的機器學習系統正在做出決策。
自我解釋的模型
認為在將來會存在的大多數機器學習系統中,尚未出現的一種趨勢是可自我解釋的模型的思想。如今大多數系統只是出於用戶不透明的原因做出決策。相信將來會改變。如果自動駕駛汽車決定停車,將知道原因。如果Alexa無法理解句子,它將詳細告訴出了什麼問題以及如何更清楚地表達查詢。使用可以自我解釋的模型,可以更好地了解生活中的ML系統如何工作。
加強模型審查
最後,已將黑匣子模式審查推到了幕後。不了解模型正在做出的決策,而且似乎並沒有特別困擾任何人。將來這將不得不改變。當模型開始犯錯誤時,工程師和數據科學家將被追究責任,這將導致一種趨勢,即將以與訓練模型數據集相同的嚴格性來檢查模型做出的決策。
參考文獻:
這裡的大多數示例都是從出色的可解釋性機器學習書中獲得啟發的。
https://christophm.github.io/interpretable-ml-book/