LIME-论文阅读笔记
主要內容
- 人工智能中的可解釋性
- LIME算法思想
- LIME的前置條件
- LIME的目的
- 對于模型輸出的可解釋性(LIME)
- 對于模型行為的可解釋性(SP-LIME)
人工智能中的可解釋性
如今,機器學習乃至深度學習技術發展得如火如荼,各領域都能見到它們得身影,但是,大部分的模型對于人類而言,是一個“黑盒”,我們無從知曉模型運行背后的原理。這在許多場景下都不是一件好事,當我們希望利用模型作出某個決策時,良好的可解釋性能夠給我們更大的信心相信模型提供的輸出,不僅如此,我們還能依據模型的可解釋性去判斷模型是否合理,甚至是對其加以改進。因此可解釋性是一個很有意思的話題。
LIME算法思想
本文中提出的LIME全名為 Local Interpretable Model-agnostic Explanations,其基本思想是通過一個代理模型在某個“黑盒”模型的局部產生解釋,從而讓用戶理解模型在當前局部的行為。所謂局部,實質上指的就是數據集中的一條樣本。正因為這個特點,該算法是與模型無關的。并且,通過多個局部行為的解釋,算法能讓用戶對模型的全局行為產生insight。
LIME的前置條件
首先,我們希望使用一個代理模型在局部對模型進行解釋,因此,代理模型本身需要具備可解釋性,即我們只能使用例如決策樹,線性模型等具備高度可解釋性的模型。
其次,由于我們是對一條樣本進行解釋,因此樣本本身的形式也應當具備可解釋性,文中以文本數據以及圖像數據做例子,在NLP領域,文本大多使用詞嵌入技術,變成了一個高維向量,此時不具備可解釋性,因此,我們需要將其轉換為具備可解釋性的形式,比如詞袋模型,而圖像數據若以普遍的4維張量**[Batch,height,width,channel]** 來表示,同樣不具備可解釋性,這里我們將其轉換為super-pixels的形式。super-pixels大概思想是將小像素聚合為更大的單位,如下圖所示:
LIME的目的
此處,文章中提出一個觀點,即可解釋性有兩個方面的意義,一是對于模型的輸出本身的可解釋性,但這只是在一個局部對模型進行解釋,對理解模型本身的全局行為是不夠的,因此,又有第二個方面的意義,即對模型本身(可理解為全局)的解釋,試想有許多在驗證集上表現良好的模型泛化性能卻不行,因此,該算法提出從準確度以外的視角去觀察模型是很有意思的觀點。
對于模型輸出的可解釋性(LIME)
首先,是對于模型輸出的解釋,此處先定義一些符號:
黑盒模型:fff
可解釋模型: g∈Gg \in Gg∈G
這里GGG指的是一族可解釋模型,而ggg是其中一個,而在本文中,僅使用了線性回歸這一可解釋模型。
對于一個樣例而言,其原本的表示記為xxx,具備可解釋性的形式記為x′x'x′,此時,一個樣例的定義域為{0,1}\{0,1\}{0,1},每一個維度都代表一個特征的存在與否,例如詞袋模型表示某個單詞是否存在,而圖片則表示某個超像素是否存在。
對于可解釋模型而言,我們還需要定義其復雜度,顯然越簡單的模型,其可解釋性越高,在這,定義一個模型的復雜度為Ω(g)\Omega(g)Ω(g),例如,決策樹的復雜度由樹的深度衡量,而線性模型則由其非零權重的個數來衡量。
在模型的局部,算法會產生一個擾動數據集,并用可解釋模型來擬合,這些擾動數據采樣自樣本,做法是隨機挑選樣本中的非零特征構成擾動數據,即每一個擾動數據集中的數據都與原樣本有一定相似之處。這個做法也是比較符合直覺的,用可解釋模型擬合數據之間有相似特征的樣本,從而觀察黑盒模型做了什么。具體到線性模型來說,此時每一個擾動樣本z′z'z′為可解釋形式,我們需要將其轉換為黑盒模型可接受的形式zzz,并且每一個樣本的標簽就是黑盒模型對其的預測f(z)f(z)f(z)。
除此之外,還需要定義一個擾動樣本與原樣本之間相似程度的度量πx(z)\pi_x(z)πx?(z)
綜上,再定義一個衡量局部解釋保真度的函數:l(f,g,πx)\mathcal l(f,g,\pi_x)l(f,g,πx?)
最后,將局部的保真度以及可解釋模型本身的復雜度綜合考量,最終,優化目標為:
ξ(x)=argming∈Gl(f,g,πx)+Ω(g)\xi(x)\;=\;\underset{g\in G}{argmin}\mathcal l(f,g,\pi_x)\;+\;\Omega(g)ξ(x)=g∈Gargmin?l(f,g,πx?)+Ω(g)
算法流程:
算法核心即根據上文中的πx\pi_xπx?對樣本周圍進行采樣,從而形成一個擾動數據集ZZZ,在該數據集上,進行線性模型的擬合。而圖中的K-Lasso是一種特征選擇的算法,從而能夠使用部分而不是全部特征進行擬合。最終我們得到一個稀疏的線性模型。這個模型的權重即為我們所要的解釋。
對于模型行為的可解釋性(SP-LIME)
在局部,我們僅對一個樣例上,模型的行為進行了解釋,但是這無法從整體上看出模型的行為,因此,我們需要多一些樣本來幫助我們觀察模型的行為。但是,選擇合適的樣例對于用戶來說是一個門檻較高的事情,因此文中提出了SP(submodular-pick)LIME算法,自動地搜索合適的樣例。
在該算法中,首先需要定義一個由各個樣本的LIME所構成的“解釋”矩陣WWW
圖中,每一行代表一個樣本的解釋,每一列代表一個特征,即解釋中的一個權重。而算法挑選樣例主要從兩方面來考慮,首先是特征的多樣性,即挑選出來的樣例應該具有豐富的特征,二是特征的重要性,即挑選出來的特征應該在模型的決策過程有相當的話語權。
以上圖舉例,若該算法能夠充分考慮多樣性,則第二個樣例與第三個樣例僅有一個會被挑選出來,因為它們的解釋非常相似,無法為解釋模型行為提供更多信息。
對于重要性,對每個特征,定義重要性衡量函數I(xj)I(x_j)I(xj?),文中以文本數據舉例,則該函數簡單定義為∑i∈Nwij\sqrt {\sum_{i\in N} w_{ij}}i∈N∑?wij??即將特征對應的所有權重求和并開平方。
具體算法流程如下:
其中,Eq.4的式子為:
ccc的定義為:
該式子含義為:給定樣本集合VVV重要性衡量函數III以及“解釋”矩陣WWW計算其總體的重要性,式子中間的指示函數就體現了算法中的多樣性,即只要在解釋矩陣中有一個屬性在一個樣例上權重大于0,那么總體重要性就會將其考慮進去。而PickPickPick函數中的BBB代表的是用戶能容忍的最大樣例個數。
這樣,最大化總體重要性,就得到了一系列的優質樣本,幫助用戶理解模型。而SP-LIME也在實驗中確實比RP-LIME(Random Pick)發揮了更好的作用。
總結
以上是生活随笔為你收集整理的LIME-论文阅读笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OpenBSD身份验证绕过和权限提升漏洞
- 下一篇: latex编辑公式好用的在线网址