區域性可理解的與模型無關的解釋(LIME)技術介紹

OReillyData發表於2016-10-10

機器學習是近來許多科學和技術進步的核心。隨著計算機在諸如圍棋比賽中戰勝人類專業選手等案例裡所展現出的進步,許多人開始思考機器能否成為更好的司機或更好的醫生。

在機器學習的許多應用中,使用者常常被要求信任那些幫助他們進行決策的模型。但醫生肯定不能僅僅依據“模型就是這樣說的”來給病人動手術。即使是在低風險的場景裡,比如在 Netflix 上選擇一部電影觀看,我們也需要某種程度的信任來決定將幾個小時時間交付給模型的決策。儘管許多機器學習模型都是黑箱,理解模型預測背後的基本原理將肯定有助於幫助使用者決定什麼時候可以信任模型的預測或是不信任。如圖1所示,模型預測某個病人患有流感。然後該預測由一個直譯器來解釋,強調了對模型來說最重要的症狀。基於這些模型背後的推理資訊,醫生現在就有能力選擇是否信任這個模型了。

640?wx_fmt=jpeg

圖1:向人類決策者解釋單個預測。圖片來源:Marco Tulio Ribeiro

從某種意義上說,工程師每次將一個機器學習模型應用於生產系統時,他或她都隱含地表示信任模型將能夠做出合理的預測。這樣的信心通常是通過評估保留資料驗證的準確性或其它一些聚合評測來獲得的。但是,任何實踐過機器學習應用的人都知道,這些指標有時是非常有誤導性的。有時候,不應該使用的資料意外地混入了訓練資料和驗證資料中。有時候,模型會給出一些尷尬得難以接受的錯誤。這些和其它的問題說明,在決定一個模型是否值得信任時,能理解模型的預測可以成為一個有用的工具。這是因為人類通常有較好的直覺和商業智慧,而這些都難以在評估指標中獲得。如果在機器學習過程中有一個“挑選步驟”,即可以選擇某些典型的預測去解釋給人來聽,那麼這個過程就會類似於圖2。

640?wx_fmt=jpeg

圖2:向人類決策者解釋一個模型。圖片來源:Marco Tulio Ribeiro

在由Marco Tulio RibeiroSameer SinghCarlos Guestrin合作發表於 ACM 知識發現和資料探勘年會(KDD2016)上的論文《“為什麼我應該相信你?”解釋任何分類器的預測》中,我們對信任和解釋的問題進行了精細地探索。我們提出了區域性可理解的與模型無關的解釋技術(Local Interpretable Model-Agnostic Explanations: LIME),一種用於解釋任何機器學習分類器的預測的技術,並在多種與信任相關的任務中評估了它的可用性。

LIME 背後的直覺

因為我們希望能做到與預測模型無關,所以為了能理解模型內部的行為,我們所能做的是去幹涉輸入,然後觀察預測結果會怎樣變化。實驗表明這種做法在可解釋性上是有用的,這是因為我們可以通過改變人類可以理解的元件(比如單詞或影象的一部分)來改變輸入,即使模型使用的是更加複雜的元件(比如詞向量)作為輸入的特徵。

改變原有例項資料(比如移除部分單詞或隱藏影象的一部分)去學到的一個可解讀的模型(比如只帶有少量非零係數的線性模型),並用它來近似原有的底層模型。通過這個方法我們就得到了一個對原有模型的解釋。LIME 背後的關鍵直覺就是,通過一個簡單的模型來區域性地(在我們想要解釋的預測的附近)逼近一個黑箱模型會比全域性性地去逼近這個模型要容易得多。這個思想可以通過給改變後的輸入影象設定權重的方式來實現,而權重的值是改變後的圖形和我們想要解釋的例項的相似度的值。上面流感預測的例子裡,那三個強調的症狀就可能是預測這種型別病人的黑箱模型的準確近似,但它們可能並不能代表該模型在所有病人上的行為方式。

圖 3 所示的例子說明了LIME在影象分類上是如何工作的。假設我們想解釋一個可以預測圖片中是否包含樹蛙的分類器,我們可以藉助左邊被分解成可解讀的元件(連續超畫素)的影象。

640?wx_fmt=jpeg

圖3:將一張圖片轉換成可理解的多個元件。圖片來源:Marco Tulio Ribeiro和Pixabay

