文章目錄
- what: 什么是可解釋性(interpretability)
- why: 為什么需要可解釋性
- how:如何進行可解釋性分析
- 個人理解
Kaggle Notebook GM 排名第二的 Dan Becker 在他的推送 What 70% of Data Science Learners Do Wrong 中特意提到了一點:
Learn how to interpret model output. For example, you need to understand measures of model accuracy to know if you can trust a model. Learn machine learning explainability techniques, like permutation importance.
這位大佬目前在kaggle上開源了180+個專家級別的notebook,那么受到這么重量級人物推薦的 模型可解釋性 到底是何方神圣,我們就來一探究竟,
what: 什么是可解釋性(interpretability)
可解釋性是以一種人類可理解的方式將特征值與模型預測聯系起來,使人們能夠認可模型預測結果,通俗一點說,就是把原本黑盒的模型變得透明化,使有經驗水平的用戶都可以明白模型的含義,
機器學習模型的可解釋性越高,人就越容易理解為什么做出某些決策或預測,如果一個模型 的決策比另一個模型的決策能讓人更容易理解,那么它就比另一個模型有更高的解釋性,
但這里要注意一點,假設有一個包含成千上萬neuron的神經網路,對其進行可解釋性分析需要細致地探究到每一個neuron如何傳播嗎?其實不然,可解釋性不需要知道網路里面的每一個數字,每一個矩陣,每一個激活函式,這里又要引出第二個問題,那就是我們為了什么需要可解釋性,
why: 為什么需要可解釋性
對于一個運行良好的機器學習模型,除了知道模型的預測是什么(例如,客戶流失的概率或某種藥物對病人的療效),還會涉及到模型為什么做出這樣的預測,

考慮一個哈士奇與狼分類器的例子,分類器將一些哈士奇誤分類為狼,使用可解釋的機器學習方法,你會發現錯誤分類是由于影像上的雪造成的,分類器學會了使用雪作為一個特征來將 影像分類為狼,這對于在訓練資料集中分離狼和哈士奇可能是有道理的,但在實際使用中則不然,
對于模型的可解釋性分析可以在一定程度上幫助人們更好的理解模型行為,有時候為了解釋預測結果甚至可以犧牲預測性能,
進行可解釋性分析,在建模階段,可以輔助開發人員理解模型,進行模型的對比選擇,必要時優化調整模型;在投入運行階段,可以向業務方解釋模型的內部機制,對模型結果進行解釋,比如銀行信用評分模型,需要向未通過的申請者解釋為何拒絕他們的申請,
對于可解釋性的需求,可以大致歸結于如下兩個方面:
-
渴望獲取知識(學習能力):如果模型僅給出預測而沒有解釋,那么我們無法捕獲到模型從資料中獲取的知識,
-
渴望找到事物不一致的原因(好奇心):如果機器學習模型拒絕了貸款申請,對于申請者來說,他們需要知道為什么結果與預期不一致,
當然,并非所有情況下模型都需要可解釋性:
- 在低風險的環境中使用的模型不需要,因為即使結果錯誤也不會造成嚴重后果(如電影推薦系統)
- 已經被廣泛研究和評估的方法 (例如,光學字符識別 OCR) 也不需要
how:如何進行可解釋性分析
根據可解釋性方法的作用階段,可以分為:
-
本質 (intrinsic): 通過限制機器學習模型的復雜性 (訓練階段) —> 采用結構簡單的具有可解釋性的機器學習模型,如單顆決策樹模型、線性模型,
-
事后 (post-hoc): 在訓練后通過分析特征輸入和輸出解釋模型 (預測階段)—>采用與模型無關的解釋方法,如置換特征重要性、特征依賴圖,
關于 可解釋的模型 和 模型無關方法,后續會分別介紹,
根據可解釋性方法的使用范圍,可以分為:
- 區域:解釋單個實體的預測行為,
- 全域:解釋整個模型的預測行為,
該部分的介紹會穿插在上面兩類方法的介紹中,
個人理解
對于模型可解釋性的需求在深度學習領域格外突出,試想某天無人駕駛車真的可以上路了,你真的會放開方向盤在車里刷手機嗎?只有當人們可以去解釋其背后的演算法,才能建立起人們與模型之間的信任,否則就只能靠漫長的實踐去證明,就像第一次使用支付寶時,大家都曾有過質疑:轉進去的錢安全嗎?最后阿里用時間證明了一切,
最后,想要成為一個高級演算法研究人員或者開發人員,理解模型的行為一定是繞不開的一環,希望我們都早日成為自己崇拜的那個人,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/246978.html
標籤:其他
上一篇:龍芯平臺harbor適配最新進展
下一篇:2020計算思維復習
