深度學習模型中,可解釋性差體現在哪些方面?導致深度學習模型可解釋性差的原因又是什麼?


深度神經網路在近幾年迅速發展,被成功地應用於圖像分類、 語音識別、自然語言處理等多個領域,取得了與人類相媲美的 準確率。但是由於深度神經網路的非線性特徵,其內部的工作 機理難以解釋,所以深度神經網路通常被認為是「黑箱」模 型。在例如醫療、自動駕駛等很多的應用場景下,如果模型不 能夠為自己的決策作出解釋,就很難建立有效的人機雙向溝通 機制,因而限制了這些深度學習系統在數據驅動相關分析中的 應用。

什麼是解釋?

解釋就是在觀察的基礎上進行思考,合理地說明事物變化的原因,事物之間的聯繫,或者是事物發展的規律。

什麼是可解釋性?

可解釋性是指人類能夠理解決策原因的程度。

17 年 ICML 的 Tutorial 中給出的關於可解釋性的定義是:

Interpretation is the process of giving explanations to Human.

什麼是深度學習可解釋性差?

深度學習可解釋性差,意思就是我們很難去說明一條樣本數據灌進一個神經網路出來這樣一個預測結果的原因,這造成的直接後果就是很多時候我們不清楚如何針對一個神經網路做優化。

為什麼說神經網路是個黑箱?

神經網路是「黑箱」,其含義至少有以下兩個方面:一、神經網路特徵或決策邏輯在語義層面難以理解;二、缺少數學工具去診斷與評測網路的特徵表達能力(比如,去解釋深度模型所建模的知識量、其泛化能力和收斂速度),進而解釋目前不同神經網路模型的信息處理特點。

深度學習為什麼需要可解釋性?

我們對深度學習模型的可解釋性的需求主要來源於對問題和任務瞭解得還不夠充分。對模型可解釋性的探究就是在探尋模型work well的原理,瞭解到了原理,也許就不需要進行很多無用的模型調參工作,優化的方向也會更有方向性。從模式識別的角度來看,模型本身也意味著知識(或者說模型本身存儲了一些模式知識),我們希望知道模型究竟從數據中學到了哪些知識(以人類可以理解的方式表達的)從而產生了最終的決策。從中是不是可以幫助我們發現一些潛在的關聯。比如我想基於深度學習模型開發一個幫助醫生判定病人風險的應用,除了最終的判定結果之外,我可能還需要了解模型產生這樣的判定是基於病人哪些因素的考慮。

神經網路可解釋性領域研究?

目前神經網路可解釋性領域中相關研究的用途大致可以分類為以下三個層面:

  • 神經網路知識表達的可視化、結構化、和語義化,即open the black box,讓人看明白一個神經網路建模了哪些視覺特徵。目前大部分關於網路可解釋性的研究工作,在做這個問題。
  • 對神經網路的預測結構給出定量的評測和解釋。定量的解釋關係到神經網路是否能夠贏得人們的信任。如果我們僅僅讓神經網路在ImageNet上做圖片分類,那麼可解釋性可能不那麼重要。但是,如果人們需要神經網路做出重大判斷,比如對手術方案的推薦或對金融投資方案的推薦,人們往往需要具體每個預測結果做出定量的解釋,以贏得人們的信任。比如,當神經網路為某個預測結果打分為0.9,那麼人們希望知道0.9中多少得分來源於因素A,多少得分來源於因素B,多少得分是很難解釋出來的。
  • 無監督或弱監督地將神經網路混亂的知識表達簡化為可解釋的圖模型表達,並基於語義層面可解釋的圖模型,進行「中層對端」的訓練和學習。如何把神經網路的黑箱表達拆分為具有特定功能的網路模塊,如何把中層卷積核的混合特徵表達拆分成語義明確的特徵表達,是兩個挑戰。進而,基於從神經網路中拆分出來的模塊化語義表達,直接對神經網路的中層特徵進行debug,進行弱監督學習,可能會成為不錯的研究方向。這樣,深度學習演算法將不會被限制在「端對端」的範疇內,而是像搭積木一樣直接組閤中層的功能模塊,實現某種新的功能,實現小樣本弱監督學習。


解釋性,對於深度學習而言,一個最直觀而寬泛的理解就是人們需要知道模型怎樣從已有的數據中發現知識,理解知識,應用知識。

A、可解釋性差體現在哪些方面?

1、從數據角度而言,若要有效提高可解釋性模型的效率,首先就是要對數據分佈特徵進行全面評估。而當前深度學習建模對於這一塊的需求微乎極微。最後就會產生一些看起來較為詭異的現象。比如一些卷積模型,對加入雜訊的數據進行預測,會較大規模的判離原有的結果。

2、從模型構建角度而言,決策樹模型、線性模型、BCM、稀疏性方法等都具備人類可理解的特點。而人們對深度模型的構建無法進行詳盡的解釋,人們雖然憑著直覺設計了inception、attention等一系列模塊,並將其按一定設想應用在各類網路模型中並取得可觀效果,但是這些模型的普適性、合理性以及大量細節都無法得到一個全面的解釋。

因此,模型構建的難以解釋性基本表現在模型具備可解釋性以及解釋模型合理性兩個方面。

B、導致深度學習可解釋性差的原因是什麼?

1、從大規模神經網路的本質而言,大規模神經網路具備神經元多,參數量大,層級深等特點。雖然高度的非線性賦予了深度學習模型具有很強的表達能力,但是這直接導致了其看上去像是一堆毫無意義的參數模型進行數據變換最後得到的判定結果。

2、從特徵的角度而言,傳統機器學習演算法的精度很大程度上依賴於特徵工程。而深度學習的特徵並非人工特徵,是其在學習過程中自己選擇的。我們難以理解深度學習到底進行了怎樣的特徵選取以及為何進行這樣的特徵選取。深度學習模型的特徵選取,也難以理解。

