机器学习可解释性
目錄
什么是可解釋性
為什么需要可解釋性
神經(jīng)網(wǎng)絡(luò)可解釋性的分類
?
?1. 按照邏輯規(guī)則解釋(Rule as Explanation)
2. 按照語義進(jìn)行解釋
3. 通過示例進(jìn)行解釋
4. 按照屬性解釋
LIME相關(guān)介紹
可解釋性總結(jié)
什么是可解釋性
????????理想情況下,嚴(yán)謹(jǐn)?shù)臄?shù)學(xué)符號(hào)-邏輯規(guī)則是最好的解釋。 但是實(shí)際上人們往往不強(qiáng)求“完整的解釋”,只需要關(guān)鍵信息和一些先驗(yàn)知識(shí)。
????????不同領(lǐng)域的模型解釋需要建立在不同的領(lǐng)域術(shù)語之上,不可能或者目前難以用數(shù)學(xué)邏輯符號(hào)來解釋。例如計(jì)算機(jī)視覺中的image patches,NLP中的單詞等。而可理解的術(shù)語可以理解為計(jì)算機(jī)跟我們?nèi)祟惸軌驕贤ǖ恼Z言。以前我們很多研究關(guān)于人類跟計(jì)算機(jī)表達(dá)的語言例如計(jì)算機(jī)指令,現(xiàn)在是反過來計(jì)算機(jī)根據(jù)現(xiàn)有的模型給我們解釋。
????????Lipton 的 文章?The Mythos of Model Interpretability?試圖說明什么是可解釋性,他在文章中問了很多發(fā)人深思的問題。比如,我們什么時(shí)候需要可解釋能力?如果一個(gè)模型的精確度很高,百分百正確,我們可能不需要可解釋能力。如果一個(gè)模型精度不夠高,我們就會(huì)急切想知道機(jī)器為何出錯(cuò)。如果機(jī)器出錯(cuò)的地方,也是人類出錯(cuò)的地方,那么人們可能將心比心,不會(huì)削弱對(duì)機(jī)器的信任。對(duì)于人類不容易出錯(cuò),但機(jī)器卻出錯(cuò)的地方,人類對(duì)機(jī)器的信任度就會(huì)急劇降低。比如對(duì)抗樣本攻擊,在熊貓圖片中加些精心設(shè)計(jì)的噪聲,人類仍然能容易的識(shí)別出是熊貓,機(jī)器卻會(huì)將其判斷為長(zhǎng)臂猿。這時(shí)候,人類就急切的需要知道機(jī)器為何會(huì)做出這種判斷。人類需要可解釋能力的另一個(gè)原因是機(jī)器與人類目標(biāo)的錯(cuò)位。有時(shí)候人類想要的是因果關(guān)系,但監(jiān)督學(xué)習(xí)給出來的只是相關(guān)關(guān)系。還有可能機(jī)器在offline 數(shù)據(jù)上做了訓(xùn)練,但當(dāng)部署到日常生活中,會(huì)有輸入不一致,輸入隨時(shí)間變化,輸入空間因?yàn)闄C(jī)器的部署而發(fā)生變化等各種問題。這種時(shí)候,人類一定想知道究竟發(fā)生了什么呢?是不是輸入空間的一個(gè)很小的改變,引起了蝴蝶效應(yīng)般的模型輸出的發(fā)散?類似的輸入會(huì)不會(huì)得到穩(wěn)定的輸出?我們知不知道模型的每一個(gè)參數(shù)代表什么意思?
????????可解釋性是一個(gè)很寬泛的概念。比如我們知道模型出錯(cuò)的概率是多少,知道對(duì)于哪些輸入會(huì)出錯(cuò)是可解釋性。知道模型如何運(yùn)作,對(duì)輸入的某個(gè)特征微調(diào),模型的輸出與人類的經(jīng)驗(yàn)符合算可解釋性。而且,線性模型不一定比深度神經(jīng)網(wǎng)絡(luò)的可解釋性好。為了達(dá)到相同的預(yù)測(cè)精度,線性模型可能利用了非常復(fù)雜的手工構(gòu)造的特征,而很多這樣的特征是不可分解的。相反,神經(jīng)網(wǎng)絡(luò)的特征 activation map 可以通過語言,可視化以及聚類的方法被人類所理解。給圖像打標(biāo)簽的任務(wù),就是一種對(duì)深度學(xué)習(xí)分類器的語言解釋。而 Saliency map 則是可視化解釋。聚類也是一種解釋,如果一只狗長(zhǎng)得很像貓,機(jī)器將其誤判為貓的錯(cuò)誤就很容易被人類諒解。
為什么需要可解釋性
????????機(jī)器學(xué)習(xí)模型分白盒子模型和黑盒子模型。簡(jiǎn)單的線性模型,單棵決策樹屬于白盒子模型,其將輸入映射為輸出的方式,可被人類完全理解。而由許多決策樹組成的隨機(jī)森林,提升樹,以及深度神經(jīng)網(wǎng)絡(luò)都屬于黑盒子模型。這些模型輸入到輸出的映射非常復(fù)雜,想完整了解整個(gè)機(jī)器的內(nèi)部運(yùn)作方式,幾乎不可能。
- 高可靠性的要求’
a)神經(jīng)網(wǎng)絡(luò)在實(shí)踐中經(jīng)常有難以預(yù)測(cè)的錯(cuò)誤(進(jìn)一步的研究是對(duì)抗樣本攻擊與防御),這對(duì)于要求可靠性較高的系統(tǒng)很危險(xiǎn)
b)可解釋性有助于發(fā)現(xiàn)潛在的錯(cuò)誤;也可以通過debug而改進(jìn)模型
c) 機(jī)器學(xué)習(xí)模型在重要領(lǐng)域部署之前應(yīng)該達(dá)到足夠的預(yù)測(cè)精度,而且精度不能因?yàn)槭喇悤r(shí)移而降低,擁有在線更新能力,與時(shí)俱進(jìn)。同時(shí),應(yīng)該在對(duì)抗樣本上經(jīng)過充分訓(xùn)練,對(duì)簡(jiǎn)單的對(duì)抗樣本攻擊免疫。
- t透明性
????????機(jī)器需要對(duì)不確定的輸入和輸出及時(shí)預(yù)警,報(bào)錯(cuò),并將最終決策權(quán)交予人類。其內(nèi)部決策過程,需要時(shí)刻以可視化,或其他人類智能可理解的方式呈現(xiàn)給人類觀察員。透明性非常重要,在最近的兩起波音737 Max飛機(jī)墜毀事故中,其中一起人類與自動(dòng)控制系統(tǒng)搏斗了10分鐘,最終不敵自動(dòng)控制系統(tǒng)而無奈墜毀。如果機(jī)器做出決策的過程透明,有預(yù)警,并及時(shí)向人類觀察員移交控制權(quán),那么將可避免此事故。這可能是一個(gè)不正確的例子,因?yàn)椴ㄒ麸w機(jī)的這部分自動(dòng)控制系統(tǒng)并沒有用到人工智能技術(shù)。
- 倫理/法規(guī)的要求
????????其決策需要符合人類的價(jià)值觀,世界觀和道德觀,要公平無偏見,擁有對(duì)這個(gè)世界的熱愛,對(duì)造物主人類的感恩,對(duì)人類文明傳承的責(zé)任感。斯坦福的以人為本AI研究院走的就是這條路。
神經(jīng)網(wǎng)絡(luò)可解釋性的分類
?1. 按照邏輯規(guī)則解釋(Rule as Explanation)
?第一種方法是分解法,遍歷所有特征的排列組合
?分解法最簡(jiǎn)單,但是缺點(diǎn)也是顯而易見的,就是時(shí)間復(fù)雜度太高,雖然KT算法有所優(yōu)化,但是指數(shù)形式的復(fù)雜度還是難以投入實(shí)際使用。
第二種方法:教育法[1]
?DecText-決策樹抽取器,主要采用經(jīng)過黑箱子的數(shù)據(jù)來抽取黑箱子的規(guī)則,并且與其他決策樹不同的是,該方法除了使用標(biāo)記數(shù)據(jù)還可以使用未標(biāo)記數(shù)據(jù)以及隨機(jī)數(shù)據(jù),只要經(jīng)過神經(jīng)網(wǎng)絡(luò)黑箱子都可以獲得標(biāo)簽。對(duì)比僅用訓(xùn)練集,由于傳統(tǒng)決策樹進(jìn)行生成葉子比生成其根的可信度還要低(因?yàn)槟苡糜趧澐纸缦薜臄?shù)據(jù)越來越少)。所以DecText有一個(gè)優(yōu)勢(shì)就是可以利用更多的無標(biāo)記數(shù)據(jù)甚至隨機(jī)數(shù)據(jù)進(jìn)行補(bǔ)充。
這個(gè)方法有兩大缺點(diǎn)。一、無標(biāo)記數(shù)據(jù)或者隨機(jī)數(shù)據(jù)其實(shí)有很多是超過解釋的意義,例如人臉識(shí)別,如果我們倒入一些不及格的人臉甚至隨機(jī)的圖像,決策樹也會(huì)對(duì)這些圖像進(jìn)行開枝散葉,降低了真正解釋人臉的枝葉的占比。二、決策樹不能表達(dá)太深的網(wǎng)絡(luò),決策樹越深,性能會(huì)急劇下降,可解釋性也越差。
Tree Regulartion[2]提出了樹正則的方法,來抑制了樹的深度。
樹正則通過引入深度損失正則項(xiàng),在優(yōu)化時(shí)候會(huì)抑制樹的深度。而樹的深度則是通過一個(gè)簡(jiǎn)單的預(yù)估網(wǎng)絡(luò)進(jìn)行預(yù)估,需要的參數(shù)就是主網(wǎng)絡(luò)的參數(shù)。
2. 按照語義進(jìn)行解釋
從宏觀角度了解,例如卷積神經(jīng)網(wǎng)絡(luò),淺層的卷積網(wǎng)絡(luò)往往關(guān)注更基礎(chǔ)的圖像信息例如紋理、顏色等,而越往上層則越能抽象出更豐富的語義,例如人臉識(shí)別的眼睛、鼻子等。其中經(jīng)典代表就是計(jì)算機(jī)視覺中的經(jīng)典方法-可視化[3]
可視化的方法非常多,比如說有一個(gè)華人的博士就可視化了CNN,把每一層都展示得非常清楚,只需要在網(wǎng)頁上點(diǎn)擊對(duì)于的神經(jīng)元,就可以看到工作流程。
一位維也納的小哥,本來搞unity3D特效開發(fā)的,他把整個(gè)CNN網(wǎng)絡(luò)用3d的形式可視化了出來。
另外一種主動(dòng)的按照語義進(jìn)行解釋的代表作:可解釋卷積神經(jīng)網(wǎng)絡(luò)[4](Interpretable convolutional neural networks.)與傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)不同的是,ICNN的每一個(gè)卷積核盡量只代表一種概念,例如,傳統(tǒng)的卷積核對(duì)貓的頭或者腳都有較大的激活值,而ICNN只能選擇最大的一種。
3. 通過示例進(jìn)行解釋
這種方法容易理解,是一種直觀方法:尋找和待解釋的樣本最“相似”的一個(gè)訓(xùn)練樣本,典型的代表作 Understanding black-box predictions via inflfluence functions,[5]
4. 按照屬性解釋
按照屬性解釋目前內(nèi)容上最。如前面提及到,決策樹等透明模型難以模仿復(fù)雜的神經(jīng)網(wǎng)絡(luò),那怎么解決呢?針對(duì)此問題研究的代表作有:Why should i trust you?: Explaining the predictions of any classififier[6]
由于LIME不介入模型的內(nèi)部,需要不斷的擾動(dòng)樣本特征,這里所謂的樣本特征就是指圖片中一個(gè)一個(gè)的像素了。但如果LIME采樣的特征空間太大的話,效率會(huì)非常低,而一張普通圖片的像素少說也有上萬個(gè)。若直接把每個(gè)像素視為一個(gè)特征,采樣的空間過于龐大,嚴(yán)重影響效率;如果少采樣一些,最終效果又會(huì)比較差。所以針對(duì)圖像任務(wù)使用LIME時(shí)還需要一些特別的技巧,也就是考慮圖像的空間相關(guān)和連續(xù)的特性。不考慮一些極小特例的情況下,圖片中的物體一般都是由一個(gè)或幾個(gè)連續(xù)的像素塊構(gòu)成,所謂像素塊是指具有相似紋理、顏色、亮度等特征的相鄰像素構(gòu)成的有一定視覺意義的不規(guī)則像素塊,我們稱之為超像素。
其他的還有:用意想空間的對(duì)話系統(tǒng)[8]
這種解釋的類型是最有深度而且也是用戶最容易理解的。但是對(duì)AI模型和訓(xùn)練難度也更高了。目前這方面的研究屈指可數(shù)。
LIME相關(guān)介紹
LIME是局部線性可解釋性。一旦假設(shè)了局域線性,那么就可以用一個(gè)線性模型來近似得到黑盒模型在一個(gè)特定輸入x?附近的行為。這就是 LIME 的思想。
如下圖所示,任務(wù)目標(biāo)是對(duì)紅十字和藍(lán)色圓點(diǎn)進(jìn)行分類,神經(jīng)網(wǎng)絡(luò)學(xué)到的分類器可能給出很復(fù)雜的分類邊界,即粉紅區(qū)域與淺藍(lán)區(qū)域的分界線,所有的紅色十字都在邊界包圍的粉紅區(qū)域內(nèi),而藍(lán)色圓點(diǎn)在淺藍(lán)區(qū)域。如果想從全局層面解釋清楚此神經(jīng)網(wǎng)絡(luò)在整個(gè)輸入空間如何工作,用語言描述則非常困難,因?yàn)闊o法精確表示這條彎彎曲曲的分界線。但如果用視覺來向另一個(gè)人類解釋,則相對(duì)簡(jiǎn)單,只要用手指出整個(gè)邊界即可。而物理學(xué)家做的,是用數(shù)學(xué)公式把這條分界線表示出來。數(shù)學(xué)公式可以被不同的人理解,所以是一種除了語言,視覺之外的可以實(shí)現(xiàn)共情的解釋方式。LIME 做的就簡(jiǎn)單多了,只要找出那條虛線,就可以局部的解釋為什么神經(jīng)網(wǎng)絡(luò)對(duì)一個(gè)特定的輸入做出目前的分類。
如果輸入是圖片,那么LIME會(huì)將圖片按邊界分割,并將類似的像素劃歸為超級(jí)像素,通過隨機(jī)的丟掉某些超級(jí)像素,構(gòu)造不完整輸入 x',輸入神經(jīng)網(wǎng)絡(luò),檢查分類概率的變化 f(x'),來獲得某些圖片區(qū)域?qū)Ψ诸惖闹匾浴IME 已經(jīng)開源,可以簡(jiǎn)單的通過 pip 安裝,
pip install lime使用方法在Github頁面有介紹
使用 LIME 對(duì)一張大象的照片進(jìn)行分析,看看神經(jīng)網(wǎng)絡(luò) Inceptionv3 模型通過什么得到這是一只大象的結(jié)論。如下圖所示,象鼻,眼睛,耳朵都是對(duì)分類起重要作用的區(qū)域。
可解釋性總結(jié)
【參考資料】
主要參考 機(jī)器學(xué)習(xí)小談?神經(jīng)網(wǎng)絡(luò)的可解釋性綜述 - 知乎 (zhihu.com)
總結(jié)
- 上一篇: 【综述】深度长尾学习
- 下一篇: Pycharm下载tensorflow问