PACT: PARAMETERIZED CLIPPING ACTIVATION FOR QUANTIZED NEURAL NETWORKS 论文学习
摘要
深度學習算法以犧牲大量的計算成本為代價,實現了較高的分類精度。為了解決這一成本,已經提出了一些量化方案——但這些技術大多集中于量化權重,與激活相比,這些權重的規模相對較小。本文提出了一種新的訓練激活量化方案,該方案使神經網絡能夠在超低精度權值和激活下工作,而沒有任何顯著的精度下降。這種技術,PArameterized Clipping acTivation (PACT)即準參數化裁剪激活(PACT),使用一個激活裁剪參數α,在訓練過程中進行優化,以找到正確的量化尺度。PACT允許將激活量化到任意比特精度,同時相對于已發布的最先進的量化方案實現了更好的精度。我們首次表明,權重和激活都可以量化到4位的精度,同時仍然可以在一系列流行的模型和數據集上實現與全精度網絡相媲美的精度。我們還表明,在硬件中利用這些精度降低的計算單元可以在推斷性能方面實現超線性改進,這是由于加速器計算引擎領域的顯著減少,以及在芯片上存儲器中保留量化模型和激活數據的能力。
1. 引言
PACT允許顯著減少表示權重和激活所需的位寬,并為權衡硬件復雜性和模型準確性提供了新的機會。
這項工作的主要貢獻包括:
1):一種新的激活量化方案,用于尋找訓練過程中的最優量化尺度。我們引入了一個新的參數α,用于表示激活函數中的剪切水平,并通過反向傳播進行學習。α設置的量化尺度小于ReLU,以減少量化誤差,但比傳統的剪切激活函數(在以前的方案中使用)大,以允許梯度更有效地流動。此外,還對損失函數中的α進行了正則化處理,使其收斂速度加快。我們對PACT在保持模型準確性方面的預期有效性進行了推理和分析。
2)定量結果證明了PACT在多個模型和數據集上的有效性。根據經驗,我們表明:(a)對于極低的位精度(權重和激活度為≤2位),與所有發布的方案相比,PACT獲得了最高的模型精度,而基于PACT的(b)4位量化cnn實現了類似于單精度浮點表示的精度。
3)系統性能分析證明了不同位表示與模型精度在硬件復雜性方面的權衡。我們證明了在計算引擎領域的顯著減少是可能的,并使用它來估計可實現的系統級性能的提高。
3. 激活量化過程中的挑戰
權重的量化等價于離散損失函數的假設空間相對于權重變量的關系。因此,在模型訓練過程中確實可以補償權重量化誤差(HWang&Sung,2014;Courbariaux等人,2015)。另一方面,傳統的激活函數沒有任何可訓練的參數,因此量化激活所產生的誤差不能通過反向傳播得到直接補償。
當ReLU(cnn中最常用的激活函數)作為層激活函數(ActFn)時,激活量化變得更加具挑戰性。ReLU允許激活的梯度通過深層傳播,因此相對于其他激活函數實現了優越的精度(Nair&Hinton(2010))。然而,由于ReLU函數的輸出是無界的,因此ReLU后的量化需要一個較高的動態范圍(即更高的比特精度)。在圖1中,我們給出了使用ReLU的CIFAR10數據集的ResNet20的訓練和驗證誤差,并表明ReLU量化的精度顯著降低。
研究表明,這種動態范圍問題可以通過使用剪切激活函數來緩解,該函數為輸出設置了一個上界(Hubara等人(2016b);Zhou等人(2016))。然而,由于層對層和模型的差異,很難確定全局最優剪切值。另外,如圖1所示,雖然使用量化剪切得到的訓練誤差小于使用量化ReLU得到的訓練誤差,但驗證誤差仍然明顯高于基線。
最近,通過應用half-wave Gaussian quantization方案來實現激活,已經部分地解決了這一挑戰(Caietal.(2017))。基于批規范歸一化后的激活接近均值和單位方差為零的高斯分布,他們使用勞埃德算法找到該高斯分布的最優量化尺度,并對每一層使用該尺度。然而,這種技術也沒有充分利用反向傳播的強度來最優地學習剪切水平,因為所有的量化參數都是離線確定的,并且在整個訓練過程中保持不變。
4. PACT: PARAMETERIZED CLIPPING ACTIVATION FUNCTION
基于這些見解,我們引入了PACT,一種新的激活量化方案,其中ActFn具有參數化的剪切水平,α.α通過基于梯度下降的訓練進行動態調整,目的是最小化量化產生的精度退化。在PACT中,cnn中傳統的ReLU激活功能被以下功能所取代:
其中,α將激活的范圍限制為[0,α]。截斷的激活輸出被線性量化為k位用于點積計算,其中
α越大,參數化的剪切函數就越類似于ReLUActfn。為了避免由于動態范圍較寬而產生的大量化誤差,我們在損失函數中包含了一個α的l2正則化器。圖2顯示了在CIFAR10-ResNet20的全精度訓練過程中,從初始值為10開始并使用l2-正則化器時,α的值是如何變化的。可以觀察到,隨著訓練階段的進行,α收斂于比初始值小得多的值,從而限制了激活的動態范圍,并最小化了量化損失。
α越大,參數化的剪切函數就越類似于ReLUActfn。為了避免由于動態范圍較寬而產生的大量化誤差,我們在損失函數中包含了一個α的l2正則化器。圖2顯示了在CIFAR10-ResNet20的全精度訓練過程中,從初始值為10開始并使用l2-正則化器時,α的值是如何變化的。可以觀察到,隨著訓練階段的進行,α收斂于比初始值小得多的值,從而限制了激活的動態范圍,并最小化了量化損失。
4.1 了解參數化剪輯是如何工作的
當激活被量化時,網絡參數的整體行為會受到訓練過程中量化誤差的影響。為了觀察網絡訓練過程中激活量化的影響,我們對剪切參數α進行了掃描,并記錄了有量化和沒有量化時的訓練損失。圖中。3a、b和3c分別在預訓練的SVHN網絡的α范圍內顯示交叉熵和訓練損失(交叉熵+正則化)。用所提出的量化方案對加載的網絡進行訓練,即被替換為其7個卷積層的參數化裁剪ActFn。在計算交叉熵和訓練損失時,我們每次掃描一層α的值,保持所有其他參數(權重(W)、偏差(b)、BatchNorm參數(β,γ)和其他層的α)不變。
通過全精度正向傳遞訓練計算出的交叉熵如圖3a所示。在這種情況下,隨著α的增加,交叉熵在許多層中收斂到一個很小的值,這說明當沒有應用量化時,ReLU是一個很好的激活函數。但即使對于全精度情況,訓練剪切參數α也有助于減少某些層的交叉熵;例如,ReLU(即α=∞)對于act0和act6層不是最優的。
接下來,通過量化計算的交叉熵如圖3b所示。隨著量子化,交叉熵在大多數情況下隨著α的增加而增加,這意味著ReLU不再存在有效。我們還觀察到,最優的α對于不同的層有不同的范圍,這促使人們需要通過訓練來“學習”量化尺度。此外,我們觀察到某些α范圍(如act6)的交叉熵平臺,導致基于梯度下降的訓練困難。
最后,在圖3c中,我們展示了總的訓練損失,包括上面討論的交叉熵和α正則化的代價。正則化有效地消除了訓練損失中的高原,從而有利于基于梯度下降的訓練的收斂。同時,α正則化并不擾動全局最小點。例如,圖3c中的實心圓是從預訓練模型中提取的最優α,處于訓練損失曲線的最小值。下一節將討論的正則化系數λα是一個額外的超參數,它控制了正則化對α的影響。
4.2超參數的探索
For this new quantization approach, we studied the scope of α, the choice of initial values of α,and
the impact of regularizing α. We briefly summarize our findings below, and present more detailed
analysis in Appendix A.
從我們的實驗來看,α的最佳范圍是在每層中共享α。這種選擇還降低了硬件的復雜性,因為在一個層中所有精度降低的相乘累積(MAC)操作完成后,α只需要相乘一次。
在α的初始化選擇中,我們發現將α初始化到一個相對于典型的激活值更大的值是有利的,然后在訓練過程中應用正則化來減少它。
最后,我們觀察到應用l2正則化與相同的正則化參數λ效果相當好。我們還觀察到,正如預期的那樣,當使用更高的比特精度時,λα的最優值略有下降,因為更多的量化級別會導致激活量化的更高分辨率。
此外,我們遵循了許多其他量化的CNN研究的實踐(例如,Hubara等人(2016b);Zhou等人(2016)),并且沒有量化第一層和最后一層,因為這些已經被報道會顯著影響準確性
5. 實驗
圖4:
5.1激活量化性能
我們首先使用不同的cnn來評估我們的激活量化方案。圖4顯示了測試cnn對PACT的訓練和驗證誤差。總的來說,比特精度越高,訓練/驗證誤差就越接近全精度參考。具體地說,可以看到,使用高于3位的訓練幾乎完全收斂于全精度基線。當激活位精度至少為4位時的所有情況下,最終的驗證誤差相對于全精度驗證誤差的差異都小于1%。
我們進一步比較了之前的DoReFa、LPBN和HWGQ三種方案的激活量化性能。我們使用精度退化作為量化性能度量,它被計算為全精度精度和每個量化比特精度的精度之間的差異。圖4f顯示了當每個量化方案使用相同的權重位精度(括號內表示)時,ResNet18(左)和ResNet50(右)的精度下降(top1)。總的來說,我們觀察到,隨著我們增加激活的比特精度,精度下降會降低。對于ResNet18和ResNet50,與其他量化方案相比,PACT始終實現了較低的精度下降,證明了PACT相對于之前的量化方法的魯棒性。
5.2 PACT量化對于cnns的性能
在本節中,我們證明了盡管PACT以激活量化為目標,但它并不排除我們也使用權重量化。我們使用PACT來量化cnn的激活,并使用DoReFa方案來量化權重。表1總結了PACT對被測試的cnn(CIFAR10、SVHN、AlEXNeT、RexNet18和ResNet50)的前1個準確性。我們還展示了當權重和激活都被DoReFa的方案量化時,cnn的準確性。可以看出,PACT的權重和激活都具有4位精度,在整個測試的網絡中實現了一致的全精度精度。據我們所知,這是迄今為止報告的權重和激活的最低比特精度,可以達到接近(≤1%)的全精度精度
我們進一步比較了基于pact的量化cnn與之前的7種量化方案(DoReFa、BalancedQ、WRPN、FGQ、WEP、LPBN和HWGQ)的性能。圖5顯示了AlexNet、ResNet18和ResNet50的精度下降(前1位)的比較。總的來說,精度的下降隨著激活或權重的比特精度的增加而降低。例如,在圖5a中,當在相同的權重精度下激活位精度增加時,或者在相同的激活位精度下權重位精度增加時,精度下降減小。PACT在所有案例中都優于其他方案。事實上,AlexNet甚至通過使用PACT而不是全精度來實現了略微更好的精度(即負精度下降)。
6. 系統級性能增益
在本節中,我們將演示由于使用PACT-CNN實現的位精度的降低而導致的系統性能的提高。為此,如圖6(a),我們考慮一個DNN加速器系統包括一個DNN加速器芯片,包括多個核,與一個外部存儲器接口。每個核心由一個由固定點乘法和累積(MAC)處理元素組成的二維收縮期陣列組成,并在其上執行DNN層。每個核心還包含一個片上存儲器,它存儲被輸入到MAC處理陣列的操作數。
為了估計系統在不同比特精度下的系統性能,我們研究了不同版本的DNN加速器,每個加速器包含相同數量的片上存儲器、外部存儲器帶寬和占據等硅面積。首先,使用最先進的技術(14nmCMOS)中的真實硬件實現,我們準確地估計了通過積極擴展位精度而實現的MAC區域的減少。如圖6(b)所示,當激活和權值的比特精度從16位均勻地降低到2位時,我們實現了~14×的密度提高。
接下來,為了將面積的減少轉化為整體性能的改進,我們構建了一個可精確配置的MAC單元,其比特精度可以動態調制。MAC單元的峰值計算能力(FLOPs)發生了變化,因此我們在每個精度上都實現了等面積計算。請注意,在所有精度上,總芯片內存和外部帶寬保持不變。我們使用深度矩陣估計了系統的整體性能,這是一個針對DNN加速器的詳細性能建模框架(文卡塔拉馬尼等人)。
圖6?顯示了ResNet50DNN基準測試的推理性能的增益。我們研究了使用不同的外部內存帶寬的性能改進,即帶寬無約束系統(無限內存帶寬)和兩個帶寬受約束系統在32和64gbps。在帶寬無約束的情況下,性能的增益受到工作并行化程度的限制。在這種情況下,我們看到高達4位的性能接近線性增長,而在極端量化水平(2位)的小幅下降。
實際的系統,其帶寬受到限制,(令人驚訝地)在量化的性能上表現出超線性增長。例如,當外部帶寬被限制在64GBps時,從16位到4位的量化會導致峰值FLOPs增加4×,但性能提高4.5×。這是因為,片上內存的總量保持不變,并且在非常低的精度下,一些數據結構開始適應核心中存在的內存,從而避免了來自外部內存的數據傳輸。因此,在帶寬有限的系統中,減少從芯片外傳輸的數據量可以進一步提高系統性能。請注意,對于4位和2位精度配置,我們仍然使用8位精度來執行DNN的第一層和最后一層。如果我們能夠將第一層和最后一層量化為4位或2位,我們估計性能將額外提高1.24×,這促使我們需要探索量化第一層和最后一層的方法。
7. 總結
本文提出了一種基于超參數化裁剪激活函數(PACT)的激活量化方案。該方案用激活函數α代替激活函數代替ReLU,該參數通過基于梯度下降的訓練進行優化。我們分析了為什么在訓練過程中應用量化時,PACT優于ReLU。廣泛的經驗評估使用幾個流行的卷積神經網絡,如CIFAR10,SVHN,AlexNet,ResNet18和ResNet50表明,PACT非常有效地量化激活,同時允許權重被嚴重量化。與之前所有的量化方案相比,我們證明了權重和激活都可以更積極地量化(減少到4位),同時實現接近(≤1%)的全精度精度。此外,我們還證明,使用精度降低的MAC單元所節省的面積可以使同一區域的加速器核心數量顯著增加,從而顯著提高了系統的整體性能。
總結
以上是生活随笔為你收集整理的PACT: PARAMETERIZED CLIPPING ACTIVATION FOR QUANTIZED NEURAL NETWORKS 论文学习的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 国内移动互联网应用开发分析
- 下一篇: Ubuntu系统 USB设备端口绑定