網路裁減(Network Pruning)和解構樂透彩卷假說

2021/02/26閱讀時間約 17 分鐘

Pruning overview

1997年 LeCun et al 發表 Optimal Brain Damage (OBD)論文,隨後 1993 年 Hassibi & Stork 發表另一篇相近的論文 Optimal Brain Surgeon。這兩篇論文都是討論類神經網路裁減。網路裁減可以幫助網路稀疏化,使用較小的網路來記憶訓練實例,在模型表現不下降過多的前提下,避免佔用過大的記憶體等等的好處。網路裁減在實踐上可以應用在權重(weights),偏移(bias)和啟動函示(activations)。然而,因為偏移的數目不大,對輸出又有決定性的影響,通常不會成為網路裁減的對象。而,啟動函式則是利用 ReLU 啟動函示,將小於零的值直接設為零,達到啟動函式稀疏化的效果。所以,網路裁減多半都是針對權重的大小(magnitude),設定一個門檻值,應用二元條件,將欲裁減掉或小於門檻值的權重設為零,欲留下的或超過門檻值的權重設為一。
網路裁減可以幫助神經網路模型稀疏化(圖左)
圖片來源:參考資料 [5]
兩篇文章都是使用二次偏微的資訊對類神經網路裡的個別權重做裁減。其中 OBD 一文使用 Hessian 的對角元素和參數擾動的方式來計算每一個參數的 saliency score ,並根據每個參數的 saliency score 對大型的類神經網路做裁減。裁減的目的為找到一個等價的小型網路,耗費較少的計算資源。使用裁減來產生精簡版的模型,且表現仍維持一樣水平,似乎有點難以想像。但因為在一開始訓練的模型通常是 over-parameterized 的大型網路,在網絡間充滿了重複且非必需的權重,透過裁減,可以去除這些重複的權重,而讓真正重要的網路權重執行工作。
除此之外,基於 Minimum Description Length (MDL) 理論,愈小的網路可以用最少但最重要的 bit 數目 encode feature,因此能夠藉著裁減增加網路的泛化能力,以及使用較少的訓練實例。在當時,計算能力還不足以執行大型網路,所以裁減網路以符合當時硬體計算能力。直到今日,裁減網路仍有相同的應用,如希望能在 embedded system 上執行大型的模型。現行壓縮網路的方法包括了,low-rank approximation of weights,weight quantization,knowledge distillation 和 network pruning。其中,以 network pruning 的結果較易達到原模型的 SOTA(state-of-the-art)。

從是否執行 fine-tuning,網路裁減可分為 one-shot pruning 和 iterative pruning。 One-shot pruning 是對已訓練完的模型做一次性裁減和 retraining。而 iterative pruning 則是以一層一層的方式裁減並做 re-training,也就是 fine-tuning 網路的權重。雖然 one-shot pruning 通常可以達到相當不錯甚至於兩倍的權重參數縮減,而不至於讓模型表現下降,但是 iterative pruning 通常可以達成更高的稀疏程度以及更好的表現。
繪製被裁減的參數量和模型正確率的關係圖。可以看到當被裁減模型加入 retraining,(實線)正確率較無加入 retraining (虛線)高。除此之外,當 retraining 加入 L2 regularization 處罰項時,正確率也比 L1 處罰項時要高。沒有 retraining 時,則為 L1 regularization 正確率要比 L2 regularization 高。Iterative pruning 給予最好的正確率結果。
圖片來源:參考資料 [5]
若從是否進行有結構性的裁減,網路裁減演算法可以分為 element-wise pruning 和 structure pruning。前者不考慮網路的架構,將每一個權重視為獨立的個體,單獨裁減。而後者,則是將網路的架構考慮在內,有結構性的裁剪掉屬於同一結構的權重,比如說對 convolution network 做 filter pruning 即是裁減掉一整個 filter 相關的權重包括相連的 feature maps。這麼做的好處在於不會產生稀疏連結,因而需要特別的函式庫支援。
filter pruning 的示意圖。移除 i+1層的 filter,除了會移除相對應的 output feature map(藍色直條)也會一併移除 i+2 層的 input feature map(藍色橫條)。ni 為第 i 層的 channel number
圖片來源:參考資料 [7]
至於對於使用裁減演算法來壓縮模型的做法,2016 年由 Han et al 發表 “Deep Compression” pipeline 來使透過裁減而達到壓縮網路的流程標準化。

Deep Compression Model

