機器學習可解釋性分析
可解釋性一般是指使用人類能夠理解的方式,基於當前的業務,針對模型的結果進行總結分析;算法
通常來講,計算機一般沒法解釋它自身的預測結果,此時就須要必定的人工參與來完成可解釋性工做;安全
目錄:網絡
- 是什麼:什麼叫可解釋性;
- 爲何:爲何要對模型結果進行解釋;
- 怎麼作:如何有效的進行可解釋性工做;
是什麼
機器學習
介紹可解釋性以前,咱們先來簡單看看什麼是機器學習,此處咱們主要討論有監督機器學習,對於無監督、強化學習等不作主要分析;機器學習
機器學習是計算機基於數據作出的和改進預測或行爲的一套方法,舉例說明:函數
- 房屋價格預測:基於歷史房屋的價格以及其餘屬性信息,訓練迴歸模型,並針對新的房屋進行價格預測;
- 信用卡詐騙檢測:基於信用卡歷史消費記錄等信息,訓練分類模型,並針對新的刷卡行爲進行異常檢測;
有監督學習的目標是學習一個預測模型,將數據特徵(建設年份、大小、樓層、地段等)映射到輸出(房價),模型算法經過估計參數(權重,好比線性迴歸)或者學習結構(樹型,好比決策樹)來學習,過程由一個最小化分數或者損失函數指導,例如在房屋價格預測,則是最小化預測與真實的價格差;性能
機器學習算法運行在計算機上,從不少方面看是表現是優於人類的,好比速度、穩定性、可複製性等等,即使性能上略遜於人類,可是瑕不掩瑜,可是模型也有它的劣勢,那就是計算機一般沒法有效的解釋模型的預測行爲,這裏的解釋指的是說給人類聽,一個深度神經網絡可能由幾百層網絡、百萬個參數組成,一個隨機森林可能由幾百棵決策樹組成,不論是在比賽中,仍是實際工做中,表現最好的模型每每是複雜的集成模型,這就使得對他們的解釋愈發困難,超多的參數、複雜的結構、特徵的組合等等都阻擋了咱們對結果的直觀理解,這在必定程度上傷害着咱們對結果的信心;學習
所以,不論是從對業務擴展、可信度、結果分享中的哪一個角度考慮,可解釋性都是機器學習中重要且有必要的一環;測試
可解釋性
可解釋性的一個特殊點在於它的衡量沒有一個量化的數學方法,主觀的定義是可解釋性是人們可以理解模型決策緣由的程度,這種理解是基於實際數據和業務下的理解,假設一個線性模型作房屋預測,模型中房屋大小對房價影響最大,那麼這個結果是很容易理解的,也符合咱們的主觀認知,若是換成深度神經網絡來作預測,或者先對數據作了PCA等處理後再作預測,結果每每是人類無法直接理解的,那麼從解釋性上看,明顯第一個模型的解釋性更好;代理
爲何
進行可解釋性的緣由:文檔
- 知其然更要知其因此然:人類的好奇心驅使下,問爲何是很正常的一種思惟,若是不能解釋預測結果,那麼就沒法讓人們徹底信任這個結果(現代醫學中西醫的接受度要高於中醫,除了科學帶來的普適性以外,西醫的可解釋性明顯要優於中醫,給人感受更放心);
- 從實際業務上考慮,假設咱們的模型預測不給某人發放信用卡,那也應該提供一個不能發放的緣由給到辦理業務的人員,另外針對某些特殊場景,好比癌症檢測、自動駕駛等涉及人身安全的問題上,可解釋性提供了後續問題覆盤的基礎;
可解釋性讓咱們更容易檢查如下性質:公平性、隱私、可靠性、因果關係、信任;
怎麼作
可解釋性方法分類
針對不一樣類型的模型可使用不能的可解釋性方法:
- 本質的:本質上可解釋模型(好比短決策樹、簡單線性模型等),這一類模型因爲自身的簡單性,能夠針對其結果、迴歸權重等直接進行解釋;
- 模型無關的:對於更廣泛的狀況,即複雜模型的解釋,須要使用模型無關方法,好比個體條件指望、特徵交互、累計局部效應圖等;
實際工做中上述兩類方法都會使用,我通常的流程是先易後難,先從最簡單的方法開始進行可解釋性工做;
可解釋性評估
目前針對機器學習的可解釋性沒有統一的達成共識的標準,可是也有了一些初步的評估方法:
- 應用級評估:由最終產品的使用用戶來評估其解釋性的好壞;
- 人員級評估:相似應用級評估,區別是由測試人員代替最終用戶,優勢是更廉價,缺點是效果與最終用戶會有差別,尤爲是在某些專業領域,好比醫學等方面的機器學習產品;
- 功能級評估:代理型解釋,例如咱們用SVM訓練模型並預測房屋價格,使用局部代理方法(好比決策樹)來解釋SVM的預測結果,也就是複雜模型作業務,簡單模型解釋其結果;
PS:在咱們的乘客聚類項目中,一部分解釋性工做就相似代理型解釋,KMeans作聚類,隨機森林、邏輯迴歸解釋結果;
解釋方法的性質
性質是用於判斷解釋方法自身好壞的方法,目前一個最大的難點在於大多數性質都無法量化:
- 表達能力:表達能力越好的解釋方法越能解釋複雜模型的預測結果,目前來看最好的表達能力是對深度神經網絡的解釋,這一點也是不少大佬們的研究方向;
- 半透明度:依賴於被解釋算法模型的程度,例如對於本質上可解釋的模型的解釋方法就是高度透明的,而那些模型無關的算法則半透明度基本爲0,高透明度的優勢是能夠基於模型更多信息來解釋,而低透明度優勢在於移植性好;
- 可移植性:與解釋方法與被解釋模型的依賴程度成反比,所以模型無關的解釋方法的可移植性是最好的;
- 算法複雜度:解釋方法自身算法的計算複雜度;
單個解釋的性質:準確性、保真度、一致性、穩定性、可理解性、肯定性、重要程度、新穎性、表明性;
人性化的解釋
對外輸出結果時,什麼叫作好的解釋,人文科學研究表示:人類更喜歡較短的解釋,將正反兩面進行對比,異常狀況單獨進行說明;
- 解釋具備對比性:人們關心的一般不是某個房屋爲何被預測爲100w,而是兩個狀況相似的房屋,爲何一個比另外一個貴10w,所以解釋的重點在於說明兩個例子的差別,造成對比,這種強烈的對比感是人們容易接受的;
- 選擇性的解釋:針對真實狀況,只選擇其中有表明性的幾個緣由組成解釋,使得解釋更簡短;
- 解釋是社會性的:針對不一樣的被解釋人羣進行區分對待,對於專業人員,能夠更多從模型算法出發,對於其餘崗位同事能夠更多從業務等領域出發;
- 異常要重點解釋:異常雖然在指標上沒有突出的體現(過於關注指標的表現會忽略藏在其中的異常例子),可是異常很吸引人們的注意力,所以對於異常例子的重點解釋是很重要的;
- 解釋是真實的:對於某些例子的解釋應該一樣適用於其餘例子,至少是相似的例子上;
- 好的解釋與被解釋着的先驗知識是一致的:人類因爲認知誤差會更相信本身知道的,好比咱們都認爲房子越大價錢越貴,那麼若是模型在某一類房屋上給出了面積越大,價錢便宜這樣一個解釋,這是很難被人們接收的,可是事實上模型爲了更好的性能,可能進行了複雜的特徵交互、組合得出的結果,結果是對的,可是它的解釋卻很難被接受;
- 好的解釋是廣泛性和極可能的:好比房子越大價錢越貴,這就是一個廣泛性很高的解釋,也確實極可能;
後續
後續會繼續出可解釋性相關文檔,預計包括自身可解釋模型(線性迴歸、邏輯迴歸、決策樹等)、模型無關的解釋方法、工做中的真實項目中的解釋性工做;
最後
本文基於《可解釋性的機器學習》,做者 Christoph Molnar,譯者 朱明超;