天天看點

深度神經網絡的“無損”壓縮:一種基于高維神經正切核的方法

作者:AITIME論道

報告簡介

神經網絡壓縮就是在維持神經網絡模型性能的前提下對模型進行輕量化的過程,而進行神經網絡壓縮的前提是了解神經網絡。我們借助随機矩陣理論(Random Matrix Theory) 工具,對于高維高斯混合資料和深度全連接配接網絡,對可以度量網絡性能的神經正切核(Neural Tangent Kernel, NTK) 進行了分析,得到了NTK的漸進譜等價的表達。基于此理論結果,我們發現很多不同的網絡隻要權值的分布滿足按元素獨立同分布且均值是0方差是1,隻要幾個和激活函數相關的參數相同,就會有譜等價的NTK,進而具有幾乎一緻的性能。基于此,我們進一步提出了一種進行權值的稀疏和三值化量化以及激活函數量化的壓縮方法,實驗結果表明了我們壓縮方法的有效性。

杜詠琦:

華中科技大學碩士。

我們知道深度神經網絡在很多領域都取得了很好的成績,但是随之而來的是巨大的計算與存儲開銷。這樣會使得網絡變得環境不友好,很難部署在如邊緣裝置等資源有限的裝置之上。是以,有很多模型壓縮的辦法被提出來解決這個問題。模型壓縮的目的是在保證模型性能的情況下對其進行輕量化的過程。

模型壓縮中最難的地方在于我們對深度神經網絡的理論掌握還不夠充分,是以很難設計出有理論指導的有效的壓縮方法。為了設計有效的壓縮方法,我們首先應該試着去了解深度神經網絡,即希望找到網絡的性能和其激活函數,權值等的關系,并且希望這個關系可以盡可能地精确。

深度神經網絡的“無損”壓縮:一種基于高維神經正切核的方法

NTK可以為我們指明一個方向,其定義就是網絡的輸出對于網絡參數的導數的内積。神經正切核理論說的是對于随機初始化的網絡在網絡的梯度下降步長足夠小,網絡的寬度無限寬的情況下,神經正切核在整個訓練過程是保持不變的。而且訓練過程中的每一步輸出都是可以用神經正切核精确表示出來的。其中最重要的是神經正切核的特征值和特征向量,是以我們說NTK是可以用它的譜來量度網絡收斂性和泛化性的東西。

我們知道NTK可以量化網絡的性能,同時它又和輸入輸出的資料以及網絡的結構、權值随機初始化的方式有關系,是以它能夠建立一個網絡性能和網絡這些元件或特性之間關系的橋梁。然而它目前還做不到十分精确,是以我們進一步借助随機矩陣理論(RMT)工具,對于高維的高斯混合資料和多層的全連接配接網絡,保證權值随機初始化的時候按元素是獨立同分布且滿足均值是0,方差是1。

深度神經網絡的“無損”壓縮:一種基于高維神經正切核的方法

在這些假設條件下,我們進一步分析NTK得到了和NTK等價且更加精确的表達。我們把這個更加精确的表達叫做NTK ~。我們接下來介紹一下是如何找到這個更加精确的表達的。

這裡需要介紹一下CK共轭核,其定義是網絡的輸出除以層寬的均方根之後的輸出的内積的期望。我們将其定義為網絡這一層的CK。

在其他假設條件相同,對于單隐藏層全連接配接網絡,2021年一篇文章提出的理論找到了CK和CK譜等價的精确表達。借助2019年文章中介紹的CK逐層遞推關系,我們就把這個單隐藏層的結論推廣到了多隐藏層網路,也就是我們找到了多隐藏層全連接配接網絡CK譜等價的更加精确表達。

之後借助2019年文章中介紹的CK和NTK之間關系,我們進一步得到了多隐藏層深度全連接配接網絡的NTK的更加精确的表達。我們所有的證明都是通過數學歸納法實作的。

