【閱讀筆記】神經網路中的LRP及其在非線性神經網路中的運用

2020-10-29 11:00:30

Layer-Wise Relevance Propagation for Neural Networks with Local Renormalization Layers主要介紹了一種將LRP擴充套件到非線性神經網路的方法。LRP是從模型輸出開始,反向傳播,直到模型輸入開始為止,對由輸入特徵導致其預測結果的解釋,文章中主要探究圖片畫素點與最終結果的相關性。

  • 神經網路中的LRP(Layer-Wise Relevance Propagation)

                                                                   x_{j}=g\left ( \sum_{i=1}^{ } w_{ij}x_{i}+b \right )   

式中 x_{j}是神經元j的輸出,g是神經元j的啟用函數,w_{ij}是神經元i到神經元j的連線權重,b為連線偏差;

                                                                   f\left ( x \right )\approx \sum_{p}^{ } R_{p}^{\left ( 1 \right )}

式中R_{p}^{\left ( 1 \right )}(pixel-wise relevance score) 用於衡量畫素點對預測結果的影響,R_{p}^{\left ( 1 \right )}> 0 表示某類在圖片中存在的證據,R_{p}^{\left ( 1 \right )}< 0表示某類在圖片中不存在的證據,f\left ( x \right )表示對圖片x的預測結果,預測結果可視為每個畫素點對應R_{p}^{\left ( 1 \right )}的總和。找出圖片x中所有畫素點的R_{p}^{\left ( 1 \right )}可將圖片x視覺化為熱圖,如下:

                                                                                            (圖片1)

假設已知第l+1層神經元j的相關性R_{j}^{\left ( l+1 \right )},可將該相關性R_{j}^{\left ( l+1 \right )}分解到第l層的所有神經元上,公式如下:

                                                                  R_{j}^{\left ( l+1 \right )}=\sum_{i\in \left ( l \right )}^{ }R_{i\leftarrow j}^{\left ( l,l+1 \right )}

l層神經元i的相關性R_{i}^{\left ( l \right )}可理解為,第l+1層中所有神經元的相關性分解後再進行求和,公式如下:

                                                                  R_{i}^{\left ( l \right )}=\sum_{j\in \left ( l+1 \right )}^{ }R_{i\leftarrow j}^{\left ( l,l+1 \right )}

LRP傳播機制範例如如下,有助於理解上述兩個公式。

                                                                           (圖片2)LRP傳播機制範例圖

R_{i\leftarrow j}^{\left ( l,l+1 \right )}計算方式有兩種:\varepsilon -rule\beta -rule

\varepsilon -rule如下:

                                                                R_{i\leftarrow j}^{\left ( l,l+1 \right )}=\frac{z_{ij}}{z_{j}+\varepsilon \cdot sign\left ( z_{j} \right )}R_{j}^{\left ( l+1 \right )}

式中z_{ij}=\left ( w_{ij}x_{j} \right )^{p}z_{j}=\sum_{k,w_{ij}\neq 0}^{ }z_{kj},筆者認為文章中給出的z_{ij}不是很好理解,稍作修改後如下:

                                                                z_{ij}=a_{i}^{\left ( l \right )}w_{ij}^{\left ( l,l+1 \right )}

z_{ij}為第l層神經元i對第l+1層神經元j的加權啟用,z_{j}為第l層所有神經元對第l+1層神經元j的加權啟用。

\beta -rule如下:

                                                                R_{i\leftarrow j}^{\left ( l,l+1 \right )}=\left ( \left ( 1+\beta \right )\frac{z_{ij}^{+}}{z_{j}^{+}}-\beta \frac{z_{ij}^{-}}{z_{j}^{-}} \right )R_{j}^{\left ( l+1 \right )}

式中「+」與「-_」分別表示正值部分與負值部分,即上述公式將正負加權啟用分開進行處理。

R_{i\leftarrow j}^{\left ( l,l+1 \right )}含義如下:

若第l層某個神經元i對第l+1層神經元的一個神經元j做出了主要貢獻,那麼第l層神經元i應該佔第l+1層神經元j的相關性R_{j}^{\left ( l+1 \right )}的較大份額,即神經元i收集它對後一層所連線的神經元j的貢獻。