Deep Compression pipeline 包括三個步驟,分別是:裁減,network quantization and weight sharing 和 Huffman encoding。下圖,就是這三個步驟的細節流程圖。
圖片來源:參考資料 [6]
在裁減上,Deep Compression 採用 iterative unstructure pruning,並可達到九到十三倍的壓縮率。
在 network quantization and weight sharing 上,作者先使用 K-Means 方法對權重做 clustering,產生 code book 後,再將權重分配到相對應的 cluster 裡,完成 weight quantization 和 sharing。上圖中,每一個 cluster 被塗上不同的顏色,總共有四個不同的 clusters 和對應的 centroids,權重被分配到同一個 cluster 裡會共享centroid 的權重。在 back propagation 時,梯度計算也會根據不同的 cluster,對共享的權重做加總後,乘上學習率(圖中以 lr 表示)後更新。在這一個步驟中,二十七到三十一倍的壓縮率可以達成。
最後使用 Huffman encoding 來壓縮 weights 和 indices,Huffman 是一種不定長度的 encoding 方法,主要是依賴來源符號的出現率,將最常出現的來源符號用最少的位元數來 encode。在這個階段可達成三十五到四十九倍的壓縮率。
了解了網路裁減在模型壓縮上的應用,接下來用樂透彩卷假說的實例說明網路裁減對類神經網路訓練的影響。

解構 Lottery Ticket Hypothesis

2019 年發表的樂透彩卷假說(Lottery Ticket Hypothesis)的論文[1]。在該論文中,作者們進行一個實驗,進而發現在大型類神經網路中內嵌了一個小的子網路。透過巧妙的重新設定初始值以及基於權重選擇條件,應用遮罩建構出一個稀疏網路後,作者們發現該小型網路在一定的訓練迭代數目後可以達到與原先大型網路一樣的表現。
在這個實驗中,透過權重選擇條件而被選擇做為小型網路中可訓練權重,因為一開始的初始值設定正確,可以看做贏得樂透彩卷般幸運,所以才又被稱為樂透彩卷假說(Lottery Ticket Hypothesis)。為了能夠解釋這個「幸運」的小網路的形成,許多的研究者分別提出他們各自的實驗。
第一篇 Deconstructing Lottery Tickets: Zeros, Signs, and the Supermask [2],給予樂透彩卷假說的實驗步驟更謹慎的定義。在他們的定義中尋找樂透權重的步驟如下:
  1. 給定一類神經網路架構,隨機初始權重。並設定權重選擇遮罩(Mask)為 1,表示所有的權重都會被選入首回合的訓練中。
  2. Mask Criterion: 利用 Early Stopping 的方式決定首回合的訓練迭代數目。依據一定的遮罩條件(Mask Criterion)選取「樂透權重」。通常 Mask Criterion 是權重初始值和訓練停止時的權重最佳值。在樂透彩卷理論中所採用的是前 top p% 的權重值,這些權重值相對應的遮罩值會被設為 1。
  3. Mask-1 actions:這個步驟是決定當遮罩被設為 1 的權重該採取的行為。這些權重即是所謂的贏得彩卷權重。這些權重會重設為初始值,並在新一回的訓練中,重新訓練。
  4. Mask-0 actions:這個步驟是決定當遮罩被設為 0 的權重該採取的行為。這些權重即是被裁減掉的權重。這些權重會重設為 0,並且不會在新一回的訓練中被更新。
上述的步驟僅執行一次(one shot pruning)的網路裁減(network pruning),若要進行多次裁減,則重複以上步驟即可。
這個簡單的程序,使最佳化的研究者感到迷惑,於是隨後又有許多相關論文被發表,在參考資料 [2] 的作者們,則是嘗試了比 [1] 更多變異的條件而發現三個主要的元素能找到與完整網路相等表現的稀疏子網路。這三個要素誠如論文的名稱,分別是:
  1. Zeros: 有無將 Mask-0 actions 在重新訓練時設為 0,在恢復子網路是一個很重要的 Mask-0 actions 條件。若將 Mask-0 actions 設為原權重初始值,並限制他們在訓練的過程中更新,除非在相當大的權重都被裁減的情況,否則則會導致子網路的表現不盡理想。
  2. Signs:將 Mask-1 action 改變為權重須重設為一個正負號相同(Sign)的常數而非最初的初始值。該實驗發現,即使這個類別的權重沒被重設為最初初始值,僅僅只是正負號相同,也可提高子網路的表現。
  3. Super Mask:在 Mask-0 actions 的實驗中,[2] 的作者們發現藉著給予特定權重適合的遮罩值,單單藉著使用遮罩,便可使未訓練的網路獲得比隨機更好的表現。他們稱呼這個可以學習的遮罩為 Super Mask「註一」學習的部分,Super Mask 先利用 sigmoid 來產生 Bernoulli 分布的 p 參數,遮罩的部分則由前述產生 Bernoulli 分布來決定。他們發現使用可以學習的 Super Mask 和對權重進行 Dynamic Weight Rescaling (乘上所有權重和遮罩值為 1 的比值),其表現和未使用遮罩從頭學起的網路相等。確實的數據,請見下表。
