摘要:深度神經(jīng)網(wǎng)絡推動視覺語言理解和語音識別等領域取得了前所未有的進步。這個標量值隨后將組成該神經(jīng)元的激活矢量。繪圖的軸包含按類別排序的圖像灰色虛線表示類別邊界,軸則是神經(jīng)元的輸出值。左圖顯示了和中的兩個較高激活較大的歐氏范數(shù)神經(jīng)元。
深度神經(jīng)網(wǎng)絡 (DNN) 推動視覺、語言理解和語音識別等領域取得了前所未有的進步。但是,這些成功也帶來了一些新挑戰(zhàn)。特別是,與許多之前的機器學習方法不同,DNN 在分類中容易受對抗樣本的影響,在強化學習任務中容易出現(xiàn)災難性遺忘,以及在生成式建模中容易發(fā)生模式崩潰。為了構建更好、更可靠的 DNN 系統(tǒng),能夠解釋這些模型就顯得尤為重要。具體來說,我們想要為 DNN 引入一種表示相似性概念:我們能夠有效確定兩個神經(jīng)網(wǎng)絡學到的表示在何時相同嗎?
在論文“SVCCA:Singular Vector Canonical Correlation Analysis for Deep Learning Dynamics and Interpretability”中:
https://arxiv.org/abs/1706.05806
我們引入了一種簡單、可擴展的方法來解決這些問題。我們研究的兩個具體應用是比較不同網(wǎng)絡學到的表示和解釋 DNN 中的隱藏層學到的表示。此外,我們還將代碼開源,以便研究社區(qū)可以使用這種方法進行試驗:
https://github.com/google/svcca
我們設置的關鍵是將 DNN 中的每一個神經(jīng)元解釋為一個激活矢量。如下圖中所示,神經(jīng)元的激活矢量是它在輸入數(shù)據(jù)上生成的標量輸出。例如,對于 50 個輸入圖像,DNN 中的一個神經(jīng)元將輸出 50 個標量值,將每個輸入對應的值編碼。這 50 個標量值隨后將組成該神經(jīng)元的激活矢量。(當然,實踐中的輸入遠遠多于 50 個。)
這里的 DNN 有三個輸入:x1、x2、x3??匆幌?DNN 內(nèi)部的神經(jīng)元(紅色加粗,右圖,這個神經(jīng)元生成了一個標量輸出 zi ,對應于每個輸入 xi。這些值構成了神經(jīng)元的激活矢量。
基于這一基本觀察和一些公式,我們引入了“奇異矢量典型相關分析”(SVCCA),這種技術采集兩組神經(jīng)元,然后輸出二者學到的對齊特征圖。重要的是,這種技術會考慮神經(jīng)元排序中的排列(對比較不同網(wǎng)絡至關重要)等表面差異,并且能夠檢測其他更直接的比較無法檢測的相似性。
例如,假設在 CIFAR-10(一個中等規(guī)模圖像分類任務)上訓練兩個卷積神經(jīng)網(wǎng)絡(下面的 net1 和 net2)。為了將這種方法的結果可視化,我們比較了神經(jīng)元的激活矢量與 SVCCA 輸出的對齊特征?;叵胍幌?,神經(jīng)元的激活矢量是輸入圖像上的原始標量輸出。繪圖的 x 軸包含按類別排序的圖像(灰色虛線表示類別邊界),y 軸則是神經(jīng)元的輸出值。
左圖顯示了 net1 和 net2 中的兩個較高激活(較大的歐氏范數(shù))神經(jīng)元。檢查較高激活神經(jīng)元是計算機視覺領域解釋 DNN 的常用方法,但是在這種情況下,net1 和 net2 中的較高激活神經(jīng)元沒有清晰的對應關系,盡管兩者都是在同一個任務上訓練的。不過在應用 SVCCA 后,如右圖所示,我們可以看到兩個網(wǎng)絡學到的潛在表示確實有一些非常相似的共有特征。請注意,表示對齊特征圖的最上面兩行接近一致,次高對齊特征圖(最下面兩行)也是一樣。此外,右圖中的這些對齊映射還顯示出與類別邊界的清晰對應關系。例如,我們看到最上面的對為類別 8 提供負輸出,而最下面的對為類別 2 和類別 7 提供正輸出。
您不僅可以將 SVCCA 應用到不同的網(wǎng)絡,也可以將它用于相同網(wǎng)絡的不同時間,這就讓研究網(wǎng)絡中的不同層如何收斂到它們的最終表示成為可能。下圖比較了 net1 中各層在訓練中的表示(y 軸)和各層在訓練結束時的表示(x 軸)。例如,在左上角的圖(名稱為“0% trained”)中,x 軸表示 net1 中的各層在 100% 訓練后增加的深度,y 軸表示各層在 0% 訓練時增加的深度。每個 (i,j) 方格隨后可以告訴我們層 i 在 100% 訓練后的表示與層 j 在 0% 訓練時的表示之間的相似程度。左下角是輸入層,在 0% 到 100% 訓練狀態(tài)下的表示一致,符合預期。我們對在 CIFAR-10 上訓練的卷積神經(jīng)網(wǎng)絡(最上面一行)和殘差網(wǎng)絡(最下面一行)的多個訓練點進行了比較,例如 0%、35%、75% 和 100% 訓練狀態(tài)。
顯示卷積網(wǎng)絡和殘差網(wǎng)絡在 CIFAR-10 上的學習動態(tài)的繪圖。請注意,還可以看到附加結構:最上面一行的 2x2 塊得益于批量歸一化層,下面一行中的棋盤格樣式則是由于存在殘差連接。
我們找到了自下而上收斂的證據(jù),接近輸入的層先收斂,層越高收斂時間越長。這就引出了一種更快的訓練方法 - 凍結訓練。請參閱我們的論文了解詳細信息。此外,這種可視化還有助于突出顯示網(wǎng)絡的屬性。在最上面一行中,存在多個 2x2 塊。這些塊對應于批歸一化層,與先前的層在表示上是相同的。在最下面一行中,當訓練快要結束時,我們看到出現(xiàn)了類似棋盤格的樣式,這是由于網(wǎng)絡的殘差連接與先前的層有更大的相似性。
目前,我們主要將 SVCCA 應用到 CIFAR-10 上。不過,利用預處理技術與離散傅里葉變換,我們還可以將這種方法擴大到 Imagenet 規(guī)模的模型。我們將這種技術應用到了 Imagenet Resnet 上,比較了潛在表示與不同類別對應表示之間的相似性:
不同類別的潛在表示的 SVCCA 相似性。我們在 Imagenet Resnet 中利用了不同的層,其中 0 表示輸入,74 表示輸出,并比較了隱藏層和輸出類別的表示相似性。有趣的是,不同類別的學習速度不同:消防車類別的學習速度要快于不同犬種的學習速度。此外,兩對犬種(哈士奇類對和?犬類對)的學習速度相同,這反映出它們的視覺相似性。
我們的論文介紹了目前研究成果的更多細節(jié),也探索了不同的應用,例如,通過投影到 SVCCA 輸出來壓縮 DNN,以及凍結訓練,這是一種更節(jié)省計算資源的深度神經(jīng)網(wǎng)絡訓練方法。在探索 SVCCA 的過程中,我們發(fā)現(xiàn)了很多令人興奮的新方向 - 其中,移動到不同的架構上、比較不同的數(shù)據(jù)集和更好地可視化對齊方向是我們很想嘗試的領域。我們希望代碼可以鼓舞許多研究人員將 SVCCA 應用到他們的網(wǎng)絡表示中,解釋和理解他們的網(wǎng)絡正在學習的內(nèi)容。
歡迎加入本站公開興趣群商業(yè)智能與數(shù)據(jù)分析群
興趣范圍包括各種讓數(shù)據(jù)產(chǎn)生價值的辦法,實際應用案例分享與討論,分析工具,ETL工具,數(shù)據(jù)倉庫,數(shù)據(jù)挖掘工具,報表系統(tǒng)等全方位知識
QQ群:81035754
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://systransis.cn/yun/4699.html
摘要:近日,發(fā)布了其關于神經(jīng)網(wǎng)絡可解釋性的研究成果,他們通過刪除網(wǎng)絡中的某些神經(jīng)元組,從而判定其對于整個網(wǎng)絡是否重要。泛化性良好的網(wǎng)絡對于刪除神經(jīng)元的操作更具適應性。通過刪除單個神經(jīng)元和神經(jīng)元組,我們測量了破壞網(wǎng)絡對性能的影響。 深度學習算法近年來取得了長足的進展,也給整個人工智能領域送上了風口。但深度學習系統(tǒng)中分類器和特征模塊都是自學習的,神經(jīng)網(wǎng)絡的可解釋性成為困擾研究者的一個問題,人們常常將其...
摘要:雖然為企業(yè)定制的深度學習框架可以提供重要的價值,但自己構建一個這樣的框架會帶來獨特的挑戰(zhàn)。目前,訓練深度學習模型的較佳選擇是圖形處理單元。實際上,由于規(guī)模和管理方面的復雜性不可預測,許多深度學習項目的最終歸宿都是數(shù)據(jù)科學實驗。 深度學習是受到人類大腦啟發(fā)而產(chǎn)生的機器學習(ML)算法的一種。這些算法也被稱為神經(jīng)網(wǎng)絡,它們特別擅長從嘈雜的數(shù)據(jù)和曾經(jīng)對機器完全不透明的數(shù)據(jù)里探測出模式。雖然神經(jīng)網(wǎng)絡...
閱讀 1760·2023-04-26 00:30
閱讀 3180·2021-11-25 09:43
閱讀 2915·2021-11-22 14:56
閱讀 3218·2021-11-04 16:15
閱讀 1188·2021-09-07 09:58
閱讀 2052·2019-08-29 13:14
閱讀 3138·2019-08-29 12:55
閱讀 1019·2019-08-29 10:57