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

閱讀時間約 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”

參考資料:



為什麼會看到廣告
avatar-img
71會員
35內容數
<p>專為年輕的女孩設計的科學/資訊科技寫作計畫,希望讓每位女孩在體脂肪、青春痘與暗戀對象之外,還能找到新的生活樂趣。</p>
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Rene Wang的沙龍 的其他內容
多任務學習指的是使用多個相關的任務目標(Multiple objectives)來學習共享的表示方法。在這篇文章中,我們會介紹 google 的 youtube recommender 系統就是利用 Multi-gate Mixture of Experts 來達成多目標多任務學習的方式。
連同上兩篇文章,我們介紹了機械學習裡的基石,並踩著這些基石了解了改變資料餵送方式,以及動態改變學習率或在更新項中加入動量的方法。我們可以看到這些梯度下降的變化,主要是解決兩個問題:梯度震盪和非最佳的局部最小值造成學習停滯不前的問題。在這篇文章中,我們著重動量和 Adam 的方法來達成克服以上的問題。
這篇文章從類神經網路的起源,也就是單神經元的感知器。簡單的感知器迭代演算法使單神經元可以學習,但卻無法學習超過非線性,如 XOR 的資料分布。另外,本文還介紹了 Logistic regression,藉由透過非線性轉換來使線性輸出近似於機率分佈。最後則以一場大師賭局結束(SVM vs NN)。
在 2018 年,筆者介紹了普華永道(PwC)關於人工智慧的十項預測。我們將要藉由這篇文章,先來回顧在過去的一年中,電腦視覺和自然語言領域有什麼新的發展。在本文的最後,則提及 PwC 在今年提出的六項建議,主要使已投資 AI 的公司能成功商轉,以及關於自動化資料處理和機械學習的現況。
本文提到如何以類神經網路為主的深度學習方法,來進行物體偵測。文中包括基礎的物體偵測簡介:如影像問題分類,影像處理和傳統非類神經網路為主的物體偵測方法。這些傳統方法,仍可以在類神經網路的方法中找到其應用。最後簡略敘述當前使用深度卷積網路作為物體偵測的主要研究方向,並對學術界常用的訓練資料集做分析介紹。
在此篇文章終將會簡述機械學習的發展,簡介深度學習以 Sequence to Sequence 為架構,並在多場機械翻譯的學術年會,獲得成績斐然的結果。在本文中,會粗略介紹 Sequence to Sequence 架構並以 google 在 2017 對Seq2Seq 所進行的大規模參數。
多任務學習指的是使用多個相關的任務目標(Multiple objectives)來學習共享的表示方法。在這篇文章中,我們會介紹 google 的 youtube recommender 系統就是利用 Multi-gate Mixture of Experts 來達成多目標多任務學習的方式。
連同上兩篇文章,我們介紹了機械學習裡的基石,並踩著這些基石了解了改變資料餵送方式,以及動態改變學習率或在更新項中加入動量的方法。我們可以看到這些梯度下降的變化,主要是解決兩個問題:梯度震盪和非最佳的局部最小值造成學習停滯不前的問題。在這篇文章中,我們著重動量和 Adam 的方法來達成克服以上的問題。
這篇文章從類神經網路的起源,也就是單神經元的感知器。簡單的感知器迭代演算法使單神經元可以學習,但卻無法學習超過非線性,如 XOR 的資料分布。另外,本文還介紹了 Logistic regression,藉由透過非線性轉換來使線性輸出近似於機率分佈。最後則以一場大師賭局結束(SVM vs NN)。
在 2018 年,筆者介紹了普華永道(PwC)關於人工智慧的十項預測。我們將要藉由這篇文章,先來回顧在過去的一年中,電腦視覺和自然語言領域有什麼新的發展。在本文的最後,則提及 PwC 在今年提出的六項建議,主要使已投資 AI 的公司能成功商轉,以及關於自動化資料處理和機械學習的現況。
本文提到如何以類神經網路為主的深度學習方法,來進行物體偵測。文中包括基礎的物體偵測簡介:如影像問題分類,影像處理和傳統非類神經網路為主的物體偵測方法。這些傳統方法,仍可以在類神經網路的方法中找到其應用。最後簡略敘述當前使用深度卷積網路作為物體偵測的主要研究方向,並對學術界常用的訓練資料集做分析介紹。
在此篇文章終將會簡述機械學習的發展,簡介深度學習以 Sequence to Sequence 為架構,並在多場機械翻譯的學術年會,獲得成績斐然的結果。在本文中,會粗略介紹 Sequence to Sequence 架構並以 google 在 2017 對Seq2Seq 所進行的大規模參數。
你可能也想看
Google News 追蹤
Thumbnail
本系列將討論 LLM 時代中,分散 ML workload 的各種方法。作為系列的第一篇,我們將提及 High-level 的概論,譬如分散式訓練的各種切法、Model Parallelism 的相依問題,以及改善 Network Topology 等課題。
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 我們從 AI說書 - 從0開始 - 103 至 AI說書 - 從0開始 - 105 的努力,已經完成資料集前處理,現在需要定義一個函數來加載這些清理過的數據集,並在預處
前言 在閱讀網路文章時,有看到說1X1的卷積層能夠升維、降維,不了解所以然,故來查找。:P 正文 卷積核尺寸為1X1的卷積層能夠達到降低和增加輸出的維度,是因為它能夠改變輸入數據的通道數量(depth),而不改變其空間維度(height和width),原理如下。 1X1卷積在每個空間位置
Thumbnail
本文主要介紹神經網路訓練辨識的過程,利用fashion_mnist及簡單的神經網路來進行分類。 使用只有兩層的神經網路來訓練辨識fashion_mnist資料。
本文介紹了在深度學習中使用Batch Normalization來解決error surface複雜性的問題。通過特徵歸一化來加速收斂速度和訓練順利程度。同時,也提到了在測試階段使用moving average計算平均值和標準差的方法。
瞭解如何透過Regression實作Classification,使用one-hot vector表示不同的類別,並透過乘上不同的Weight和加上不同的bias來得到三個數值形成向量。同時通過softmax的方式得到最終的y'值,並探討使用Cross-entropy來計算類別的loss。
Thumbnail
題目敘述 題目會給定一個鏈結串列的起始點,要求我們把其中區間總和為0的部分刪除掉。 例如 1→ 2 → -2 → 3 → 4 裡面有一段是2 → -2 區間總和為零,所以簡化刪除後變成 1→ 3 → 4 題目的原文敘述 測試範例 Example 1: Input: head
砍掉重練…。不知道什麼時候起這四個字成了資訊人員的工作原則之一,但是,只要系統修改的時間超出一定範圍,砍掉重練的時間成本絕對低於原系統修改。 可是在基礎建設的部份呢? 例如伺服器、網路設備方面呢? 其實,砍掉重練也是常有的事,尤其虛擬化後,Server要砍掉重練更是輕而舉。
Thumbnail
在POWER QUERY從0到1 #9 樞紐資料行的功能是將長資料轉換成寬資料,使數據可以快速分析。 而所謂的取消資料行樞紐,就是把寬資料轉換成長資料的一個過程,也就是資料的正規化。 如下圖所示,左邊的圖為二維結構,屬於寬資料,每列可能包含多筆數據(1.2.3月),右邊的圖屬於長資料,每列都
Thumbnail
「元件削減」刪除系統中的特定元件,把此元件的有用功能轉移到系統其它剩餘的元件或是超系統(周遭環境中)的元件,實現成本節省、製程簡化、易用易修、提升系統整體效益的目標。本文中大學旅館系的師資削減案例,可突顯了削減對成本控制的實際情況。元件削減常用在專利迴避方面;因元件少於別人專利,可以迴避對方專利。
Thumbnail
本系列將討論 LLM 時代中,分散 ML workload 的各種方法。作為系列的第一篇,我們將提及 High-level 的概論,譬如分散式訓練的各種切法、Model Parallelism 的相依問題,以及改善 Network Topology 等課題。
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 我們從 AI說書 - 從0開始 - 103 至 AI說書 - 從0開始 - 105 的努力,已經完成資料集前處理,現在需要定義一個函數來加載這些清理過的數據集,並在預處
前言 在閱讀網路文章時,有看到說1X1的卷積層能夠升維、降維,不了解所以然,故來查找。:P 正文 卷積核尺寸為1X1的卷積層能夠達到降低和增加輸出的維度,是因為它能夠改變輸入數據的通道數量(depth),而不改變其空間維度(height和width),原理如下。 1X1卷積在每個空間位置
Thumbnail
本文主要介紹神經網路訓練辨識的過程,利用fashion_mnist及簡單的神經網路來進行分類。 使用只有兩層的神經網路來訓練辨識fashion_mnist資料。
本文介紹了在深度學習中使用Batch Normalization來解決error surface複雜性的問題。通過特徵歸一化來加速收斂速度和訓練順利程度。同時,也提到了在測試階段使用moving average計算平均值和標準差的方法。
瞭解如何透過Regression實作Classification,使用one-hot vector表示不同的類別,並透過乘上不同的Weight和加上不同的bias來得到三個數值形成向量。同時通過softmax的方式得到最終的y'值,並探討使用Cross-entropy來計算類別的loss。
Thumbnail
題目敘述 題目會給定一個鏈結串列的起始點,要求我們把其中區間總和為0的部分刪除掉。 例如 1→ 2 → -2 → 3 → 4 裡面有一段是2 → -2 區間總和為零,所以簡化刪除後變成 1→ 3 → 4 題目的原文敘述 測試範例 Example 1: Input: head
砍掉重練…。不知道什麼時候起這四個字成了資訊人員的工作原則之一,但是,只要系統修改的時間超出一定範圍,砍掉重練的時間成本絕對低於原系統修改。 可是在基礎建設的部份呢? 例如伺服器、網路設備方面呢? 其實,砍掉重練也是常有的事,尤其虛擬化後,Server要砍掉重練更是輕而舉。
Thumbnail
在POWER QUERY從0到1 #9 樞紐資料行的功能是將長資料轉換成寬資料,使數據可以快速分析。 而所謂的取消資料行樞紐,就是把寬資料轉換成長資料的一個過程,也就是資料的正規化。 如下圖所示,左邊的圖為二維結構,屬於寬資料,每列可能包含多筆數據(1.2.3月),右邊的圖屬於長資料,每列都
Thumbnail
「元件削減」刪除系統中的特定元件,把此元件的有用功能轉移到系統其它剩餘的元件或是超系統(周遭環境中)的元件,實現成本節省、製程簡化、易用易修、提升系統整體效益的目標。本文中大學旅館系的師資削減案例,可突顯了削減對成本控制的實際情況。元件削減常用在專利迴避方面;因元件少於別人專利,可以迴避對方專利。