當前位置:
首頁 > 知識 > 模型可解釋性差?你考慮了各種不確定性了嗎?

模型可解釋性差?你考慮了各種不確定性了嗎?

本文作者是來自 Taboola 的數據科學家 Inbar Naor,她的研究領域是探索深度學習在推薦系統中的應用,在本文作者介紹了數據科學中模型不確定性的問題,並探索了如何利用不確定性來調試模型。AI 研習社根據原文進行了編譯。

當深度神經網路(DNN)變得越來越強大的時候,它們的複雜性也在一併與日俱增,而這種複雜性也給研究員帶來了一系列新的挑戰,其中就包括模型的可解釋性。

可解釋性對於構建更加強大且具有抵抗對抗性攻擊能力的模型而言至關重要。此外,當我們需要為一個全新的、還未得到深入研究的領域設計模型時,如果我們能夠解釋模型的運行機制,這將有助於我們更好地去設計和分析模型。

在過去幾年裡,因為意識到了模型可解釋性的重要作用,研究員們已經研究出了好幾種方法,並且在去年的 NIPS 會議中也有一個專門的研究展示會(workshop) 負責討論相關主題。提供模型可解釋性的方法包括:

LIME:這是一種通過局部線性逼近(Local linear approximation)來解釋模型預測的方法。

激活值最大化(Activation Maximization):該方法可用於理解哪些輸入模式(Input patterns)會產生最大的模型響應(Model response)。

特徵可視化。

將一個深度神經網路層嵌入低維度可解釋空間。

借用認知心理學的方法進行解釋。

AI 科技評論往期文章介紹的 KDD 2018 論文《革命性的新方法,準確、一致地解釋深度神經網路》

不確定性評估方法——這正是本篇文章的重點。

不過在開始深入探究如何使用不確定性來調試和解釋模型之前,讓我們先來理解為什麼不確定性如此重要。

為何我們需要關注不確定性?

一個顯著的例子就是高風險應用。假設你正在設計一個模型,用以輔助醫生決定患者的最佳治療方案。在這種情況下,我們不僅要關注模型預測結果的準確性,還要關注模型對預測結果的確定性程度。如果結果的不確定性過高,那麼醫生應該進行慎重考慮。

自動駕駛汽車是另外一個有趣的例子。當模型不確定道路上是否有行人時,我們可以使用此信息來減慢車速或者是觸發警報,以便於駕駛員進行處理。

不確定性也可以幫助我們解決因為數據樣本(Data examples)而導致的問題。如果模型沒有學習過與目標樣本相似的數據,那麼它對目標樣本的預測結果最好是「對不起,我不清楚」。這樣就可以避免諸如谷歌照片之前將非洲裔美國人誤認為大猩猩這樣的尷尬錯誤。這種錯誤有時是因為訓練集不夠多樣化而導致的。

不確定性的最後一種應用方式是,它可以作為從業者調試模型的工具,而這也是本文的重點。我們稍後會深入探討這個問題,但是在這之前,讓我們先來了解一下不同類型的不確定性。


不確定性的類型

當前存在有不同類型的不確定性和建模方式,並且每種都有不同的用途。

模型不確定性,也就是認知不確定性(Epistemic uncertainty):假設你只有一個數據點,並且你還想知道哪種線性模型最能解釋你的數據。但實際情況是,這時你是無法確定哪條線是正確的——我們需要更多的數據!

左邊:數據不足導致了高度不確定性。右邊:數據越多不確定性越小。

認知不確定性解釋了模型參數的不確定性。我們並不確定哪種模型權重能夠最好地描述數據,但是擁有更多的數據卻能降低這種不確定性。這種不確定性在高風險應用和處理小型稀疏數據時非常重要。

舉個例子,假設你想要建立一個能夠判斷輸入圖像中的動物是否有可能會吃掉你的模型。然後你的模型只在包含了獅子和長頸鹿的數據集上進行訓練,而現在給出一張殭屍的圖片作為輸入。由於該模型沒有學習過殭屍的圖片,因此預測結果的不確定性會很高。這種不確定性屬於模型的結果,然後如果你在數據集中給出了更多的殭屍圖片,那麼模型的不確定性將會降低。

數據不確定性或者稱為隨機不確定性(Aleatoric uncertainty),指的是觀測中固有的噪音。有時事件本身就是隨機的,所以在這種情況下,獲取更多的數據對我們並沒有幫助,因為雜訊屬於數據固有的。

為了理解這一點,讓我們回到判別食肉動物的模型中。我們的模型可以判斷出一張圖像中存在獅子,因此會預測出你可能被吃掉。但是,如果獅子現在並不餓呢?這種不確定性就來自於數據。另一個例子則是,有兩條看起來一樣的蛇,但是其中一條有毒,另一條則沒有毒。

