打開(kāi)深度神經(jīng)網(wǎng)絡(luò)黑箱:竟是模塊化的?圖聚類算法解密權(quán)重結(jié)構(gòu)
十三 發(fā)自 凹非寺
量子位 報(bào)道 | 公眾號(hào) QbitAI
深度神經(jīng)網(wǎng)絡(luò)這個(gè)黑箱子,似乎有了更清晰的輪廓。
我們都知道深度神經(jīng)網(wǎng)絡(luò)性能十分強(qiáng)大,但具體效果為什么這么好,權(quán)重為什么要這么分配,可能連“設(shè)計(jì)者”自己都不知道如何解釋。
最近,一項(xiàng)來(lái)自UC伯克利和波士頓大學(xué)的研究,就對(duì)這個(gè)黑箱子做了進(jìn)一步的解密:
經(jīng)過(guò)訓(xùn)練和權(quán)重修剪的多層感知器?(MLP),與具有相同權(quán)重分布的隨機(jī)網(wǎng)絡(luò)相比,通常模塊化程度更高。
也就是說(shuō),在特定條件下,深度神經(jīng)網(wǎng)絡(luò)是模塊化(modularity)的。
研究人員認(rèn)為:
了解神經(jīng)網(wǎng)絡(luò)的模塊化結(jié)構(gòu),可以讓研究工作者更容易理解神經(jīng)網(wǎng)絡(luò)內(nèi)部的工作原理。
這項(xiàng)研究已提交ICML 2020,也已在GitHub開(kāi)源(見(jiàn)文末“傳送門(mén)”)。
將神經(jīng)網(wǎng)絡(luò)模塊化
為什么要用模塊化來(lái)研究深度神經(jīng)網(wǎng)絡(luò)呢?
首先,模塊化系統(tǒng)允許分析系統(tǒng)的研究人員,檢查單個(gè)模塊的功能,并將他們對(duì)單個(gè)模塊的理解合并為對(duì)整個(gè)系統(tǒng)的理解。
其次,神經(jīng)網(wǎng)絡(luò)由不同的層(layer)組成,在定義網(wǎng)絡(luò)時(shí),不同的層可以單獨(dú)配置。
而通過(guò)實(shí)驗(yàn),研究人員發(fā)現(xiàn):
一個(gè)深度神經(jīng)網(wǎng)絡(luò)是模塊化的,它可以被分割成神經(jīng)元集合,其中每個(gè)神經(jīng)元集合內(nèi)部高度連接,但集合之間的連接度很低。
更具體點(diǎn)來(lái)說(shuō),研究人員使用圖聚類(graph clustering)算法將訓(xùn)練好的網(wǎng)絡(luò)分解成集群,并將每個(gè)集群視為一個(gè)“模塊”。
采用的聚類算法叫做譜聚類?(spectral clustering),用它來(lái)計(jì)算一個(gè)劃分(partition)以及評(píng)估一個(gè)聚類的n-cut。
△將神經(jīng)網(wǎng)絡(luò)模塊化
通俗點(diǎn)來(lái)說(shuō),就是:
先把數(shù)據(jù)轉(zhuǎn)換為圖,所有的數(shù)據(jù)看做是空間中的點(diǎn),點(diǎn)和點(diǎn)之間用邊相連。距離較遠(yuǎn)的兩個(gè)點(diǎn),它們之間邊的權(quán)重值較低,距離較近的兩點(diǎn)之間邊的權(quán)重值較高。
接下來(lái),進(jìn)行n-cut操作,也就是切圖。目標(biāo)就是要讓切圖后不同的子圖間“邊權(quán)重和”盡可能的低,而子圖內(nèi)的“邊權(quán)重和”盡可能的高。
那么,實(shí)驗(yàn)結(jié)果又如何呢?
實(shí)驗(yàn)主要采用了3個(gè)數(shù)據(jù)集,分別是MNIST、Fashion-MNIST和CIFAR10,并在每個(gè)數(shù)據(jù)集上訓(xùn)練了10次。
△在每個(gè)數(shù)據(jù)集上訓(xùn)練10次后的結(jié)果
可以看到,對(duì)MNIST測(cè)試的正確率為98%,F(xiàn)ashion-MNIST的正確率為90%,而CIFAR-10的正確率為40%。修剪后的網(wǎng)絡(luò)通常比隨機(jī)網(wǎng)絡(luò)具有更好的聚類性。
下圖顯示了在剪枝前和剪枝后,所有受訓(xùn)練網(wǎng)絡(luò)的n-cut和測(cè)試精度結(jié)果。
△每個(gè)訓(xùn)練網(wǎng)絡(luò)的n-cut和精度的散點(diǎn)圖
為了幫助解釋這些n-cut值,研究人員還對(duì)200個(gè)隨機(jī)初始化的網(wǎng)絡(luò)進(jìn)行了聚類,n-cut的分布如下圖所示。
△200個(gè)隨機(jī)初始化網(wǎng)絡(luò)n-cut分布的直方圖和核密度估計(jì)
當(dāng)然,作者也指出一點(diǎn),這項(xiàng)研究的定義只涉及到網(wǎng)絡(luò)的學(xué)習(xí)權(quán)值(learned weight),而不是數(shù)據(jù)分布,更不是模型的輸出或激活的分布。
模塊之間的重要性和依賴性
那么,這些模塊之間的又有怎樣的關(guān)聯(lián)呢?
研究人員進(jìn)一步評(píng)估了不同模塊之間的重要性和關(guān)系。
在神經(jīng)科學(xué)領(lǐng)域中,要想確定大腦某個(gè)區(qū)域的功能,有一種方法是研究這個(gè)區(qū)域意外受損的患者的行為,叫做損傷實(shí)驗(yàn)?(lesion experiment)。
類似的,研究人員也采用了這樣的方法:
通過(guò)將模塊的神經(jīng)元激活設(shè)置為0,來(lái)研究模塊的重要性,并觀察網(wǎng)絡(luò)如何準(zhǔn)確地對(duì)輸入進(jìn)行分類。
在這項(xiàng)實(shí)驗(yàn)中,“損傷”的原子單位是每個(gè)模塊與每個(gè)隱含層的交集,稱之為“子模塊”。
重要性
對(duì)于每個(gè)子模塊,將傳入組成神經(jīng)元的所有權(quán)重設(shè)置為0,并保持網(wǎng)絡(luò)的其余部分不變。
然后,確定受損網(wǎng)絡(luò)的測(cè)試集精度,特別是它比整個(gè)網(wǎng)絡(luò)的精度低了多少。
△使用剪枝和dropout在Fashion-MNIST上訓(xùn)練后,不同子模塊的繪圖
如上圖所示,重要的子模塊會(huì)先標(biāo)記它的層號(hào),然后再標(biāo)記模塊號(hào)。橫軸表示該層神經(jīng)元在子模塊中的比例,縱軸表示由于子模塊受損而導(dǎo)致精度的下降。
這項(xiàng)實(shí)驗(yàn)表明,許多子模塊太小,不能算作重要模塊,而許多子模塊在統(tǒng)計(jì)上有顯著影響,但在實(shí)際中卻不顯著。然而,有些子模塊顯然對(duì)網(wǎng)絡(luò)的運(yùn)作具有實(shí)質(zhì)的重要性。
依賴性
既然已經(jīng)知道了哪些子模塊是重要的,那么最好還能夠理解這些重要的子模塊是如何相互依賴的。
為了做到這一點(diǎn),研究人員在不同的層中破壞兩個(gè)不同的重要子模塊,稱之為X和Y。
通過(guò)實(shí)驗(yàn),研究人員得到了如下結(jié)論:
如果X在Y上不是重要條件,且Y在X上也不是重要條件,那么來(lái)自X上的所有信息都傳遞給了Y。
如果X不是以Y為重要條件,而Y是以X為重要條件,則X將其所有信息發(fā)送給Y,并且Y還從其他子模塊中接收到了信息。
如果Y不是以X為條件的重要條件,而是X是以Y為條件的重要條件,則認(rèn)為Y從X接收其所有信息,然后X將信息發(fā)送到其他子模塊。
如果X和Y都是彼此重要的條件,則無(wú)法得出任何結(jié)論。
作者介紹
△Daniel Filan
Daniel Filan,加州大學(xué)伯克利分校的博士生。本科就讀于澳大利亞國(guó)立大學(xué),學(xué)習(xí)強(qiáng)化學(xué)習(xí)理論、數(shù)學(xué)和理論物理。
△Shlomi Hod
Shlomi Hod,波士頓大學(xué)計(jì)算機(jī)系博士生。感興趣的領(lǐng)域是 responsible AI,尤其是算法和機(jī)器學(xué)習(xí)系統(tǒng)對(duì)社會(huì)的影響。
傳送門(mén)
論文地址:https://arxiv.org/abs/2003.04881
GitHub項(xiàng)目地址:https://github.com/nn-surprisingly-modular-icml-2020/nn_modularity
- 商湯林達(dá)華萬(wàn)字長(zhǎng)文回答AGI:4層破壁,3大挑戰(zhàn)2025-08-12
- 商湯多模態(tài)大模型賦能鐵路勘察設(shè)計(jì),讓70年經(jīng)驗(yàn)“活”起來(lái)2025-08-13
- 以“具身智能基座”為核,睿爾曼攜全產(chǎn)品矩陣及新品亮相2025 WRC2025-08-11
- 哇塞,今天北京被機(jī)器人人人人人塞滿了!2025-08-08