機器學習可解釋性系列 - 是什麼&為什麼&怎麼做

HoLoong發表於2020-09-30

機器學習可解釋性分析

可解釋性通常是指使用人類可以理解的方式,基於當前的業務,針對模型的結果進行總結分析

一般來說,計算機通常無法解釋它自身的預測結果,此時就需要一定的人工參與來完成可解釋性工作;

目錄:

  • 是什麼:什麼叫可解釋性;
  • 為什麼:為什麼要對模型結果進行解釋;
  • 怎麼做:如何有效的進行可解釋性工作;

是什麼

機器學習

介紹可解釋性之前,我們先來簡單看看什麼是機器學習,此處我們主要討論有監督機器學習,對於無監督、強化學習等不做主要分析;

機器學習是計算機基於資料做出的和改進預測行為的一套方法,舉例說明:

  • 房屋價格預測:基於歷史房屋的價格以及其他屬性資訊,訓練迴歸模型,並針對的房屋進行價格預測
  • 信用卡詐騙檢測:基於信用卡歷史消費記錄等資訊,訓練分類模型,並針對的刷卡行為進行異常檢測

有監督學習的目標是學習一個預測模型,將資料特徵(建設年份、大小、樓層、地段等)對映到輸出(房價),模型演算法通過估計引數(權重,比如線性迴歸)或者學習結構(樹型,比如決策樹)來學習,過程由一個最小化分數或者損失函式指導,例如在房屋價格預測,則是最小化預測與真實的價格差;

機器學習演算法執行在計算機上,從很多方面看是表現是優於人類的,比如速度、穩定性、可複製性等等,即便效能上略遜於人類,但是瑕不掩瑜,但是模型也有它的劣勢,那就是計算機通常無法有效的解釋模型的預測行為,這裡的解釋指的是說給人類聽,一個深度神經網路可能由幾百層網路百萬個引數組成,一個隨機森林可能由幾百棵決策樹組成,不管是在比賽中,還是實際工作中,表現最好的模型往往是複雜的整合模型,這就使得對他們的解釋愈發困難,超多的引數、複雜的結構、特徵的組合等等都阻擋了我們對結果的直觀理解,這在一定程度上傷害著我們對結果的信心;

因此,不管是從對業務擴充套件可信度結果分享中的哪個角度考慮,可解釋性都是機器學習中重要且有必要的一環;

可解釋性

可解釋性的一個特殊點在於它的衡量沒有一個量化的數學方法,主觀的定義是可解釋性是人們能夠理解模型決策原因的程度,這種理解是基於實際資料和業務下的理解,假設一個線性模型做房屋預測,模型中房屋大小房價影響最大,那麼這個結果是很容易理解的,也符合我們的主觀認知,如果換成深度神經網路來做預測,或者先對資料做了PCA等處理後再做預測,結果往往是人類沒法直接理解的,那麼從解釋性上看,明顯第一個模型的解釋性更好;

為什麼

進行可解釋性的原因:

  • 知其然更要知其所以然:人類的好奇心驅使下,問為什麼是很正常的一種思維,如果不能解釋預測結果,那麼就無法讓人們完全信任這個結果(現代醫學中西醫的接受度要高於中醫,除了科學帶來的普適性之外,西醫的可解釋性明顯要優於中醫,給人感覺更放心);
  • 從實際業務上考慮,假設我們的模型預測不給某人發放信用卡,那也應該提供一個不能發放的原因給到辦理業務的人員,另外針對某些特殊場景,比如癌症檢測自動駕駛等涉及人身安全的問題上,可解釋性提供了後續問題覆盤的基礎;

可解釋性讓我們更容易檢查以下性質:公平性隱私可靠性因果關係信任

怎麼做

可解釋性方法分類

針對不同型別的模型可以使用不能的可解釋性方法:

  • 本質的:本質上可解釋模型(比如短決策樹、簡單線性模型等),這一類模型由於自身的簡單性,可以針對其結果、迴歸權重等直接進行解釋;
  • 模型無關的:對於更普遍的情況,即複雜模型的解釋,需要使用模型無關方法,比如個體條件期望、特徵互動、累計區域性效應圖等;