隨機不確定性可以分為兩類:

同方差不確定性(Homoscedastic uncertainty):這時所有輸入具有相同的不確定性。

異方差不確定性(Heteroscedastic uncertainty):這種不確定性取決於具體的輸入數據。例如,對於預測圖像中深度信息的模型,毫無特徵的平面牆(Featureless wall)將比擁有強消失線(Vanishing lines)的圖像具有更高的不確定性。

測量不確定性(Measurement uncertainty):另一個不確定性的來源是測量本身。當測量存在雜訊時,不確定性將增加。在上述判別食肉動物的模型中,如果某些圖像是通過質量較差的攝像機拍攝的話,那麼就有可能會損害模型的置信度。或者在拍攝一隻憤怒河馬的過程中,由於我們是邊跑邊拍的,結果導致了成像模糊。

標籤雜訊(Noisy labels):在監督學習中我們使用標籤來訓練模型。而如果標籤本身帶有雜訊,那麼不確定性也會增加。

不過當前也存在許多方法可以實現對各種類型的不確定性進行建模。這些方法將在本系列的後續文章中進行介紹。現在,假設有一個黑盒模型暴露了自己對預測結果的不確定性,那我們該如果藉助這點來調試模型呢?

讓我們以 Taboola 中的一個模型為例,該模型可用於預測用戶點擊某個推薦內容的可能性。


使用不確定性調試模型

該模型具有許多由嵌入向量表示的分類特徵,然而它卻難以學習稀有值的通用嵌入向量(Generalized embedding)。解決此問題的常用方法是,使用特殊的 Out of Vocabulary(OOV) 嵌入向量。

想想一篇文章的廣告客戶,如果所有稀有的廣告客戶都共享同一個 OOV 嵌入向量,那麼從模型的角度來看,它們基本上就是同一個廣告客戶。此 OOV 廣告客戶有許多不同的商品,每個商品都有不同的點擊通過率(CTR)。如果我們僅使用廣告客戶作為點擊通過率的預測因子,那麼 OOV 將產生很高的不確定性。

為了驗證模型輸出 OOV 的高度不確定性,我們採用了驗證集並將所有廣告客戶嵌入向量轉換為 OOV。接下來,我們檢查了向量轉換前後模型的不確定性。正如預期那樣,由於向量的轉換,模型的不確定性增加了。如果給予信息豐富的廣告客戶嵌入向量,該模型的不確定性將降低。

我們可以針對不同的特徵重複這一點,然後找出那些在採用 OOV 嵌入向量替換時導致較低不確定性的特徵。這些特徵都是不提供信息的,或者是因為我們將它們提供給模型的方式不對。

我們甚至可以採用更精細的粒度:某些廣告客戶在不同商品的點擊通過率之間存在著較高的可變性,而其他廣告客戶的點擊通過率則大致相同。我們希望該模型對第一類廣告客戶具有更高的不確定性。因此,一種有用的分析策略是,關注廣告客戶中不確定性和點擊通過率可變性之間的相關性。如果相關性不是正的,則意味著模型未能了解與每個廣告客戶相關聯的不確定性。該工具允許我們了解訓練過程或模型架構中是否出了問題,並指示我們是否應該進一步調試它。

我們可以執行類似的分析,然後看看與特定事項相關的不確定性是否會減少我們展示它的次數(即向更多的用戶/地方展示)。同樣,我們希望模型變得更加確定,如果模型依然不確定,我們將繼續調試。

另一個很酷的例子就是標題特徵:帶有罕見辭彙的獨特標題應該會帶來很高的模型不確定性。這是由於模型缺乏相關學習經驗的結果。我們可以從驗證集中找出那些含有罕見辭彙的標題,並估計模型在這些標題上的不確定性。然後我們將使用其中一個標題重新訓練模型,再觀察模型在這些標題上的不確定性是否有所降低。從下面圖表中我們能夠獲得更好的了解。


結束語

不確定性在許多領域都是一個大問題。在特定任務中明晰問題屬於哪種類型的不確定性很重要的。一旦你知道如何建模,就可以通過各種方式使用它們。在這篇文章中,我們討論了如何使用它們來調試模型。在下一篇文章中,我們將討論從模型中獲得不確定性估計的不同方法。

Via 《Using Uncertainty to Interpret your Model》,由 AI 研習社編譯。

想知道關於機器學習的更多知識?


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 AI研習社 的精彩文章:

五大活動,讓你嗨爆這個夏天!
葉志豪:介紹強化學習及其在 NLP 上的應用

TAG:AI研習社 |