R_{i\leftarrow j}^{\left ( l,l+1 \right )}的兩種計算方法\varepsilon -rule\beta -rule實際上都是將第l+1層神經元j的相關性R_{j}^{\left ( l+1 \right )}按照比例分配給第l層神經元i從而求得相關係數R_{i\leftarrow j}^{\left ( l,l+1 \right )},因此在LRP中,存在以下的結構:

                                                                R_{i\leftarrow j}^{\left ( l,l+1 \right )}=v_{ij}R_{j}^{\left ( l+1 \right )}  with  \sum_{i}^{ }v_{ij}=1

式中v_{ij}=\frac{z_{ij}}{z_{j}+\varepsilon \cdot sign\left ( z_{j} \right )}v_{ij}=\left ( \left ( 1+\beta \right )\frac{z_{ij}^{+}}{z_{j}^{+}} -\beta \frac{z_{ij}^{-}}{z_{j}^{-}}\right ),對於v_{ij}=\frac{z_{ij}}{z_{j}+\varepsilon \cdot sign\left ( z_{j} \right )},筆者認為應該是\sum_{i}^{ }v_{ij}\approx 1,因為式中的\varepsilon是一個較小的實數。

  • 將LRP運用到非線性神經網路

先考慮一種情況:神經元j的輸出無法用等式   x_{j}=g\left ( \sum_{i=1}^{ } w_{ij}x_{i}+b \right )表示,設神經元j的輸出為x_{j}=g\left ( x_{h1},x_{h2},...,x_{hn} \right ),式中x_{hi}, i=1,...n表示神經元j前一層神經元對神經元j的輸入,現將x_{j}在參考點\left ( \tilde{x}_{h1},\tilde{x}_{h2},...,\tilde{x}_{hn} \right )處進行一階泰勒展開得如下式子:

                                                 x_{j}\approx g\left ( \tilde{x}_{h1},\tilde{x}_{h2},...,\tilde{x}_{hn} \right )+\sum_{i\leftarrow j}^{ }\frac{\partial g}{\partial x_{hi}}\left ( \tilde{x}_{h1},\tilde{x}_{h2},...,\tilde{x}_{hn} \right )\left ( x_{hi}-\tilde{x}_{hi} \right )

前一層神經元i對後一層神經元j的加權啟用如下:

                                             \forall _{i\leftarrow j}:z_{ij}=\frac{1}{n}g\left ( \tilde{x}_{h1},\tilde{x}_{h2},...,\tilde{x}_{hn} \right )+\frac{\partial g}{\partial x_{hi}}\left ( \tilde{x}_{h1},\tilde{x}_{h2},...,\tilde{x}_{hn} \right )\left ( x_{hi}-\tilde{x}_{hi} \right )

上式可理解為,將x_{j}泰勒分解中的零階項平均分配後,再加上前一層對應神經元i輸入的偏導值,即為前一層神經元i對後一層神經元j的加權啟用。按照泰勒分解求得z_{ij}後,可利用本文上述所介紹的\varepsilon -rule或者\beta -rule進行逐層相關性的求解,最終可計算出R_{p}^{\left ( 1 \right )}(pixel-wise relevance score)。

  • 將LRP運用到Local Renormalization Layers

因Local Renormalization Layers在深度神經網路中表現出了良好的效能,所以在這裡介紹將LRP運用到Local Renormalization Layers中,使其具有可解釋性。

將神經網路中某一層設定為Local Renormalization Layers,該層中神經元定義如下:

                                                                y_{k}\left ( x_{1},x_{2},...,x_{n} \right )=\frac{x_{k}}{\left ( 1+b\sum_{i=1}^{n}x_{i}^{2} \right )^{c}}

顯然,Local Renormalization Layers為非線性,可將LRP運用到非線性神經網路的方法應用到此處。

y_{k}\left ( x_{1},x_{2},...,x_{n} \right )在參考點\left ( \tilde{x}_{h1},\tilde{x}_{h2},...,\tilde{x}_{hn} \right )處進行泰勒展開可得如下式子:

                                            y_{k}\approx y_{k}\left ( \tilde{x}_{h1},\tilde{x}_{h2},...,\tilde{x}_{hn} \right )+\sum_{i}^{ }\frac{\partial y_{k}}{\partial x_{hi}}\left ( \tilde{x}_{h1},\tilde{x}_{h2},...,\tilde{x}_{hn} \right )\left ( x_{hi}-\tilde{x}_{hi} \right )