這個表達是什麼樣子的呢?它包括一些和資料相關的項和一些參數,這些參數是同激活函數相關的。我們找到的精确表達可以告訴我們什麼呢?第一是假設中并沒有對權值的具體分布做任何限制,隻要權值能滿足我們的按元素的獨立同分布并且均值是0,方差是1,那麼它的具體分布對于NTK是沒有影響的,是以我們可以調節權值的分布;第二是當我們能保證在βl,1,βl,2,βl,3,Kl四個參數一緻的情況下,我們是可以調節激活函數的形式。隻要我們保證βl,1,βl,2,βl,3,Kl不變,也就能保證NTK不變。

深度神經網絡的“無損”壓縮:一種基于高維神經正切核的方法

基于這兩點,我們就給出了我們的壓縮辦法。因為權值的分布是可以調節的,是以我們就設計了一種稀疏和三值化的權值分布。其中,ε是我們的稀疏度而且是可以在[0,1)區間内調節的。

深度神經網絡的“無損”壓縮:一種基于高維神經正切核的方法

這是我們壓縮權值的辦法.

壓縮激活函數的辦法是我們設計了量化的激活函數,分别是1bit和2bit的激活函數。當然需要說明的是,激活函數一定需要參數, 為了使這裡說的βl,1,βl,2,βl,3,Kl四個參數在壓縮前後保持一緻,我們的激活函數中幾個參數的确定也是用βl,1,βl,2,βl,3,Kl四個參數相同的方程組的解來實作的。下面,我們将解釋一下為何會有兩種類型的激活函數。

我們最終希望兩個網絡的最後一層去比對,以及我們知道資料層是一樣的,是以希望第一層的βl,1,βl,2,βl,3比對,第二層的βl,1,βl,2,βl,3比對,然後以此類推,最後一層的βl,1,βl,2,βl,3與Kl比對。是以我們的激活函數在前面幾層的方程組會更少,參數也會更少,而在最後一層的參數會多一些。

這就是我們整個的壓縮過程。也就是基于對我們理論結構或的兩點觀察設計了稀疏量化的權值分布和量化的激活函數。

深度神經網絡的“無損”壓縮:一種基于高維神經正切核的方法

接下來,我們通過實驗來驗證我們的辦法。我們和一些比較簡單粗暴的辦法,如随機剪枝和用一個1bit激活函數進行量化的方法對比。同時也和比較常用的方法。基于幅值的剪枝(magnitude-based pruning)進行了對比。

深度神經網絡的“無損”壓縮:一種基于高維神經正切核的方法

我們的方法是上圖中藍色和棕色的線,在圖中是偏左且靠上的。偏左是證明我們可以實作較高的壓縮率,靠上是說性能的損失較小。棕色的線表示隻進行了權值的稀疏和量化,藍色的線表示既進行了權值壓縮,也進行了激活函數量化。

值得注意的是,我們是在高斯混合資料上推導出的理論,但是實驗是在真實資料集,MNIST和CIFAR10上進行的,他們并不嚴格滿足我們對于資料分布的假設,但是實驗結果仍然表明了我們方法的有效性,是以,我們的實驗也表明了我們的理論具有一定程度上的普适性。

最後總結一下我們文章的内容:

(1)首先我們借助随機矩陣工具來進一步的分析NTK,并在一定條件下得到了NTK更加精确和等價的表達。基于這個表達,我們注意到了權值的分布和激活函數的形式是可以改變的,即這兩部分存在備援而可以進行壓縮,這并不會改變NTK,也就意味着不會改變性能。

(2)我們的壓縮辦法實作了權值的稀疏和三值化以及激活函數的量化。

(3)另外,我們的結果還有很多有趣的應用。比如我們足夠精細的理論結果可以被用來更精細地了解網絡的運作機制。比如通過觀察表達式中的幾個參數(這些參數權重了一些資料相關的統計量)在網絡越來越深的時候是怎麼變化的,我們就可以了解到在網絡往深層傳輸的過程中什麼資料的統計量被放大或是被縮小,進而了解網絡為何會對資料有效。因為我們給出的是NTK的等價表達,是以我們還可以做一些網絡訓練過程中動态性的分析。另外,我們的結果也是可以推廣到一些更加複雜的模型設定之中的,如卷積網絡等等。

繼續閱讀