隻要你用了 ReLU,我們就是好朋就是 " 淺度學習 "。
最近有研究證明,所有基于 ReLU 的深度神經網絡都可以重寫爲功能相同的 3 層神經網絡。
基于這個證明,倫敦國王學院的研究團隊還提出一種爲任意 ReLU 網絡找到相應淺層網絡的算法。
由此産生的淺層網絡是透明的,可用于解釋網絡的行爲。
隻要通過算法,就能找到任意深度 ReLU 網絡的對應淺層網絡。
對此網友驚呼:我要讀這篇論文,立刻馬上!
任何深度 ReLU 網絡都是淺層的
ReLU 是深度學習領域最常用的一種激活函數,由 Nair & Hintonw 在 2010 爲限制玻爾茲曼機 ( restricted Boltzmann machines ) 提出的。
由于常常在實踐中有着比其他常用激勵函數(例如邏輯函數)更好的效果,而被深度神經網絡廣泛用于圖像識别等計算機視覺人工智能領域。
論文指出,每個深度 ReLU 網絡都可以轉換爲一個功能相同且具有 " 三個隐藏層 " 的淺層網絡。并提供了一個找到對應淺層網絡權重的算法,提高神經網絡的全局可解釋性。
簡單來說就是,通過劃分輸入空間,使用線性函數對每個分區進行建模,來實現深層網絡淺化。
具體分爲這三步。
首先,需要構建一個将線性模型和半空間編碼的第一層,通過使用一個矩陣來表示半空間條件,其中每個行向量表示一個半空間的線性方程。
然後,構建第二層,該層根據輸入的所屬區域決定哪些邊界是活躍的。
最後,構建第三層,通過将輸入與每個線性模型相乘并使用指示函數來選擇正确的模型。
基于此,每一個深度 ReLU 網絡都可以被轉換爲一個功能上相同的三層網絡,其權重值在擴展實數中。
當然要完成淺化,還需要一些咒(suan)語(fa)。
根據論文,使用算法時隻需找到 H、c、α、β 這些參數,并知道每個區域所需的半空間就可以,主要分三步。
首先,識别可行的模式集,對于每個可行模式,計算全局線性規劃的參數 A ( l ) 和 d ( l ) 。
然後,确定半空間條件,将這些矩陣堆疊起來,确定每個激活模式的半空間條件。最終得到矩陣 H 和向量 c。
最後,計算局部線性模型,根據模型的權重和激活模式,使用顯式公式,計算局部線性模型 α 和 β。
簡單理解,就是根據已訓練好的網絡,通過啓發式搜索在可能的神經元激活空間中找到合适的權重值。
通過構建淺層白盒網絡,能夠快速計算出每個數據點的 SHAP 值,大大提高數據的可解釋性。
實驗表明,通過上面算法就可以找到給定深度 ReLU 網絡對應的淺層網絡的顯式權重。
網友:實驗很酷,但也有些問題
論文很新穎的提出一個算法,可以實現 " 深轉淺 ",不過該方法仍有一些缺點。
比如構建淺層網絡使用了無限權重,盡管這些權重可以在 Python 中實現,但不能使用梯度下降進行微調。
當然," 找茬兒 " 這塊,怎能少得了熱心腸的網友。
根據論文可以發現,如果使用團隊提供的算法,實驗過程中計算時間其實是會随着神經元數量增加呈指數增長。
所以就有網友提出疑惑:算法運行時間與神經元數量成指數關系,12 個神經元需要近 10 分鍾,那計算一個普通大小的 DNN 所需時間豈不是長了去了……
網友指出:假設單層神經網絡可以計算任何函數,那麽對于任何神經網絡來說,這不是都成立嗎?
對于這個研究,也有網友犀利表示:這就是個「普遍逼近定理」,沒什麽大驚小怪的。
不過無論網友怎麽說,這篇論文仍然有一些出彩點。
比如,通過這個方式得到的淺層網絡是透明的,可以用來生成模型行爲的解釋。
此外還提供了用于複現實驗的代碼,供其他研究人員使用來探索和實驗。
論文地址已經貼在下面,感興趣可以去看看~
論文傳送門:
https://arxiv.org/abs/2306.11827
參考鏈接:
[ 1 ] https://twitter.com/mathemagic1an/status/1672430954152083456?s=46&t=iTysI4vQLQqCNJjSmBODPW