Rethinking the Value of Network Pruning

Rene Wang
翻滾吧!駭客女孩!
9 min readMay 14, 2020

解構 Lottery Ticket 一文中,提到了有一篇文章對 Lottery Ticket 的結果產生質疑。在 Lottery Ticket 一文中提出 “Winning Tickets” 的概念。“Winning Tickets” 指的是使用裁減過程中保留的權重來重新訓練裁剪後的子網路,這些權重只要保留最初訓練的初始值,就會有如贏得彩卷般,保證重新學習的子網路有較好或相似的表現。而在這篇名為“Rethinking the Value of Network Pruning”文章中,卻發現 “Winning Tickets” 並非總是存在。有時重新任意分配初始權重,並重頭訓練起,比較容易有較好或相似的表現。這篇文章中提到了因為不同 learning rate 的選用,而導致與 Lottery Ticket 論文不同的實驗結果。但在進入和 Lottery Ticket 的比較前,我們先來認識一下網路裁減(network pruning)。

網路裁減最早開始是對類神經網路裡的個別權重做裁減,LeCun et al 在 1990 年發表 Optimal Brain Damage 論文,使用 Hessian 的對角元素和參數擾動的方式來計算每一個參數的貢獻分數(saliency score) ,並根據每個參數的 saliency score 對大型的類神經網路做裁減。裁減的目的為找到一個等價的小型網路,耗費較少的計算資源。使用裁減來產生精簡版的模型,且表現仍維持一樣水平,似乎有點難以想像。但因為在一開始訓練的模型通常是 over-parameterized 的大型網路,在網絡間充滿了重複且非必需的權重,透過裁減,可以去除這些重複的權重,而讓真正重要的網路權重執行工作。

除此之外,基於 Minimum Description Length (MDL) 理論,愈小的網路可以用最少但最重要的 bit 數目 encode feature,因此能夠藉著裁減增加網路的泛化能力,以及使用較少的訓練實例。在當時,計算能力還不足以執行大型網路,所以裁減網路以符合當時硬體計算能力。直到今日,裁減網路仍有相同的應用,如希望能在硬體受限制的 embedded system 上執行原有大型的模型。對於使用裁減演算法來壓縮模型的做法,2016 年由 Han et al 發表隊 “Deep Compression” pipeline 來使透過裁減而達到壓縮網路的流程標準化。這個流程包括了三個 stages,分別是:Pruning, Quantization 和 Huffman coding。至於如何透過 pruning 得到小型等價網路,又可以大致上分為以下流程:

  1. 訓練(Training)一個大型或 over-parameterized 網路。使用 pre-trained 模型亦可。在這個大型的網路中,主要目的是為了能夠學習哪一些網絡連結是重要的,而非達到 SOTA。
  2. 裁減(Pruning):使用某一 criterion 來作為裁減的依據。根據裁減演算法是否有無考慮網路架構,又可以分為 structured 或 unstructured pruning。關於更多分類詳細內容,請繼續往下閱讀。
  3. 重新訓練(re-train):在裁減的過程中,因為權重的數目下降而造成模型表現下滑,藉由重新訓練,將使裁減過後的模型恢復未遭裁剪前的表現。重新訓練的方式,又可以分為兩種方式。第一種稱為 fine-tune,是保持裁減過後留下來的權重,再重新訓練。另一種則是 Random Initialization,是保留裁減過後的網路架構,重新分配初始權重後,重新訓練所得。

上面三個步驟可以構成一次 One-shot pruning 演算法,意為裁減演算法在一次迭代,盡可能找出符合條件的權重。而 Iterative pruning 則是將步驟二和三合併為一個 iteration。在裁減時將會進行多次迭代,直到符合停止條件為止。

在 Rethinking 論文的實驗結果中,他們發現 fine-tuning 在某些網路架構不是必要的步驟。甚至,將裁減過後的網路重新初始化後再重新訓練較易得到較佳的表現。除此之外,他們也發現根據裁減演算法的實現類別,而有不同的結果。現就裁減的分類來介紹:一類是 Unstructured pruning,另一種則是 Structured pruning。

Unstructured pruning 承襲 Optimal Brain Damage 演算法,不考慮網路的結構而針對網路權重個別做裁減。一個常用的演算法就是利用權重的值大小來做裁減。Lottery Ticket 論文和 Deep Compression 都是使用該類方法來做裁減。Unstructured pruning 容易改變權重的分佈並造成稀疏的網路架構,需要特別的格式來儲存和特別的硬體做加速運算。

Structured pruning 則是考慮比個別權重更為大型的網路結構,裁減的目的通常是希望提供該層級的網路架構加速的功能。如,在一個大型的 Convolution Network,最耗時計算的即是 Convolution layers。為了要達成 Convolution layers 加速的目的,適當裁減 Convolution layer 且不造成稀疏分佈,即是 Structured pruning 的工作。

在重製 Lottery Ticket 實驗結果,Rethinking 論文中發現,使用 Structured pruning 根本沒有辦法發現 Winning Tickets。 所以以下為使用 Unstructured pruning 來重現 Lottery Ticket 的實驗結果。

重製 Lottery Ticket 實驗結果

在 Rethinking 論文中所裁減的都是電腦視覺常用的網路結構,包括了 VGG,ResNet 和 DesnseNet。這些架構,除了最後一層是 fully-connected layer 外,都是 fully convolutional network。

所使用的訓練資料包括了 MNIST, CIFAR 和 ImageNet 。至於在參數的調整上,除了採用 He’s Initialization,多是依照論文所紀錄的參數值來調整,因此在 Rethinking 論文中使用了一個稍大的 learning rate 初始值 — 0.1。然而在 Lottery Ticket 的論文中,使用的網絡架構為小於六層的 shallow 網路,在資料上則只取 small-scale 的資料集,如 MNIST 和 CIFAR。在訓練上,Lottery Ticket 的論文則使用 Adam,以及一個較小的預設 learning rate 初始值 — 0.01。

Rethinking 論文作者認為 Lottery Ticket 的論文結果,是因為使用較小的 learning rate 而使學習結果仍依賴初始值的關係。換句話說,就是 Lottery Ticket 的論文,在裁減之前所達到的是 sub-optimal 結果。本文作者更指出,在 Lottery Ticket 的原論文中也提到,當使用 ResNet-18/VGG 網路架構以及一個較大的 learning rate (Section 5)無法找到 Winning Tickets。

論文的比較結果如下:

上圖為 Rethinking 論文的 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 論文作者認為 Winning Ticket 的結果是因為使用較小的 learning rate,造成對初始值依賴的現象。其次,Rethinking 論文作者認為保留適當網路的子結構對重新訓練一個被裁減網路重要,而非網路的權重。

補充結果

表 (a): 比較 Lottery Ticket 論文結果,當 learning rate 的初始值為 0.1 (Rethinking 論文使用)時。使用的資料及為 CIFAR-10 ,模型分別為 VGG-16 和 ResNet-50。Unpruned 欄位所顯示的是網路模型尚未裁減時的正確率。Prune Ratio 欄位則是裁減的比例。Winning Ticket 欄位則是保留被裁減網路的權重初始值,重新訓練所得到的正確率。Random Init 欄位則是任意初始被裁減網路,重新訓練所得到的正確率。每一次欄位的結果都會執行五遍,再取平均。

表 (b):和表(a) 都是使用同樣的實驗方法,唯一不一樣的是 learning rate 。表(b) 使用較小的 learning rate 初始值

參考資料:

  1. Rethinking the Value of Network Pruning

--

--