y_{k}求偏導,如下:

                                                              \frac{\partial y_{k}}{\partial x_{j}}=-\frac{2bcx_{j}x_{k}}{\left ( 1+b \sum_{i=1}^{n}x_{i}^{2}\right )^{c+1}},此處j\neq k

                                               \frac{\partial y_{k}}{\partial x_{j}}=\frac{1}{\left ( 1+b\sum_{i=1}^{n}x_{i}^{2} \right )^{c}}-\frac{2bcx_{j}x_{k}}{\left ( 1+b \sum_{i=1}^{n}x_{i}^{2}\right )^{c+1}},此處j=k

將上面兩個式中,稍作整理可得,

                                                    \frac{\partial y_{k}}{\partial x_{j}}=\frac{\delta_{jk}}{\left ( 1+b\sum_{i=1}^{n}x_{i}^{2} \right )^{c}}-\frac{2bcx_{j}x_{k}}{\left ( 1+b \sum_{i=1}^{n}x_{i}^{2}\right )^{c+1}}

對於輸出為y_{k}的神經元來說,其輸入應該是z_{1}=\left ( x_{1},x_{2},...,x_{n} \right ),若只有輸出為x_{k}的神經元觸發輸出為y_{k}的神經元時,其輸入應該是z_{2}=\left ( 0,0,...,x_{k},...,0 \right ),即對於輸出為y_{k}的神經元,我們選擇在只有輸出為x_{k}的神經元觸發輸出為y_{k}​​​​​​​的神經元時候展開,即在點z_{2}展開,如下:

                                                                  y_{k}\left ( z_{1} \right )\approx y_{k}\left ( z_{2} \right )+0=\frac{x_{k}}{\left ( 1+bx_{k}^{2} \right )^{c}}

上式則意味著y_{k}的泰勒一階展開式中一階項對於y_{k}的近似沒有貢獻值,這是我們不希望看到的,故稍作修改,如下:

                                                               y_{k}\left ( z_{2} \right )\approx y_{k}\left ( z_{1} \right )+\bigtriangledown y_{k}\left ( z_{1} \right )\left ( z_{2}-z_{1} \right )

                                                         \Rightarrow y_{k}\left ( z_{1} \right )\approx y_{k}\left ( z_{2} \right )+\bigtriangledown y_{k}\left ( z_{1} \right )\left ( z_{1}-z_{2} \right )

                                                        \Rightarrow y_{k}\left ( z_{1} \right )\approx \frac{x_{k}}{\left ( 1+bx_{k}^{2} \right )^{c}}-2bc\sum_{j,j\neq k}^{ }\frac{x_{k}x_{j}^{2}}{\left ( 1+b\sum_{i=1}^{n}x_{i}^{2} \right )^{c+1}}

然後根據求得的y_{k}\left ( z_{1} \right )可通過如下式子計算前一層神經元i對後一層神經元j的加權啟用z_{ij}

                                            \forall _{i\leftarrow j}:z_{ij}=\frac{1}{n}g\left ( \tilde{x}_{h1},\tilde{x}_{h2},...,\tilde{x}_{hn} \right )+\frac{\partial g}{\partial x_{hi}}\left ( \tilde{x}_{h1},\tilde{x}_{h2},...,\tilde{x}_{hn} \right )\left ( x_{hi}-\tilde{x}_{hi} \right )

最後可利用本文在最前面所介紹的\varepsilon -rule或者\beta -rule進行逐層相關性的求解,最終可計算出R_{p}^{\left ( 1 \right )}(pixel-wise relevance score)。

筆者水平有限,難免存在理解不當之處,歡迎批評指正,聯絡郵箱:changhao1997@foxmail.com

  • 參考文獻
  1. Layer-Wise Relevance Propagation for Neural Networks with Local Renormalization Layers
  2. 趙新傑. 深度神經網路的視覺化理解方法研究[D].哈爾濱工程大學,2018.
  3. 陳珂銳,孟小峰.機器學習的可解釋性[J].計算機研究與發展,2020,57(09):1971-1986.