1. 程式人生 > >(2017ICML Bestpaper)Understanding Black-box Predictions via Influence Functions 筆記

(2017ICML Bestpaper)Understanding Black-box Predictions via Influence Functions 筆記

轉載地址:https://www.leiphone.com/news/201708/Hbjv7EcuXTYQlLk2.html

動機

下面我將講述如何用一種被稱為影響函式的統計工具來研究神經網路的預測問題。

ICML 2017最佳論文:為什麼你改了一個引數,模型預測率突然提高了|分享總結

在過去幾年,機器學習在許多領域中的模型做出的預測準確度越來越高,但是這些模型本身卻也變得越來越複雜。然而一個經常會被問到的問題——系統為什麼會做出這樣的預測?——卻難以回答。

ICML 2017最佳論文:為什麼你改了一個引數,模型預測率突然提高了|分享總結

例如我們通過圖中左側的訓練資料來訓練一個網路,當輸入一張圖片時它會做出一個預測。為什麼這個模型做出這樣的預測呢?我們知道模型學習的所有資訊和“知識”都是從訓練例項中得出的,所以應該可以查詢特定預測受到各種資料點的影響有多大。

ICML 2017最佳論文:為什麼你改了一個引數,模型預測率突然提高了|分享總結

如果一個特定的訓練點不存在或被微弱擾動,例如這裡對經驗風險函式進行微調後,預測的置信水平就會由79%提升到82%。那麼兩次預測的損失函式的差就可以代表某個訓練點改變後對整個訓練的影響。

影響函式

ICML 2017最佳論文:為什麼你改了一個引數,模型預測率突然提高了|分享總結

在這裡我們的目標就是測量如果我們增加經驗風險函式的值,損失函式的改變。這裡結構風險函式是由具體的訓練資料決定的。在函式取光滑條件時,那麼這個測量值就是這個函式I,也即影響函式。這個公式第二行中的H是Hessian矩陣。從這裡我們可以看出,影響函式是依賴於具體的模型和訓練資料的。

ICML 2017最佳論文:為什麼你改了一個引數,模型預測率突然提高了|分享總結

例如我們看兩個例子。右側兩列中第一列是用畫素資料訓練的RBF SVM,第二列是邏輯迴歸模型。用這兩個模型分別對左側的測試圖形進行預測,我們得到的影響函式,RBF SVM模型的影響函式隨著距離測試物越遠會迅速減下,而邏輯迴歸模型的影響函式則與距離無關。所以我們可以利用影響函式來更好地理解模型。在我們看影響函式的應用之前,我們要先討論一下這種方法中潛在的問題。

第一,計算效率低

ICML 2017最佳論文:為什麼你改了一個引數,模型預測率突然提高了|分享總結

要想實用影響函式,我們必須構建經驗風險函式的Hessian矩陣以及求矩陣的逆。這對有幾百萬個引數的神經網路模型來說是難以接受的,尤其是求逆過程將會非常緩慢。

ICML 2017最佳論文:為什麼你改了一個引數,模型預測率突然提高了|分享總結

最好的辦法就是我們不明確地求出Hessian矩陣的逆,而是通過Hessian-vector products近似。

第二,非光滑損失

ICML 2017最佳論文:為什麼你改了一個引數,模型預測率突然提高了|分享總結

當損失函式的一階、二階導數不存在時,我們可以通過剔除這些非光滑的點,我們發現仍然能夠很好地預測。例如這裡的smoothHinge模型,當t=0.001的時候能夠更好地符合實際的改變。

第三,很難找到全域性極小值

ICML 2017最佳論文:為什麼你改了一個引數,模型預測率突然提高了|分享總結

在前面我們假設了為全域性極小值,但是有時我們可能只是得到一個次極小值。這種情況下可能會導致Hessian出現負的本徵值。

ICML 2017最佳論文:為什麼你改了一個引數,模型預測率突然提高了|分享總結

我們通過凸二次近似方法對損失函式構建一個軟極大值來取近似。這樣可以在很大程度上降低因為是非全域性極小值造成的問題。

應用

好了,最後我們講一下影響函式的應用。

1、除錯模型錯誤

ICML 2017最佳論文:為什麼你改了一個引數,模型預測率突然提高了|分享總結