如圖 4 所示,我們通過“隱藏”一些可解讀元件生成一個修改過的例項的資料集(在這個例子中是將隱藏的元件都設定成灰色)。對於每一個被修改過的例項,模型都會以一定概率判斷影象例項是否包含樹蛙。然後我們就在這個區域性加權的資料集上得到了一個簡單的(線性)迴歸模型,而我們更關心在更接近原始影象的修改過的例項上出現的錯誤。最後,我們給出帶有最高正權重的超畫素作為解釋,將其它部分都改成灰色。

640?wx_fmt=jpeg

圖4:用LIME解釋一個預測。圖片來源:Marco Tulio Ribeiro和Pixabay

例子

我們使用 LIME 解釋了文字和影象領域內的大量分類器(比如隨機森林支援向量機神經網路)。下面是一些由它所生成的解釋的例子。

首先是一個本分類器的例子。20 newsgroups 資料集是此領域裡一個有名的基準資料,多篇論文中描述了使用這個資料集的不同模型。從中我們選取兩個比較難區分的分類,基督教(Christianity)和無神論(atheism),它們之間有很多相同的詞彙。訓練一個有 500 樹的隨機森林,我們在測試集上得到的準確率為 92.4%,高得驚人。如果準確率是我們能夠取信的唯一標準,我們能完全信任這個模型。然而,讓我們來看一下圖 5 所示的對測試集中的一個例子的解釋(使用開源軟體包中的一句 Python 程式碼即可實現):

exp = explainer.explain_instance(test_example, classifier.predict_proba, num_features=6)

640?wx_fmt=jpeg

圖5:20 newsgroups資料集上預測的解釋。圖片來源:Marco Tulio Ribeiro

這是一個分類器因為錯誤的原因卻準確地預測了樣本的分類的例子。額外的解釋顯示出“posting(郵件標頭的一部分)”一詞出現在無神論分類的訓練集中21.6% 的樣本上,但在基督教分類中只出現了兩次。測試資料集中的情況類似,該詞在 20% 的無神論樣本中出現,但在基督教分類中僅出現了兩次。資料集中的這種情況使得(這個資料集上的)分類問題要比真實世界的問題簡單得多,但在實際應用裡我們並不期待會有類似的模式出現。一旦你理解了這些模型實際是如何工作的,獲得這些洞察就變得很簡單,相應的也會促進模型的泛化能力更好。

第二個例子是解釋谷歌的Inception神經網路模型對影象做的分類。如圖 6所示,分類器預測這個影象是“樹蛙”類的概率最高,而“檯球”和“氣球”的概率低一些。我們的解釋揭示該分類器主要專注於蛙的面部作為此預測分類的依據。它也說明了為什麼“檯球桌”有非零概率,因為青蛙的爪子和眼與檯球非常地相似,特別是在綠色背景下。同樣,紅色的心臟也和紅氣球類似。

640?wx_fmt=jpeg

圖6:解釋Inception神經網路模型生成的預測。頭三名預測結果是“樹蛙”、“檯球桌”和“氣球”。圖片來源:Marco Tulio Ribeiro和Pixabay提供的樹蛙、檯球和熱氣球圖片。

我們論文所述的實驗表明機器學習專家和普通人都能從類似於圖5和圖6 這樣的解釋中獲益。能夠選擇哪個模型泛化的更好,能夠通過改變模型對模型進行改進,以及獲得模型行為的關鍵洞察。

結論

為了有好地與機器學習系統進行互動,信任是非常重要的。我們認為能解釋每個預測是獲取信任的一個有效方式。LIME是一個方便機器學習實踐者獲得這樣的信任的有效工具,也是一個值得加入他們的工具包的好選擇(說了我們已經提供了開源包了嗎?)。但在更好地解釋機器學習模型方面還有很多工作可以做。我們期待看到這個方向上有更多的研究成果出現。下面的視訊裡概況地介紹了LIME。在我們的論文裡有更多的細節。

640?wx_fmt=jpeg

Marco Tulio Ribeiro是華盛頓大學的一名博士生,與Carlos Guestrin一起工作。他的主要研究方向是讓人去理解模型和與機器學習模型的互動更加容易。

640?wx_fmt=jpeg

Sameer Singh博士是加州大學歐文分校的助理教授。他主要從事大規模、互動式機器學習和自然語言處理方面的研究。

640?wx_fmt=jpeg

Carlos Guestrin是Turi公司的CEO和華盛頓大學電腦科學與工程系的機器學習亞馬遜教授。他是全球知名的機器學習領域的領導者。卡洛斯在2008年被《流行科學雜誌》評為“最傑出的10人”之一。因為人工智慧領域的傑出貢獻,他在2009年獲得年度IJCAI計算機與思維獎,和美國青年科學家與工程師總統獎。

相關文章