首頁>技術>

深度神經網路的解釋方法有很多,每種解釋方法都有各自的優缺點。在大多數情況下,我們感興趣的是區域性解釋方法,即對特定輸入的網路輸出的解釋,因為DNNs往往過於複雜,無法進行全域性解釋(獨立於輸入)。

一般而言,所有區域性解釋方法都有一個共同的目標:可靠地(即準確地)表示要解釋的函式f(例如DNN),至少可以部分的解釋他們的輸入和輸褚的關係。

當然,這樣的解釋也必須是人類可以理解的才能有用。實現這一目標的最簡單方法是為每個輸入維度新增一個重要分數,也就是建立一個歸屬圖。歸因方法將模型輸出的權重分配給給定輸入的每個維度。

遮擋分析透過觀察去除patch後模型輸出y的變化來計算每個patch的重要性。單個的結果可以組合成一張歸因圖。

遮擋分析的優點

如果維度是獨立的,那麼遮擋分析是完全可靠的,因為您準確地測量了每個維度的邊際效應。

關於遮擋分析的另一個優點是它是一種post-hoc 方法。這意味著它可以用來解釋任何(已經訓練過的)模型。沒有必要再訓練。這個模型甚至可以是一個不可微的黑盒。只要您能夠輸入輸入並接收輸出,就可以使用遮擋分析。

與基於梯度的解釋方法相比,遮擋分析的另一個優勢是,它甚至可以處理區域性平坦的函式,沒有或只有很小的梯度。

您可能已經猜到了,遮擋分析有一個很大的警告:我們必須將每一個遮擋輸入到模型中並進行評估。如果您輸入的內容有很多尺寸,例如如果影象為256x256畫素,則必須執行256x256 = 65.536(!)模型才能獲得完整的分析。在大多數情況下,這是非常昂貴的,特別是如果您要對整個資料集執行分析時,尤其如此。

在機器學習中,我們通常假設模型將根據來自與訓練樣本相同分佈的資料進行評估。如果不是這樣(即如果我們移除畫素),那麼模型輸出可能是錯誤的。雖然去除單個畫素的效果通常可以忽略不計,但是去除整塊的資料塊與訓練資料流形之間的距離更大,因此對輸出的影響也更大。

一個更好的方法是使用修復演算法:只是使用另一個模型來猜測(即inpaint)缺失部分的內容。實際上並沒有新增任何資訊,因為修復僅依賴於影象的剩餘畫素,但結果看起來仍然接近於正常影象,因此更接近於訓練資料。您可以使用Yu等人設計的複雜演算法,也可以使用容易訪問的庫,如openCV。

使用修復演算法的問題是:1)它使該過程在計算上更加昂貴; 2)您必須首先執行它; 3)如果您不使用標準基準資料集,則可能必須對其進行重新訓練。

最後總結

由於它的計算成本,遮擋分析當然不是一個適用於任何場合的工具,但肯定有一些用途。特別是如果你的資料很小,或者你只是想要一些容易實現和可靠的東西(只是要注意補丁的大小),遮擋分析可以很出色。與之密切相關且更為複雜的方法是Shapley值。不幸的是,它們的計算成本更高。如果你使用的是可微模型,那麼僅次於它的簡單方法就是基於梯度的解釋方法。

17
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 面試官:為什麼Promise比setTimeout() 快?