當模型出現錯誤的時候我們能否幫助開發者找出哪地方出了問題呢?我們用一個例子來說明,我們用邏輯迴歸模型來預測一個病人是否應當重新入院。訓練模型有20k的病人,127個特徵。

ICML 2017最佳論文:為什麼你改了一個引數,模型預測率突然提高了|分享總結

為了說明情況,我們把訓練模型中3(24)個孩子需要重新入院改成3(4)個,也即去掉20個健康孩子的訓練樣本。當用一個健康孩子來做預測時,模型就會出錯預測為需要重新入院。

ICML 2017最佳論文:為什麼你改了一個引數,模型預測率突然提高了|分享總結

我們計算每一個訓練點的影響函式。這個圖很清楚顯示了4個訓練孩子的影響值是其他樣本的30-40倍,其中一個孩子為正,其他3個為負。

ICML 2017最佳論文:為什麼你改了一個引數,模型預測率突然提高了|分享總結

仔細考察4個孩子的127個特徵,發現表示為“孩子”的特徵起主要貢獻。

2、對抗訓練

ICML 2017最佳論文:為什麼你改了一個引數,模型預測率突然提高了|分享總結

最近的工作已經產生了與實際測試影象無法區分的對抗測試影象,以致完全可以愚弄分類器。實際上,Ian Goodfellow在內的一些研究者已經表明了高準確率的神經網路也是可以被欺騙的,用來欺騙它的樣本是精心選擇過的,人眼看起來正常。這樣的樣本就叫做“對抗性測試樣本”。

ICML 2017最佳論文:為什麼你改了一個引數,模型預測率突然提高了|分享總結

構建它們的方法之一是沿著測試輸入對應的測試損失的梯度,不斷修改測試輸入,從而讓測試損失增大。

ICML 2017最佳論文:為什麼你改了一個引數,模型預測率突然提高了|分享總結

那麼既然有對抗性測試樣本,我們能否創造出對抗性訓練樣本呢,其中訓練點上的小變化就可以改變模型的預測結果。

ICML 2017最佳論文:為什麼你改了一個引數,模型預測率突然提高了|分享總結

我們問了自己這個問題,然後接下來很自然地就嘗試在測試損失的梯度上做同樣的事情。不過現在不是做關於測試特徵的,而是做關於訓練特徵的。換句話說,我們先給定測試樣本,然後沿著測試樣本的梯度變化修改訓練資料。

ICML 2017最佳論文:為什麼你改了一個引數,模型預測率突然提高了|分享總結

然後我們發現,它的影響函式可以幫助我們找到這個梯度,因為它們根本上是一回事,隨著訓練的進行,模型的預測上會發生的事情就是這樣。我們得到的結果是這樣的,從數學的角度講它和基於梯度的攻擊是一樣的,對不同的模型和資料集都可以起作用。

ICML 2017最佳論文:為什麼你改了一個引數,模型預測率突然提高了|分享總結

這樣的方法在實際應用中也可以發揮作用,我們設計了簡單的二分類任務,模型要確定影象中的是狗還是魚,兩種東西看起來挺不一樣的。我們用到了一個 Inception 那樣的邏輯迴歸模型。令我們驚訝的是,如果仔細地選擇訓練資料,然後仔細地選擇要增加在其中的干擾,那麼訓練資料中一點點的改變,就可以讓同一個型別的多張測試影象的預測結果都出現問題。這說明這樣的攻擊在某些環境下具有相當的危險性。這個問題上其實還有很多值得研究討論的,待會兒我們可以再聊。

ICML 2017最佳論文:為什麼你改了一個引數,模型預測率突然提高了|分享總結

結論

最後做個簡單的總結。我們先討論了模型是如何做出預測的。我們知道模型是通過訓練資料得到的,我們將其寫成公式,然後就知道改變訓練資料以後模型會如何變化,而且我們還能通過它偏離訓練資料的程度更好地理解模型的預測結果。影響函式為這些事情提供了一種高效的手段。

ICML 2017最佳論文:為什麼你改了一個引數,模型預測率突然提高了|分享總結

在這項工作中,我們還有很多事情需要做,例如如果從醫院裡移除了所有的病人怎麼辦,我們有什麼辦法防止這件事發生嗎?如果我們有一個很大的凸模型,執行SGD好幾次,……目前工作只是在這個方向上的一小步。在能夠很好地理解模型之前,還有很多基礎的問題等待我們去解決。