實際工作中上述兩類方法都會使用,我一般的流程是先易後難,先從最簡單的方法開始進行可解釋性工作;

可解釋性評估

目前針對機器學習的可解釋性沒有統一的達成共識的標準,但是也有了一些初步的評估方法:

  • 應用級評估:由最終產品的使用使用者來評估其解釋性的好壞;
  • 人員級評估:類似應用級評估,區別是由測試人員代替終端使用者,優點是更廉價,缺點是效果與終端使用者會有差異,尤其是在某些專業領域,比如醫學等方面的機器學習產品;
  • 功能級評估:代理型解釋,例如我們用SVM訓練模型並預測房屋價格,使用區域性代理方法(比如決策樹)來解釋SVM的預測結果,也就是複雜模型做業務,簡單模型解釋其結果;

PS:在我們的乘客聚類專案中,一部分解釋性工作就類似代理型解釋,KMeans做聚類,隨機森林邏輯迴歸解釋結果;

解釋方法的性質

性質是用於判斷解釋方法自身好壞的方法,目前一個最大的難點在於大多數性質都沒法量化:

  • 表達能力:表達能力越好的解釋方法越能解釋複雜模型的預測結果,目前來看最好的表達能力是對深度神經網路的解釋,這一點也是很多大佬們的研究方向;
  • 半透明度:依賴於被解釋演算法模型的程度,例如對於本質上可解釋的模型的解釋方法就是高度透明的,而那些模型無關的演算法則半透明度基本為0,高透明度的優點是可以基於模型更多資訊來解釋,而低透明度優點在於移植性好;
  • 可移植性:與解釋方法與被解釋模型的依賴程度成反比,因此模型無關的解釋方法的可移植性是最好的;
  • 演算法複雜度:解釋方法自身演算法的計算複雜度;

單個解釋的性質:準確性保真度一致性穩定性可理解性確定性重要程度新穎性代表性

人性化的解釋

對外輸出結果時,什麼叫做好的解釋,人文科學研究表示:人類更喜歡較短的解釋,將正反兩面進行對比,異常情況單獨進行說明;

  1. 解釋具有對比性:人們關心的通常不是某個房屋為什麼被預測為100w,而是兩個情況類似的房屋,為什麼一個比另一個貴10w,因此解釋的重點在於說明兩個例子的差異,形成對比,這種強烈的對比感是人們容易接受的;
  2. 選擇性的解釋:針對真實情況,只選擇其中有代表性的幾個原因組成解釋,使得解釋更簡短;
  3. 解釋是社會性的:針對不同的被解釋人群進行區分對待,對於專業人員,可以更多從模型演算法出發,對於其他崗位同事可以更多從業務等領域出發;
  4. 異常要重點解釋:異常雖然在指標上沒有突出的體現(過於關注指標的表現會忽略藏在其中的異常例子),但是異常很吸引人們的注意力,因此對於異常例子的重點解釋是很重要的;
  5. 解釋是真實的:對於某些例子的解釋應該同樣適用於其他例子,至少是類似的例子上;
  6. 好的解釋與被解釋著的先驗知識是一致的:人類由於認知偏差會更相信自己知道的,比如我們都認為房子越大價錢越貴,那麼如果模型在某一類房屋上給出了面積越大,價錢便宜這樣一個解釋,這是很難被人們接收的,但是事實上模型為了更好的效能,可能進行了複雜的特徵互動、組合得出的結果,結果是對的,但是它的解釋卻很難被接受;
  7. 好的解釋是普遍性很可能的:比如房子越大價錢越貴,這就是一個普遍性很高的解釋,也確實很可能;

後續

後續會繼續出可解釋性相關文件,預計包括自身可解釋模型(線性迴歸、邏輯迴歸、決策樹等)、模型無關的解釋方法、工作中的真實專案中的解釋性工作;

最後

本文基於《可解釋性的機器學習》,作者 Christoph Molnar,譯者 朱明超;

相關文章