• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      一種超低損失的深度神經(jīng)網(wǎng)絡(luò)量化壓縮方法?

      2021-11-09 02:45:28代素蓉劉方鑫陳新偉
      軟件學報 2021年8期
      關(guān)鍵詞:二值正態(tài)分布權(quán)值

      龔 成 ,盧 冶 ,代素蓉 ,劉方鑫 ,陳新偉 ,李 濤,4

      1(南開大學 計算機學院,天津 300350)

      2(天津市網(wǎng)絡(luò)和數(shù)據(jù)安全技術(shù)重點實驗室(南開大學),天津 300350)

      3(工業(yè)機器人應(yīng)用福建省高校工程研究中心(閩江學院),福建 福州 350121)

      4(計算機體系結(jié)構(gòu)國家重點實驗室(中國科學院 計算技術(shù)研究所),北京 100190)

      隨著深度神經(jīng)網(wǎng)絡(luò)(DNN)在多個研究領(lǐng)域取得實質(zhì)性突破,邊緣智能場景下DNN 模型的應(yīng)用和部署,吸引了研究人員的廣泛關(guān)注.為了追求更高的推理精度,近年來,DNN 模型的計算規(guī)模變得愈加龐大、網(wǎng)絡(luò)結(jié)構(gòu)愈加復(fù)雜且不規(guī)則[12]、參數(shù)量巨大[3?13],其運行時需要強大的計算能力支持并且極其耗能[3].然而,邊緣智能設(shè)備的計算資源與存儲資源有限,并且對能耗及延遲具有嚴格的約束.因此,在資源受限的邊緣設(shè)備上部署龐大而復(fù)雜的DNN 模型極具挑戰(zhàn)[11].將DNN 模型進行壓縮,可以有效減少模型的復(fù)雜度,使DNN 模型得以應(yīng)用于邊緣智能計算場景.

      DNN 模型壓縮的主要目的是:在確保DNN 模型推理精度的前提下,消除冗余的模型參數(shù),減少中間結(jié)果并降低網(wǎng)絡(luò)結(jié)構(gòu)的復(fù)雜度,從而得到滿足精度要求的精簡模型.DNN 量化是DNN 模型壓縮的一種重要方法[14],它利用低位寬的參數(shù)來表示原始的全精度模型,顯著降低DNN 模型的計算復(fù)雜度和內(nèi)存占用,使得DNN 模型能夠直接在資源受限的邊緣設(shè)備上進行部署.當原始的模型被量化到極低的位寬時,模型壓縮效果尤為明顯[15?18].例如,二值神經(jīng)網(wǎng)絡(luò)BNN[15]和三值神經(jīng)網(wǎng)絡(luò)TWNs[16]可分別將32 位全精度模型的尺寸壓縮32 倍和16 倍.

      但是,現(xiàn)有的DNN 量化方法存在諸多問題,通常依賴于經(jīng)驗猜測和實驗嘗試[15?17,19],缺乏有效的理論支撐.具體表現(xiàn)如下:

      ?第一,現(xiàn)有量化方法難以在數(shù)據(jù)位寬和模型精度之間進行有效權(quán)衡.通過極少量的比特位表示DNN 模型,將導致模型精度明顯下降而失去應(yīng)用價值.例如,利用二值量化或三值量化的DNN 可以獲得極高的壓縮比,但在實際應(yīng)用中無法滿足精度要求[15?18,20];而保留較多數(shù)量的比特位[19,21],雖然能夠防止精度顯著下降,但量化后的DNN 模型仍然過于龐大,難以直接部署[22,23].

      ?第二,啟發(fā)式的參數(shù)選擇需要大量的人工嘗試,而現(xiàn)有的量化方法在將全精度模型數(shù)據(jù)轉(zhuǎn)換成低位寬數(shù)據(jù)之前,需要尋找恰當?shù)膮?shù)來限制中間結(jié)果數(shù)據(jù)的表示范圍.該步驟通常需要引入縮放參數(shù)[18],而現(xiàn)有的量化方法在確定縮放參數(shù)時,往往是啟發(fā)式的[17,22].

      ?第三,對權(quán)值數(shù)據(jù)分布的擬合程度會直接影響量化后的模型精度,而現(xiàn)有量化方法通常會忽視權(quán)值數(shù)據(jù)的分布規(guī)律.例如,Dorefa-Net[17]和FP[19]等工作由于量化后的權(quán)值不擬合原始的權(quán)值分布,從而導致精度顯著下降.盡管DNN 模型中各層數(shù)據(jù)的分布規(guī)律不同,但均可通過數(shù)學變換而近似滿足標準正態(tài)分布.本文例舉了4 種典型的DNN 模型的各層的權(quán)值數(shù)據(jù),如圖1 所示,其數(shù)據(jù)皆近似服從標準正態(tài)分布.量化方法的設(shè)計應(yīng)該充分利用權(quán)值數(shù)據(jù)分布規(guī)律,以有效提高DNN 模型量化后的精度.

      為了解決上述問題,本文提出一種超低損失的模型量化方法(ultra-low loss quantization,簡稱μL2Q).該方法在模型量化時充分考慮了原始權(quán)值數(shù)據(jù)的分布規(guī)律并進行了定量分析,并在確定縮放參數(shù)時有效地減少了人工實驗次數(shù),為模型量化提供了新的實現(xiàn)途徑.

      Fig.1 Distributions of layer weights of four DNN models圖1 4 種DNN 模型中各層的權(quán)值數(shù)據(jù)分布

      本文的主要貢獻包括3 點:

      ?提出了一種有效的超低損失量化方法,該方法可在給定位寬下,根據(jù)模型輸入數(shù)據(jù)的分布規(guī)律,通過求解解析式的極值來獲得最優(yōu)量化參數(shù)配置,有效降低數(shù)據(jù)量化損失,以保證量化后的DNN 模型推理精度;

      ?設(shè)計了最優(yōu)量化參數(shù)表,通過呈現(xiàn)各種位寬條件下的最低量化損失方案,為量化服從正態(tài)分布的權(quán)值數(shù)據(jù)提供了參考依據(jù),有效地減少了啟發(fā)式參數(shù)搜索的實驗次數(shù);

      ?實現(xiàn)了基于μL2Q 的DNN 模型訓練方法,將μL2Q 嵌入到主流機器學習框架(如Caffe,Keras)中進行推理精度的實驗驗證,以便捷的調(diào)用方式加速了DNN 模型量化的端到端設(shè)計與訓練流程.

      1 相關(guān)工作與研究動機

      首先,本節(jié)闡明了DNN 模型權(quán)值數(shù)據(jù)的分布規(guī)律;然后,總結(jié)現(xiàn)有典型的模型量化方法的特點;最后討論了本文的研究動機.為表達上簡潔明了,本文采用wf∈Rd表示權(quán)值向量,即全精度模型的權(quán)值數(shù)據(jù);采用wq∈Rd來表示經(jīng)過量化后的權(quán)值向量,其中,d代表權(quán)值數(shù)據(jù)的維度.

      1.1 DNN權(quán)值數(shù)據(jù)分布

      在DNN 研究領(lǐng)域的權(quán)威著作《Pattern recognition and machine learning》[24]和《Machine learning:A probabilistic perspective》[25]中,皆假設(shè)DNN 權(quán)值數(shù)據(jù)服從正態(tài)分布來進行相關(guān)研究.具體來講,對于任意給定的DNN 模型,設(shè)其輸入特征為X,分類結(jié)果為y,w為模型的權(quán)值,根據(jù)貝葉斯后驗概率理論[24,25],則有:

      其中,p(w|X,y)是在數(shù)據(jù)集{X,y}上計算得到w的最大后驗概率,p(X,y|w)是似然函數(shù),p(w)是w的先驗概率.假設(shè)w滿足正態(tài)分布,即p(wi)=N(wi|μ,σ2),則式(1)中的最大似然對數(shù)函數(shù)為

      1.2 典型量化方法

      現(xiàn)有的典型量化方法可歸納為3 種類型,即二值量化、三值量化和定點數(shù)量化.

      ?二值量化[15,17,18]

      該方法用1 個比特來代替原始的全精度浮點數(shù).經(jīng)典的二值量化方法如式(3)所示[18].

      ?三值量化

      受二值量化的啟發(fā),三值量化方法利用3 個值,即{?1,0,+1},并結(jié)合縮放參數(shù)[16,26,27]表示網(wǎng)絡(luò)模型,即

      其中縮放參數(shù)為

      ?定點數(shù)量化

      定點數(shù)量化由于實現(xiàn)過程較為簡單,因此成為最常用的量化方法[17,19,28].該方法的總體思路是,按一定的比特位數(shù)來保留數(shù)據(jù)中的整數(shù)部分和小數(shù)部分.將wf量化為k比特的數(shù)據(jù)wq可表示為

      其中,wf是待量化的輸入數(shù)據(jù);max(?)函數(shù)用來計算最大值;p代表需要進行移位的比特數(shù)量,計算p的作用在于有效防止數(shù)據(jù)溢出.定點數(shù)量化方法中,高比特位具有高優(yōu)先級,所以需要優(yōu)先保留|wf|中的最大值max(|wf|),由此計算相應(yīng)的p值,以確保最大的絕對值max(|wf|)的高位n=max{i:max(|wf|)>2i}不會被舍去而導致較大的舍入誤差.如式(6)所示,n可由log2(?)函數(shù)計算.R(?)代表舍入操作,即丟棄浮點數(shù)的小數(shù)部分.由于符號位占用1 比特,對wf應(yīng)用k比特的定點數(shù)量化方法,則需要保留從第n比特開始的連續(xù)k?1 個比特位,即從n?(k?2)至n位的總共k?1 個比特,并舍去其他比特位,因此定點數(shù)的總比特數(shù)量為k?1 個.

      1.3 研究動機

      從上文所述可知,以往的量化方法依賴人工選擇或經(jīng)驗猜測,需要通過反復(fù)實驗才能確定相關(guān)參數(shù),缺乏行之有效的理論分析和實踐指導,從而導致這些方法難以兼顧量化位寬和模型精度.如上文所述,二值量化和三值量化會導致模型精度急劇下降;而定點數(shù)量化雖在高位寬時表現(xiàn)良好,但針對低位寬量化時也會失效[17,19].這些方法忽視了權(quán)值數(shù)據(jù)的分布規(guī)律,缺乏對量化損失的準確評估.由此可見,僅靠減少數(shù)據(jù)位寬來進行模型量化將很難保證模型精度.對此,本文在模型量化時充分考慮權(quán)值數(shù)據(jù)的分布規(guī)律,并建立相應(yīng)的定量評估方法來衡量模型量化的損失;然后,結(jié)合對結(jié)果值的分析和擇優(yōu),通過不同數(shù)據(jù)位寬下的最優(yōu)量化結(jié)果來揭示數(shù)據(jù)位寬和量化損失之間的關(guān)系.

      此外,一些方法盡管能夠量化模型并得到較好的模型精度,但是量化后的權(quán)值由于是浮點數(shù)類型,所以難以加速計算過程.例如,文獻[29]所提出的權(quán)值共享并結(jié)合知識蒸餾的手段,在其利用k-means算法進行實現(xiàn)時,需要處理復(fù)雜的聚類迭代,而聚類中心是非均勻的浮點型數(shù)值,其計算過程仍然是典型的浮點數(shù)計算.需要說明的是:知識蒸餾方法雖與量化方法并不沖突,但是知識蒸餾往往需要更龐大的教師網(wǎng)絡(luò)進行指導,將極大增加訓練時間,因而許多量化工作并未主動使用知識蒸餾來提升模型量化的精度.為了與其他量化方法進行客觀公正的比較,本文暫不引入知識蒸餾來提升量化模型的精度.

      綜上所述,本文在模型量化時除了考慮數(shù)據(jù)分布對模型精度的影響外,還需兼顧量化后權(quán)值是否有利于模型的計算加速.即在量化過程中,本文充分考慮DNN 模型各層權(quán)值的數(shù)據(jù)分布規(guī)律,減少模型量化造成的精度損失,并采用均勻量化的方式,通過簡潔的舍入操作,將原始權(quán)值量化為間隔均勻的定點數(shù),來加速量化模型的乘法計算.

      2 μL2Q 量化設(shè)計

      本節(jié)闡述模型量化的精度損失評估方法.首先定義了量化損失,然后論述了μL2Q 量化思想的依據(jù),并據(jù)此提出基于權(quán)值數(shù)據(jù)分布分析的μL2Q 量化過程的形式化表達.

      2.1 損失評估

      經(jīng)過模型量化后的權(quán)值數(shù)據(jù)由wq表示,則量化的一般過程可由式(7)表示.

      其中,Quantize(?)是量化函數(shù),它將輸入數(shù)據(jù)wf∈Rd的空間映射到僅由有限的且間隔均勻的離散數(shù)據(jù)所構(gòu)成的數(shù)據(jù)空間.在式(7)中,n=2k,k是量化位寬.基于前人的研究工作[16,18,21,30],本文將量化損失定義為wf和wq的歐式距離的平方,即L2 距離:

      考慮到DNN 模型自身的復(fù)雜性和不確定性,本文使用距離J作為量化損失評估依據(jù)而非模型的最終推理精度,這樣能夠更為準確地反映量化方法所產(chǎn)生的直接結(jié)果.

      2.2 數(shù)據(jù)空間轉(zhuǎn)換

      對于給定的滿足正態(tài)分布的權(quán)值wf=N(μ,σ2),將其轉(zhuǎn)換成標準正態(tài)分布的過程可表示為

      μL2Q 的量化結(jié)合了數(shù)據(jù)標準正態(tài)分布的規(guī)律,則縮放參數(shù)α和偏移參數(shù)β可表示為

      其中,λ是量化參數(shù),通過λ將數(shù)據(jù)縮放到恰當范圍.則式(9)可轉(zhuǎn)換為

      由此,μL2Q 的量化思路可歸納為:利用μ和σ將一組服從或近似服從一般正態(tài)分布的數(shù)據(jù)轉(zhuǎn)換為服從標準正態(tài)分布的數(shù)據(jù),再利用λ將其縮放到恰當?shù)慕o定范圍,最后通過截斷和舍入操作將其映射到整數(shù)值空間.

      2.3 量化過程

      μL2Q 量化思路的關(guān)鍵環(huán)節(jié)是將滿足標準正態(tài)分布的權(quán)值分割為等寬的量化區(qū)域,即均勻的量化間隔.實際上,第2.2 節(jié)中的λ即可表示量化區(qū)域的分割寬度,即量化間隔.如圖2 所示,量化過程是:首先,假設(shè)量化目標的位寬是k,式(9)中的φ空間被分割成寬度為λ的2k個量化區(qū)域;然后將每個量化區(qū)域中所有的權(quán)值替換為該區(qū)域中的某個最優(yōu)值.經(jīng)過標準正態(tài)分布的數(shù)據(jù)空間轉(zhuǎn)換之后,μL2Q 的量化過程可總結(jié)為以下3 個步驟.

      (1) 如圖2(a)所示,將原始全精度浮點數(shù)據(jù)wf量化為k個比特位所表示的離散數(shù)據(jù)wq,即被量化為n=2k個數(shù).φ被分割為n個區(qū)域{R1,R2,…,Rn},Ri和Ri+1區(qū)域的分割邊界為si.為了方便表示,令s0=?∞,sn=+∞,S表示分割邊界的集合:S={s0,s1,…,sn}.

      (2) 對于每個量化區(qū)域Ri(i=1,2,…,n),在其中搜索最優(yōu)的量化值qi.qi的計算方法將在第3 節(jié)具體闡述.

      (3) 利用所選取的最優(yōu)量化值qi來代替區(qū)域Ri中的所有值,最終得到量化后的數(shù)據(jù)空間,如圖2(b)所示.

      Fig.2 Quantization process of μL2Q圖2 μL2Q 的量化過程

      至此,DNN 模型的權(quán)值數(shù)據(jù)被量化成了n個值,可表示為Q={q1,q2,…,qn}.利用μL2Q 具有均勻的量化間隔λ的特征,即|q2?q1|=…=|qn?qn?1|=λ,可以進行相應(yīng)的求解.如前文所述,盡管可以通過復(fù)雜的精細化的非均勻劃分來得到較高的量化模型精度,但是這樣的設(shè)計思路難以在硬件上真正實現(xiàn),僅僅只能起到壓縮模型的效果,而本文采用均勻劃分的方式,能夠在壓縮率、模型精度和硬件計算加速上達到很好的平衡.

      二值、三值和定點數(shù)量化時往往需要特定的縮放參數(shù),但其縮放參數(shù)無法直接與量化損失建立關(guān)聯(lián).相比之下,μL2Q 所需的縮放參數(shù)和偏移參數(shù)與量化損失直接相關(guān),其關(guān)聯(lián)關(guān)系如式(12)所示.

      其中,C(?)是截斷操作,它有3 個參數(shù),若其第1 個參數(shù)的值超出由第2 個參數(shù)和第3 個參數(shù)所表示的范圍,即[?2k?1,2k?1,?1],則將第1 個參數(shù)轉(zhuǎn)換為離其最近的邊界值(?2k?1或2k?1?1).R(?)是舍入操作,其作用是舍棄浮點數(shù)的小數(shù)部分.偏移量1/2 的作用是可將縮放(1/λ倍)后的量化位置移動1/2 個區(qū)域,借此防止形成以0 為中心的對稱量化值,從而保證能夠獲得2k個有效的量化值,減少模型量化帶來的直接損失.值得注意的是:由于式(12)中使用舍入操作R(?)來實現(xiàn)量化,而R(?)是不可導的,所以式(12)不可導.這將導致在模型訓練時無法收斂,因此還需關(guān)注如何實現(xiàn)可導的量化過程,本文利用直通量估計來解決這一問題,具體步驟將在第3.3 節(jié)中闡釋.

      3 μL2Q 量化實現(xiàn)

      本節(jié)討論如何對量化參數(shù)λ進行最優(yōu)分析和最優(yōu)值計算,并結(jié)合算法偽代碼來闡述μL2Q 量化方法的實現(xiàn)步驟;最后,本節(jié)闡明將μL2Q 融合到典型DNN 框架Caffe 及Keras 來進行模型訓練的關(guān)鍵環(huán)節(jié).

      3.1 最優(yōu)值分析

      由第2.2 節(jié)可知,λ是μL2Q 量化方法中的關(guān)鍵參數(shù),與量化損失評估直接相關(guān).它將標準正態(tài)分布的數(shù)據(jù)縮放到恰當?shù)姆秶?以確保目標數(shù)據(jù)范圍能夠覆蓋指定位寬所表示的量化范圍[?2k?1+1/2,2k?1?1/2].如圖3 所示:當λ=2 時,數(shù)據(jù)只能被量化為4 個定點數(shù){?1.5,?0.5,0.5,1.5}.當k>2,將出現(xiàn)位寬空閑,未能表示有效數(shù)據(jù)的比特位將會造成位寬浪費.因此,需要更緊致的量化間隔,比如λ=1 或者λ=0.5.

      Fig.3 λ can scale the standard normal distribution to different ranges圖3 標準正態(tài)分布由λ放縮到不同范圍

      μL2Q 的量化值擇優(yōu)目標是獲得式(8)中量化損失為最小的值,可表示為

      其中,λ*是使得量化損失最小的縮放參數(shù)與窮舉求解的方法[31]不同,本文探索在已知的權(quán)值數(shù)據(jù)分布下,求解λ*的最優(yōu)解析解.量化損失可進一步表示為

      其中,d是φ的維度,si是分割邊界,qi是每個量化區(qū)域Ri中的量化值,p(t)=N(t;0,1).為了求解式(13),還需要定義式(14)中si和qi的具體值,它們只依賴于λ.

      其中,n=2k,k為量化位寬.

      至此,式(14)中的量化損失J只與參數(shù)λ相關(guān),并且分析可知,J是關(guān)于λ的可導凸函數(shù).因此,通過求解量化損失的極值即可得到量化損失的最小值.μL2Q 的量化損失J,在不同量化位寬k下關(guān)于λ的變化曲線如圖4 所示,紅色五角星代表相應(yīng)曲線的極值點.

      Fig.4 Curve of quantization loss J with different λ圖4 量化損失J 關(guān)于λ值的曲線

      由圖4 可知,在各種位寬條件下,J都存在最小值,即λ都存在最優(yōu)解.通過上述方法可計算1~8 比特位寬下的λ的最優(yōu)解,并能夠獲得相應(yīng)的最小量化損失,其結(jié)果見表1.

      Table 1 Optimal value of λ for different bit widths表1 不同位寬對應(yīng)的最佳λ值

      3.2 算法實現(xiàn)

      μL2Q 的實現(xiàn)流程如算法1 所示:首先,將滿足正態(tài)分布的輸入數(shù)據(jù)轉(zhuǎn)換為標準正態(tài)分布,其中,需要記錄偏移量β=μ和標準差σ;然后,基于該標準正態(tài)分布,分析和計算最優(yōu)參數(shù)λ的值,得到縮放參數(shù)α=λσ.

      3.3 模型訓練

      模型訓練的過程往往十分耗時,本文將μL2Q 量化方法融合進主流機器學習訓練框架如Caffe[32]和Keras[33]來加速模型量化的實現(xiàn)速度,借此來滿足廣泛的DNN 模型量化需求.具體來講,對于DNN 模型中的每一層l,在其前向傳播時,首先使用μL2Q 量化方法將wf(l)量化到wq(l),然后使用wq(l)計算每一層在前向傳播中的輸出,得到前向傳播的最終DNN 損失L(wq).在反向傳播時,由于式(12)和算法1 中的量化過程不可導,本文采用直通量估計(straight through estimation,簡稱STE)來實現(xiàn)μL2Q 量化.STE 在許多量化工作中[16,17,19]被廣泛應(yīng)用于可訓練的量化實現(xiàn),其將wq(l)對wf(l)的梯度設(shè)定為固定數(shù)值1,然后利用鏈式求導法則計算網(wǎng)絡(luò)損失L(wq)對wf的梯度,以此來進行量化模型的訓練.基于STE 和鏈式求導法則,可以計算L(wq)對wf的梯度如下:

      4 實驗評估

      本節(jié)從數(shù)據(jù)仿真實驗和真實的DNN 模型精度實驗兩個方面來評估μL2Q.其中,數(shù)據(jù)仿真用于對比現(xiàn)有的典型量化方法與μL2Q 的量化損失情況.DNN 模型精度實驗選取了圖像分類和顯著性物體檢測兩類真實應(yīng)用.在精度評估實驗中,本文將μL2Q 融合進DNN 訓練框架Caffe 和Keras 中,加速DNN 模型量化實現(xiàn),利用模型的實際推理精度來觀測μL2Q 的真實效果.除了權(quán)值量化的實現(xiàn),本文還在Keras 上實現(xiàn)了激活值量化,以驗證μL2Q 在激活值量化方面的性能.Caffe 框架和Keras 框架分別采用1.0.0 版本和2.2.4 版本.μL2Q 量化方法對于框架融合并無挑剔,從其實現(xiàn)過程和實驗結(jié)果上來講,使用Caffe 和Keras 框架,兩者并無顯著差異.

      μL2Q 和定點數(shù)量化可以實現(xiàn)任意位寬的數(shù)據(jù)量化,μL2Q-x和Fixed-x分別表示兩種方法在位寬為x時,數(shù)據(jù)仿真的量化效果.在DNN 模型精度評估中,μL2Q-x和Fixed-x表示將模型的權(quán)值數(shù)據(jù)(包括卷積層和全連接層的權(quán)值數(shù)據(jù))量化到x比特.

      4.1 數(shù)據(jù)仿真評估

      ?實驗設(shè)置

      首先,隨機生成滿足正態(tài)分布N(μ,σ2)的100 000 個數(shù)據(jù).分別考量條件參數(shù)的變化對量化損失所產(chǎn)生的影響:(1) 不同的量化位寬;(2) 滿足標準差σ=1.0 但均值μ不同的正態(tài)分布;(3) 滿足均值μ=0,但標準差σ不同的正態(tài)分布.圖5 展示了μL2Q 在仿真數(shù)據(jù)上的結(jié)果.

      Fig.5 Quantization losses for data with different means and standard deviations圖5 具有不同均值和標準差的數(shù)據(jù)的量化損失

      ?不同的量化位寬

      如圖5(a)所示,μL2Q 能在任何給定位寬下保證最低的量化損失.在二值量化時,量化后的數(shù)據(jù)僅占用1 比特,而μL2Q 能和文獻[18]保持相同的量化損失.三值量化的數(shù)據(jù)只占用2 比特,μL2Q 的量化損失比三值量化方法[16]的損失更低.這是因為三值量化的2 個比特只存儲了3 個值{?1,0,1},而μL2Q 使用2 比特存儲4 個值{?2,?1,0,1},能夠表示更多數(shù)據(jù)信息.由圖5(a)可知,μL2Q 的量化損失在任意位寬下都比定點數(shù)量化的結(jié)果要低.其原因是:定點量化沒有考慮數(shù)據(jù)分布規(guī)律,而僅僅針對數(shù)據(jù)本身進行了處理;而μL2Q 利用數(shù)據(jù)正態(tài)分布的特性,并將其貫穿于整個量化實現(xiàn)過程.

      ?不同均值和標準差

      如圖5(b)所示:當均值偏離原始位置時,二值量化和三值量化的損失都會增加.對于定點數(shù)量化,由于符號位的設(shè)置是不支持1 比特的量化,但仍把這個值放在圖中便于比較.由圖5(b)可知,定點數(shù)量化在位寬為2 時波動很大,但是在4 和8 位時表現(xiàn)穩(wěn)定.這是因為擁有足夠的比特數(shù)可以表示更多的數(shù)據(jù).而相比之下,μL2Q 的量化損失不隨均值的變化而變化.此外,μL2Q 的1 比特量化甚至可以達到定點數(shù)4 比特量化的效果.如圖5(c)所示:相同位寬下,μL2Q 在不同標準差下的量化損失仍要比其他方法要低.由此可知,不同均值和不同標準差條件下,μL2Q 量化方法與其他方法相比,性能表現(xiàn)最為穩(wěn)定.

      4.2 圖像分類實驗

      圖像分類任務(wù)能夠體現(xiàn)模型量化方法的性能,可用于評估μL2Q 的有效性和優(yōu)勢.實驗中,DNN 模型中所有卷積層和全連接層(包括第1 層和最后一層)的權(quán)值數(shù)據(jù)都被量化到相同的位寬.

      ?數(shù)據(jù)集與模型

      本文實驗選取代表性數(shù)據(jù)集MNIST[34]、Cifar10[35]和ImageNet[36],詳細信息見表2.選取幾種應(yīng)用廣泛的DNN 模型來進行量化效果的評估,包括應(yīng)用于MNIST 的模型Lenet-5[34]、應(yīng)用于Cifar-10 上的模型CifaNet[35],VGG-like[3]以及應(yīng)用在ImageNet 上的模型AlexNe[37],Resnet-18[4]和輕量級深度模型MobileNetV2[38].表3 中展示了實驗中用于評估的DNN 規(guī)模(參數(shù)量)和具體訓練參數(shù).

      Table 2 Dataset attributes表2 數(shù)據(jù)集信息

      Table 3 Model size and training parameter setting表3 模型規(guī)模及訓練參數(shù)

      為了與最新的方法進行公平對比,實驗時,對CifarNet 使用TWN[16]中應(yīng)用的數(shù)據(jù)增強方法,對ImageNet 使用Tensorflow 標準庫中使用的數(shù)據(jù)增強方法.本文基于Keras 框架進行權(quán)值量化和激活值量化等實驗,由于Caffe 自身難以實現(xiàn)復(fù)雜數(shù)據(jù)集的數(shù)據(jù)增強,所以本文僅在Caffe 上測試了LeNet5 的權(quán)值量化的結(jié)果.

      ?評估

      MNIST 和Cifar10 數(shù)據(jù)集由于分類較少,僅有10 個類別,因此只用Top1 的分類精度作為DNN 模型評估指標.ImageNet 數(shù)據(jù)集有1 000 個分類類別,因此可使用Top1 和Top5 的分類精度作為評估指標.

      ?權(quán)值量化

      不同于二值量化、三值量化等方法,μL2Q 支持靈活的量化位寬.實驗結(jié)果見表4.在1 比特位寬下進行權(quán)值量化,模型的分類精度嚴重下降.這是因為μL2Q 將權(quán)值量化為{?1,1},存在極大的信息損失,進而導致較大的精度下降.但是從2 比特開始,μL2Q 量化模型的精度顯著提升,能夠在除MobileNetV2 外的模型上達到低于1.58%的平均精度損失(與全精度模型相比).對于輕量級模型MobileNetV2,盡管其對低位寬量化更為敏感,但在4 比特的MobileNetV2 量化模型上,μL2Q 甚至能達到高于全精度模型的推理精度.隨著給定位寬的增加,量化模型的精度也隨之提升.Lenet5、CifarNet 和VGG-like 的分類精度分別在4 比特、8 比特和8 比特時達到99.51%,81.66%和93.53%,其中,LeNet 和VGG-like 的結(jié)果甚至比全精度模型還提升了0.11%和0.04%.在ImageNet 數(shù)據(jù)集上,μL2Q 能使AlexNet、ResNet18 和MobileNetV2 在8 比特量化位寬下達到61.4%,70.23%和72.23%(Top1)的分類精度,與全精度模型的結(jié)果相比分別提升了1.39%,0.63%和0.93%.以上的實驗結(jié)果說明,利用μL2Q 進行權(quán)值量化有助于提升模型的泛化能力,即有助于提升模型的分類精度.

      Results of μL2Q across various bit widths表4 μL2Q 在不同比特位寬下的結(jié)果

      ? 激活值量化

      與權(quán)值不同,DNN 模型中每層的激活值會隨著輸入變化而變化.這意味著如果進行激活值量化,則必須在每次推理時進行實時的計算.為了減少實時計算量,本文對量化參數(shù)(α,β)進行離線計算,以提升推理效率.本文利用指數(shù)移動平均算法,在模型訓練過程中來估計每層的激活值在整個訓練集上的量化參數(shù),并離線應(yīng)用到模型推理的過程中.表4 給出了基于μL2Q 進行8 比特激活值量化的實驗結(jié)果.在表4 中,與具有全精度激活值的模型相比,具有2/4/8 比特權(quán)值和8 比特激活值的量化模型的推理精度僅僅下降不到0.49%(在ResNet18 上),0.29%(在VGG-like 上),0.27%(在AlexNet 上).在ImageNet 數(shù)據(jù)集和MobileNetV2 上,基于8 比特μL2Q 的激活值量化的結(jié)果比全精度激活值的量化模型的結(jié)果分別高了0.49%(2 比特權(quán)值量化),0.21%(4 比特權(quán)值量化)和0.05%(8比特權(quán)值量化).實驗結(jié)果表明,μL2Q 可應(yīng)用于激活值量化并且不會造成額外的精度損失,還能降低推理過程中的內(nèi)存占用和計算消耗.

      ?模型存儲容量與運行時內(nèi)存占用

      表5 中給出了基于μL2Q 的不同量化位寬下,不同量化模型的存儲容量和運行時內(nèi)存占用.模型存儲容量主要包括模型權(quán)值的存儲,運行時內(nèi)存占用是指模型推理一張圖片時所需耗費的權(quán)值和激活值的內(nèi)存占用.在1比特權(quán)值量化下,模型存儲容量壓縮率可達32 倍,比如CifarNet 的模型存儲容量甚至只有10.64KB.全精度模型AlexNet 的存儲容量高達203.38MB,在經(jīng)過μL2Q 壓縮后,其模型存儲容量最小可至6.36MB,被壓縮了96.87%,極大地降低了模型的存儲代價.此外,LeNet5,CifarNet 和VGG-like 的運行時內(nèi)存占用最低可達360.54KB(1/32),64.39KB(2/8)和 1.57MB(2/8),其運行時內(nèi)存占用量比全精度的模型(32/32)分別降低了 94.71%,87.44%和92.97%.在基于ImageNet 訓練的模型AlexNet,ResNet18 和MobileNetV2 上,其運行時內(nèi)存占用降至8.79MB,5.61MB 和7.55MB,比全精度模型(32/32)分別減少了95.73%,90.24%和81.40%.此外,低位寬的權(quán)值和激活表示也將有效地降低計算資源消耗.μL2Q 可在極低的模型存儲容量和運行時內(nèi)存占用的情況下,保證極低的量化損失,提升量化模型的精度.比如表4 和表5 中,具有2 比特權(quán)值和8 比特激活值的MobileNetV2 規(guī)模只有867.69KB,運行時內(nèi)存占用只有7.55MB,但其在ImageNet 上的top1 精度可達64.39%.極低的存儲容量和運行時內(nèi)存占用,確保了基于μL2Q 量化的DNN 模型可廣泛部署到存儲和計算資源受限的邊緣設(shè)備上,而且模型精度能夠提供可靠的推理服務(wù).

      Table 5 Model size and runtime memory of μL2Q across various bit widths表5 μL2Q 在不同比特位寬的模型大小和運行時內(nèi)存占用

      ?方法對比

      選擇當前最為先進且典型的量化方法來進行比較,這些量化方法見表6.

      Table 6 State-of-the-art quantization methods表6 最新的量化方法

      表7 展示了在相同位寬條件下,μL2Q 和其他量化方法在幾種DNN 模型上的圖像分類精度.其中,對于最新的量化方法,本文直接引用其文獻中的結(jié)果進行比較.本文關(guān)于結(jié)果分析中精度平均提升值的計算方式如下.

      (1) μL2Q 與二值量化的對比:在VGG-like 上,μL2Q 相對ReBNet(M=3)精度提升了3.08%,相對BC 精度提升了1.62%.因此μL2Q 與最新的二值量化方法相比,量化后模型精度平均提升了(3.08%+1.62%)/2=2.35%.同理可得μL2Q 與其他三值量化方法的對比結(jié)果.

      (2) μL2Q 與定點數(shù)量化的對比:在CifarNet 上,2 比特位寬下μL2Q 相對FP 提升了61.16%,4 比特位寬下μL2Q 相對FP 提升了5.42%,8 比特位寬下μL2Q 相對FP 提升了0.26%.因此,μL2Q 相對FP,精度平均提升了(61.16%+5.42%+0.26%)/3=22.28%.

      Table 7 Comparison with state-of-the-art methods表7 與最新方法的比較

      ?μL2Q 與二值量化

      二值量化只能將權(quán)值量化為{?1,1}兩個值,如表7 所示,在1 比特量化時,μL2Q 在LeNet5、VGG-like 和ResNet18 上與二值量化方法的結(jié)果相比,平均提升了0.78%,2.35%和4.25%(Top1).這是因為二值量化對權(quán)值的均值變化和標準差變化比較敏感,導致了額外的精度下降.與之相比,由于存在平移參數(shù)和縮放參數(shù),μL2Q 對不同均值和標準差的權(quán)值是魯棒的,能夠有效保證量化模型的精度.在AlexNet 上,μL2Q 與BWN 相比存在一定程度的精度下降,這是因為BWN 使用的模型具有61MB 參數(shù)量,而μL2Q 使用了較小的模型,只有50.88MB,而且量化了模型中的所有層的權(quán)值到1 比特,包括第1 層和最后一層.在1 比特時,μL2Q 量化模型的精度比最新的二值量化方法的結(jié)果平均高1.94%.

      ?μL2Q 與三值量化

      三值量化將權(quán)值量化為{?1,0,1},其位寬最少為2 比特.在位寬為2 比特時,與最新的方法相比,μL2Q 在LeNet5、VGG-like、AlexNet 和ResNet18 上分別平均提升了6.16%,4.94%,1.25%和2.98%.顯著優(yōu)于其他量化方法的原因是:首先,因為與啟發(fā)式的量化方法相比,μL2Q 對權(quán)值的均值和標準差的變化是更魯棒的;其次,μL2Q 還充分利用2 比特的位寬來表示4 個數(shù){?2,?1,0,1},從而可以得到較低的數(shù)據(jù)量化損失和較高的模型精度.在位寬為2 比特時,μL2Q 量化模型的推理精度比最新的三值量化模型的推理精度平均高3.73%.

      ?μL2Q 與定點數(shù)量化

      定點數(shù)量化可以實現(xiàn)靈活的量化位寬.與最新方法相比,μL2Q 在LeNet5、CifarNet、AlexNet 和MobileNetV2上分別平均提升了0.39%,22.28%,8.34%和1.93%.在2 比特量化時,FP 只實現(xiàn)了19.10%的分類精度,而μL2Q 卻能實現(xiàn)80.26%的精度,甚至在1 比特量化時,μL2Q 也能實現(xiàn)79.28%的精度.主要原因在于:FP 使用定點數(shù)量化,而μL2Q 則引入了平移參數(shù)和縮放參數(shù),在幾乎不增加額外計算量的情況下,實現(xiàn)了極大的精度提升.Dorefa-Net和QAT/TQT 方法則因忽略了權(quán)值數(shù)據(jù)的分布,沒有對量化損失和量化參數(shù)的內(nèi)在聯(lián)系進行定量分析,僅使用啟發(fā)式的量化參數(shù)設(shè)置,造成了額外的精度下降.值得注意的是:QAT 保留了MobileNetV2 的第1 層和最后一層數(shù)據(jù)為全精度的浮點數(shù),而TQT 使用全局損失感知來學習量化參數(shù)的方法.QAT 和TQT 沒有相應(yīng)的低比特位寬的量化結(jié)果,與之對比,μL2Q 在低比特位寬時更具優(yōu)勢,即使在8 比特的權(quán)值量化結(jié)果上也能得到出具有競爭力的結(jié)果.在相同的位寬下,μL2Q 的模型精度比最新的定點數(shù)量化模型的精度平均提高8.24%.

      4.3 顯著性物體檢測實驗

      顯著性物體檢測旨在突出圖像中顯著的目標區(qū)域[45],它提供了可供觀測的方法依據(jù)和重要的評價指標.前述實驗結(jié)果表明,μL2Q 在2 比特量化時能夠在精度和量化位寬之間取得較好的平衡.因此,本實驗選取2 比特的μL2Q 權(quán)值量化進行驗證.

      ?數(shù)據(jù)集與模型

      訓練集采用MSRA10K[47]數(shù)據(jù)集中的訓練數(shù)據(jù)(占整個數(shù)據(jù)集的80%).訓練后,在多個數(shù)據(jù)集上進行評估,包括MSRA10K 的測試集(整個數(shù)據(jù)集的20%)、ECSSD[47]、HKU-IS[48]、DUTS[49]和DUT-OMRRON[50]中包含目標對象和現(xiàn)有的真值圖.所選數(shù)據(jù)集的詳細信息見表8.為了便于訓練和測試,實驗中將所有圖像的大小都調(diào)整為224×224.實驗中選擇了3 個著名的端到端語義分割模型U-Net[51]、LinkNet[52]和UNet++[53]進行綜合比較,其詳細信息見表9.這些模型都以ResNet50[4]作為骨干網(wǎng),并使用ImageNet 數(shù)據(jù)集上訓練的權(quán)值進行初始化.

      Table 8 Datasets for salient object detection表8 顯著性物體檢測數(shù)據(jù)集

      Table 9 Models for salient object detection表9 顯著性物體檢測模型

      ?評價指標

      選擇4 個廣泛使用的度量指標進行綜合評價,包括平均絕對誤差(MAE)[54]、最大F-measure(MaxF)[55]、結(jié)構(gòu)度量(S-measure)[56]和增強對齊度量(E-measure)[57].MAE 越低,MaxF、S-measure 和E-measure 越高,代表結(jié)果越理想.

      ?實驗結(jié)果

      如表10 所示,UNet++、U-Net 和LinkNet 是3 個端到端的顯著性物體檢測模型,用*標記的表示量化后的模型.偏差記錄量化模型與全精度的模型在不同數(shù)據(jù)集的不同指標上的差異;規(guī)模表示模型的大小,單位為兆字節(jié)(MB).M,F,S,E分別表示4 個指標:MAE、MaxF、S-measure、E-measure,箭頭表示指標的評價趨勢,↑表示指標越高越好,↓表示指標越低越好.表格中,指標降低在0.01 以內(nèi)的所有結(jié)果用粗體表示,表示較低的性能下降.從表10 的實驗結(jié)果可知,在數(shù)據(jù)集MSRA10K 上,μL2Q 的精度下降最少.與全精度的模型相比,μL2Q 的精度在幾乎所有指標上的下降都低于0.01.這是因為該實驗中所使用的模型,包括全精度的模型和量化模型,都是基于MSRA10K 的,其訓練集和驗證集基于同一數(shù)據(jù)集進行劃分,數(shù)據(jù)偏差小,可以達到較好的驗證效果.而其余的幾個數(shù)據(jù)集只作為驗證集,由于不同的數(shù)據(jù)集之間存在偏差,因此在這些數(shù)據(jù)集上出現(xiàn)了一定的性能波動.但模型的尺寸通過μL2Q 量化可減少93%以上,實現(xiàn)了極高的壓縮率.顯著性物體檢測的實驗表明了:μL2Q 可以應(yīng)用到實際的計算機視覺任務(wù)中,且能有效保證性能.

      Table 10 Quantization results on salient object detection models表10 在顯著性目標檢測模型上的量化結(jié)果

      Table 10 Quantization results on salient object detection models (Continued)表10 在顯著性目標檢測模型上的量化結(jié)果(續(xù))

      5 總結(jié)

      本文提出了一種超低損失的DNN 模型量化方法μL2Q,該方法的設(shè)計考慮了DNN 權(quán)值數(shù)據(jù)的分布規(guī)律,通過定量分析量化位寬與量化損失間的關(guān)系,呈現(xiàn)了不同量化位寬條件下的最低損失所對應(yīng)的量化參數(shù),實現(xiàn)了極低的量化損失,從而能對DNN 模型有效壓縮并能保證模型推理精度.此外,本文還將μL2Q 融合進主流機器學習訓練框架中如Keras,為DNN 模型壓縮的設(shè)計和實現(xiàn)提供了便捷途徑,并顯著降低了工程實現(xiàn)的難度,也有效減少了人工嘗試等重復(fù)性勞動.實驗評估結(jié)果表明,本文提出的μL2Q 實現(xiàn)了極低的量化損失,顯著優(yōu)于其他對比方法,其優(yōu)秀的量化模型精度能夠滿足邊緣計算場景中的DNN 應(yīng)用需求.

      猜你喜歡
      二值正態(tài)分布權(quán)值
      一種融合時間權(quán)值和用戶行為序列的電影推薦模型
      混沌偽隨機二值序列的性能分析方法研究綜述
      支持CNN與LSTM的二值權(quán)重神經(jīng)網(wǎng)絡(luò)芯片
      CONTENTS
      基于二值形態(tài)學算子的軌道圖像分割新算法
      視頻圖像文字的二值化
      基于對數(shù)正態(tài)分布的出行時長可靠性計算
      基于權(quán)值動量的RBM加速學習算法研究
      自動化學報(2017年7期)2017-04-18 13:41:02
      正態(tài)分布及其應(yīng)用
      正態(tài)分布題型剖析
      临猗县| 德阳市| 浠水县| 肥城市| 安远县| 屏南县| 屏南县| 琼结县| 石景山区| 砚山县| 乡宁县| 宜黄县| 当雄县| 崇阳县| 静海县| 崇仁县| 阿拉善左旗| 星子县| 招远市| 浙江省| 抚州市| 兴隆县| 和硕县| 平南县| 招远市| 赤峰市| 宝鸡市| 嘉禾县| 家居| 宝鸡市| 梅河口市| 亚东县| 临颍县| 新建县| 汶上县| 夏邑县| 台南市| 河东区| 卓尼县| 鄂伦春自治旗| 镇远县|