———分割線———

深度學習模型可解釋性的研究任重道遠。

即使有人說過,「impressive achievements of deep learning amount to just fitting a curve to data」

但是,我相信有不少土豪機構們已經在推進這些美妙事情的進展。


存在幾方面吧:

  1. 特徵和結果的關聯性很難解釋。 比如一個深度神經網路, 經過若干次的非線性變換人工很難分析出到底是哪個特徵決定了模型的好壞。
  2. 參數中存在大量稀疏和權重很低的參數, 但你並無法分別這些參數是不是對結果起到細微影響的作用。
  3. 另外一個就是, 無法通過人類的習慣的邏輯來解釋模型。比如,樹模型,我可以用樹靠上節點的特徵來解釋,到底什麼因素最為重要。通常可以比較容易的聯繫現實場景。 但深度學習很困難,深度學習一般省略特徵篩選的過程,因為數次的非線性變換起到了特徵抽提的作用,但你並不知道模型內部如何抽提的特徵。 這一部分,在視覺領域有一些進步,不過在其他非視覺和非NLP場景還是很困難的。 因為輸入的數據本身並不規則。


個人感覺,主要體現在模型的構建上。大部分模型的構建,是基於一種直覺(intuition)。基於直覺構建的模型,如果實驗結果很好(state of the art),那就很容易讓其他人接受這種直覺,並會有一些人繼續沿著這個直覺的方向,提出一些基於新的直覺的新模型。一些模型從直覺的角度,可以給出很漂亮的解釋,比如:InceptionNet, ResNet, LSTM, Attention, Transformer。但很多細節仍然無法解釋,比如:每個參數跟結果有什麼因果關係。模型的構建,仍然需要基於經驗+實驗+直覺。


首先從研究的角度來講,個人感覺深度學習的實驗更偏向於試驗,先調參數加模塊得到一個結果,再反向解釋模塊的作用,然而這樣的做法缺乏理論依據。

其次從理論的角度講,模型內的一些操作依然是黑盒的,例如特徵的提取和篩選是不可見的,只能解釋為通過哪些操作做到了。與傳統圖像處理相比,提取到的特徵更加難以解釋,缺乏物理學或數學等的一些支持。例如,我們明白顏色這一特徵,但是我們無法直觀感知深度模型提取的特徵。

實際上,深度學習的可解釋性已經逐漸被研究,這個要結合物理學或數學等才能逐步探知吧。


主要是一個黑箱模型,很難確定所提取特徵的具體意義。比如pca,pls這些有一個具體的投影目標,得到的投影后的特徵就會有具體的數學物理意義,pca投影后的特徵就是方差最大的特徵。但是深度學習由於是多隱層結構,所以很難解釋提取的深度特徵具體代表什麼。


我的凡人理解是,比如傳統的方法,我做個什麼東西,每修改一點,都會有一點反饋,像雕刻一樣一刀刀,最後達到我要的效果,但是深度學習就是給他一塊木頭,設定一些步驟,最後輸出你要的.黑匣子怎麼解釋,相關因素太多了,甚至都不能區分哪些是真正有用步驟,哪些無用的,也不能確定,改動哪一步,結果會有相應的修改,就是還有一點隨機性,而且對於結果的預判,都是猜測.


很簡單

100個feature,每2個組合可以有多少種多項式kernel呢 (線性回歸)?大概是排列組合的個數,總之很多但是也未必不可枚舉的地步

根據假設2次以上的多項式幾乎沒解釋意義,也就是說,當下的問題是

在二者耗費的算力幾乎相等的情況下(神經網路耗費深度和廣度,多項式有一個超級大的排列組合數的for loop)

究竟這個排列組合帶來一個更好的結果概率大?

還是深度學慣用激活函數帶來好的結果概率大?

這方面至今還真沒人研究

畢竟深度學習萬能逼近論嘛


你不會思考,下載一個思維導圖,沒做一件事都要列舉一下


我們的世界最不可理解的事就是這個世界是可理解的。---- 愛因斯坦

對於物理研究而言,我們最終最求的就是理解為何我們的世界是可理解的,即我們的世界是如何構造的,我們不僅僅要知道世界是如何描述的,還要知道世界為何可以這樣描述。

對於深度學習系統而言,可解釋性的核心應該包括兩方面,第一是深度網路如何對目標問題進行表述,可解釋性要求網路對問題的結構進行可靠的高效的準確的描述,所以,這部分的可解釋性其實是包含了達成問題本身結構的可解釋性目標的,深度網路的這部分可解釋性是面向問題的;另一方面的可解釋性是面向深度網路自身,包括理解深度網路空間的結構以及訓練的動態過程,這部分可解釋性是獨立於目標任務的。

在我的理解中,這兩部分缺一不可,但是核心是網路自身的可解釋性。目前的可解釋性的工作其實在這兩個方面都有進展,但是對這個領域的大多數人而言,關注的重點在面向問題的可解釋性上,即網路如何對問題的結構進行了忠實的可靠的有效的描述;對於少數致力於這個領域最底層的理論而言的人,關注的重點應該是網路自身的可解釋性,即網路為何可以對目標問題進行有效描述,因為只有解決了這部分可解釋性,才能為深度網路如何可以提供面向問題的可解釋性奠定基礎。

回到問題,可解釋性問題的瓶頸在於我們對網路自身結構的認知不足,在這種情況下片面去追求面向具體目標任務的可解釋性,這種工作必定會陷入就事論事的陷阱,而且由於缺乏底層理論的支撐,這種可解釋性的工作很可能缺乏說服性而限於表象。


推薦閱讀:
相關文章