Table 7 in [2] 。前兩行分別為 untrained network + Super Mask。”init” 代表重新初始被遮罩權重。”S.C.” 代表重新初始被遮罩權重為相同正負號的常數。接著的兩行則是 untrained network + Learned Super Maks。再接著的兩行則是使用 Dynamic Weight Rescaling 來改變權重值的 untrained network。最後一行則是未曾裁減按照最陡梯度下降法所訓練 network。
然而樂透彩卷假說也非無人敢挑戰。下一篇介紹的文章將會提供與彩卷假說相反的實驗資料。

重製 Lottery Ticket 實驗結果

在 [3] 中所裁減的都是電腦視覺常用的網路結構,包括了 VGG,ResNet 和 DesnseNet。這些架構,除了最後一層是 fully-connected layer 外,都是擁有 fully convolutionary network。而主要裁減的對象是每一個 convolution layer 的 channel 參數。
所使用的訓練資料包括了 MNIST, CIFAR 和 ImageNet 。至於在參數的調整上,除了採用 He’s Initialization,多是依照論文所紀錄的參數值來調整,因此在 Rethinking 論文 [3] 中使用了一個稍大的 learning rate 初始值 —  0.1。然而在 Lottery Ticket 的論文中,使用的網絡架構為小於六層的 shallow 網路,在資料上則只取 small-scale 的資料集,如 MNIST 和 CIFAR。在訓練上,Lottery Ticket 的論文則使用 Adam,以及一個較小的預設 learning rate 初始值 —  0.01。
Rethinking 論文 [3] 作者認為 Lottery Ticket 的論文結果,是因為使用較小的 learning rate 而使學習結果仍依賴初始值的關係。換句話說,就是 Lottery Ticket 的論文,在裁減之前所達到的是 sub-optimal 結果。本文作者更指出,在 Lottery Ticket 的原論文 [1] 中,他們也提到,當使用 ResNet-18/VGG 網路架構以及一個較大的 learning rate (Section 5)無法找到 winning tickets。
論文的比較結果如下:
圖片來源:參考資料 [3]
上圖為 Rethinking 論文 [3] 的 Figure 7。圖中數據皆使用 CIFAR-10 資料集,針對 VGG-16 和 ResNet-50 兩個 CNN 架構做裁減。訓練中,對每一個結果會重複進行五遍,並取平均值。在本實驗中,作者們使用兩個 learning rate 初始值, 0.1( Rethinking 論文)和 0.01 (Lottery Ticket 中使用),並且報告裁減網路在兩種不同的重新訓練方式,隨著參數的裁減比率變化的正確度。這兩種重新訓練方式為 Winning Tickets 和 Random Init。 Winning Ticket 保留被裁減網路的權重初始值後,再重新訓練的正確率。 Random Init 則是任意初始被裁減網路的權重後,再重新訓練的正確率。裁減的方式都是 Unstructured Pruning,但分為 Iterative pruning (上)或 One-shot pruning (下)。
作者們發現,當使用較小的 learning rate (虛線,紅色為任意初始,藍色為保留 Winning Tickets 的初始值),除了 ResNet -50 的尾端,高於 80% 的參數裁減,訓練結果都為 sub-optimal,或低於較大的 learning rate (實線)。
在小的 learning rate,比較容易看到 Winning Tickets 的正確率高於 Random Init,而在大的 learning rate,在某些裁剪比率中,Random Init 要較 Winning Ticket 佳,但大多數兩者則沒有太大的差別。
從與 Lottery Ticket 論文的結果比較,Rethinking 論文 [3] 作者認為 Winning Ticket 的結果是因為使用較小的 learning rate,造成對初始值依賴的現象。其次,Rethinking 論文 [3] 作者認為網路的結構對重新訓練一個被裁減網路重要,而非網路的權重。

註釋:

註一:原文為 “masks that can produce better-than-chance accuracy without training of the underlying weights”

參考資料:



為什麼會看到廣告
Rene Wang
Rene Wang
程式設計師是將咖啡轉換為程式碼的魔術師。40%偽文青,35%網路宅女,15%生活白癡,10%仍然尋找生命的意義(或仍然作著白日夢)。
留言0
查看全部
發表第一個留言支持創作者!