?

一種面向微控制器上環境聲音分類的DNN壓縮方法

2024-03-05 08:20方維維路紅英
計算機與現代化 2024年1期
關鍵詞:中間層剪枝分類器

孟 娜,方維維,路紅英

(北京交通大學計算機與信息技術學院,北京 100044)

0 引 言

在日常環境中,人們被各種各樣的環境聲音所包圍,如空調工作聲、汽車喇叭聲、自來水聲等,這些自然或人為的聲音都可以歸類為環境聲音[1]?,F實生活中與環境聲音分類(Environmental Sound Classification,ESC)相關的應用隨處可見,例如通過戶外傳感系統中的數據信息識別來自不同物種的聲音,助力于生物多樣性評估工作[1];智能家居設施能夠有效獲取和分析家庭監控環境聲音,可對老年人的突發情況進行實時反饋[2];此外還有噪聲檢測系統[3]等。在非語音音頻分類任務中,ESC 是最重要的課題之一[4]。隨著深度學習技術的飛速發展,深度神經網絡(Deep Neural Network,DNN)[5]極大地提升了ESC任務的精度,DNN在ESC任務上的應用引起了人們廣泛的關注[6-8]。

然而,DNN 在計算和內存方面開銷巨大,給基于微控制器(Microcontroller Unit,MCU)的物聯網(Internet-of-Things,IoT)應用帶來巨大挑戰[9]。如表1 所示,與傳統的計算設備不同,微控制器是一種沒有操作系統和動態隨機存取存儲器的微型計算機,在計算、內存和存儲等各方面的資源都是極其受限的。以STM32F746ZG 為例,該設備是一個ARM Cortex-M7 MCU,其CPU 主頻為216 MHz,存儲空間僅有1 MB,而內存僅有320 kB。經典的DNN 模型ResNet-50 的部署需要占用102 MB 存儲空間,對其進行8 位量化降為26 MB 后,雖然能應用到云GPU、CPU 等計算硬件上,但仍然無法部署到MCU 上。微型機器學習[10](TinyML)作為一個新的計算范式應運而生,即在IoT 設備的超低功耗微控制器上運行機器學習推理。與現有計算范式不同,TinyML 的目標設備資源非常低,需要對DNN進行更大幅度的壓縮[11]。

表1 嵌入式平臺及其硬件能力

現階段已有部分學者針對MCU 上的ESC 任務提出壓縮方案。Kumari 等[12]通過對L3-Net 進行剪枝減少網絡參數得到緊湊的模型EdgeL3,產生良好的理論壓縮比。但是,該方法導致了稀疏的參數矩陣,需要專用的硬件和軟件支持。Cerutti 等[13]利用Google 在大型聲音數據集Audioset 上訓練的VGGish 模型參數,并基于啟發式的方法設計了緊湊的模型結構,提出一種知識蒸餾方法提升小模型的精度,然而,該工作并未提供一個通用的輕量模型的獲取方法。Mohaimenuzzaman 等[11]首先根據ESC 數據特點設計了一個DNN 模型ACDNet,然后通過剪枝和知識蒸餾等操作對其進行壓縮獲得Micro-ACDNet,但是該工作直接對模型進行量化部署,帶來了精度損失。

針對已有工作中存在的問題,本文提出一種面向微控制器上環境聲音分類的DNN 壓縮方法。首先,由于規模較大的模型無法直接部署應用,本文提出使用剪枝方法對模型進行大幅壓縮。接下來,針對壓縮帶來的精度損失問題,設計一種面向剪枝的知識蒸餾方法(Pruning-oriented Knowledge Distillation,PoKD)進行解決。最后,對壓縮優化后的模型進行了量化部署。本文的主要工作有:

1)設計面向剪枝的知識蒸餾方法,通過在訓練階段對教師和學生網絡的中間層增加輔助分類器,并結合注意力機制對多個教師中間層的輸出信息進行融合,以指導學生網絡的訓練,實現更全面且具有不同側重程度的知識轉移。

2)基于STM32F746ZG 在廣泛應用的數據集(UrbanSound8K[14]和ESC-50[15])上進行實驗,結果表明本文方法能夠在較小的精度損失內,獲得較高的壓縮率,提升推理速度。與已有的工作相比,在同等壓縮程度的情況下,本文提出的方法精度更高。

1 相關研究工作

現階段已有很多研究[16]致力于壓縮和加速大規模參數的DNN,包括模型剪枝、知識蒸餾、模型量化和低秩近似等。本文主要關注前3個方面的壓縮技術。

1.1 模型剪枝

模型剪枝是通過消除不重要的網絡權重來降低參數規模的,方法分為非結構化[16-17]和結構化[18-19]2種形式。非結構化剪枝可以在DNN 中進行任意權重的修剪,產生高稀疏率的權重矩陣,但是運行時需要特定的硬件支持[18]。結構化剪枝通過移除整個濾波器或通道,產生非稀疏壓縮,克服了非結構化剪枝中存在的問題[19],已成為近年來的研究熱點。然而,在現有的通道剪枝方法中,如何確定最佳的層稀疏度一直是通道剪枝需要面臨的關鍵挑戰之一。Duggal等[20]提出了CUP 方法來解決此問題,利用輸入和輸出權值來計算表征濾波器的特征,對相似的濾波器進行聚類,從而完成刪減操作。該方法只需引入一個超參數,便可實現各層根據其對剪枝敏感程度的不同進行不同程度的壓縮,獲得了更優的壓縮率。本文提出使用剪枝方法CUP[20]作為DNN 壓縮方法的第一步,構建一個緊湊的模型以適應硬件資源約束。

1.2 知識蒸餾

知識蒸餾(Knowledge Distillation,KD)最早由Hinton等[21]提出,使用大型而復雜網絡(教師網絡)的輸出概率作為軟標簽來傳遞知識,提高規模小但是精度較低的網絡(學生網絡)的性能。之后進一步探索了如何從教師網絡的中間層提取表征信息。Romero等[22]提出了FitNet,直接匹配師生網絡的中間特征圖,改進學生模型的訓練。受此方法啟發,各種間接匹配特征圖的方法[23-27]被陸續提出。Zagoruyko等[23]提出將注意力作為一種知識從教師網絡轉移到學生網絡。Wang 等[24]設計了MHKD,通過對模型引入輔助分類器,提出匹配師生網絡中間層的分類信息。Yang 等[25]結合自監督對比學習,提出分層的自我監督的增強知識蒸餾方法。然而上述方法中,師生模型的中間特征對應關系均為一對一的映射關系,并沒有充分利用到其他網絡層的信息。為解決此問題,Chen 等[26]設計的SemCKD 方法和Passban 等[27]設計的ALP-KD 方法都使用所有教師網絡中間層的特征作為知識信息,二者主要的區別在于注意力權重的計算方式不同。但是,直接基于師生網絡中間層信息中執行蒸餾的方式缺乏明確的理論證明其如何工作的原理[28]。本文的方法受Wang 等[24]方法啟發,結合注意力機制將多個教師中間層的分類信息融合輸出,以指導學生訓練,有效解決了上述工作中存在的問題。

1.3 模型量化

量化是指通過用更少位數的數據類型來近似表示32 位有限范圍浮點數據,從而實現降低占用的存儲空間和加快模型推理速度的目標[29]。根據量化位數可以分為低位量化(1 比特[30-31]、2 比特[32]、4 比特[33-34])和普通量化(8 比特[35-36]等)。Courbariaux等[31]提出在網絡前向傳播中使用二進制權值訓練一個DNN,并通過簡單的加減法替換乘法操作。Choi等[32]通過引入0 狀態,使用2 比特存儲權值參數,可以在模型大小和推理精度之間實現良好的權衡。但是,這種二進制或者三元量化會面臨不可忽視的精度損失問題,尤其是對于大規模參數的模型。實際上,已有研究表明,使用8位整數(INT8)來量化權重可以實現相對較低的精度損失[35]。因此,INT8 量化得到了深度學習框架的廣泛支持,例如TensorFlow Lite Micro、NVIDIA TensorRT 等。本文使用的量化方法是面向INT8 量化實現的,從而滿足了在微控制器上模型部署的需求。

2 壓縮方法設計

2.1 整體框架

圖1 展示了本文提出的壓縮方法的整體流程。步驟①使用聲音特征訓練模型,獲得性能優異的原始DNN 模型MOri。但是該模型參數規模過大,無法直接部署到資源高度受限的MCU 上?;?.1 節的方法描述和實驗測試,在步驟②中提出使用CUP[20]剪枝方法去除冗余參數,產生滿足設備資源要求的小模型MPru。然而,MPru是經過深度壓縮得到的,推理精度略低。針對此問題,設計了新的知識蒸餾方法PoKD,結合步驟①和步驟②的結果,通過步驟③得到MPoKD。在MCU 上進行模型部署前,往往需要對神經網絡進行量化,即完成步驟④,得到可以部署在MCU 上的高性能輕量級模型MQua。

圖1 DNN壓縮方法概述

下面將在2.2節和2.3節對設計的蒸餾方法PoKD和量化方法進行具體介紹。

2.2 PoKD蒸餾方法

本文提出的PoKD 框架如圖2 所示,在模型訓練階段,對教師和學生模型不同的網絡單元(同一單元中的網絡層具有相同維度的特征圖)都增加了輔助分類器。在測試階段,使用移除所有輔助分類器后的網絡進行推理計算。在具體實現中,由于對模型增加了輔助分類器,因此與傳統的訓練流程有所不同。以下首先介紹基于交叉熵和KL 散度的損失函數,接著分別對師生網絡的訓練損失函數進行具體描述。

圖2 PoKD方法框架

將參與模型訓練的數據集合表示為{x,y},其中,x表示輸入數據,y表示真實標簽。對網絡得到的所有輸出分布,利用Softmax 層進行歸一化,將得到相應的概率分布稱為硬標簽信息。同時,引入溫度系數T用來平滑所有的輸出分布,將得到的結果稱為軟目標,如式(1)所示:

式中:pi(x,T)是將樣本x預測為第i個類別的概率,通過合并所有類別可以形成p(x,T);zi和zj分別表示最后一層神經元對第i和j個類別的輸出結果;K為樣本的類別總數;當T值為1 時,得到的結果即為硬標簽信息。

使用交叉熵計算模型的硬標簽與真實標簽之間的差異如式(2)所示:

其中,p和q分別表示2 個網絡的軟標簽,基于KL 散度實現的損失函數如式(3)所示:

對教師網絡,以pt(x,T)表示最后一層的輸出信息表示輔助分類器的輸出信息,N為輔助分類器個數。教師網絡的損失函數由2 個部分組成,包括最后一層和所有輔助分類器的輸出分別與真實標簽間的交叉熵損失,如公式(4)所示:

對學生網絡,以ps(x,T)表示最后一層的輸出信息表示輔助分類器輸出的輸出信息。學生網絡的損失函數由3 個部分組成,包括最后一層輸出的硬標簽與真實標簽間的交叉熵損失LCE、基于師生網絡最后一層輸出的軟標簽間的蒸餾損失LKL以及基于師生網絡中間層表征信息間的蒸餾損失LHint,如公式(5)所示:

其中,LHint是基于輔助分類器的輸出信息結合注意力機制計算而來的。對學生的每個輔助分類器,計算多個教師網絡輔助分類器的加權輸出分布,用于知識蒸餾訓練。其中,用于求和的權值是使用向量點積計算師生輔助分類器輸出間的相似性,接下來使用Softmax 進行歸一化。具體地,對于學生網絡第j個輔助分類器,計算其對教師網絡第i個輔助分類器的注意力權值,如式(6)所示:

結合教師網絡前j個輔助分類器計算得到融合輸出,作為指導學生第j個輔助分類器訓練的知識信息,如式(7)所示:

學生網絡第j個輔助分類器的蒸餾損失如式(8)所示:

使用所有輔助分類器的蒸餾損失,計算得到學生網絡中間層的損失如下:

2.3 量化方法

由于MCU 上的模型部署要求進行浮點(FP32)參數到整型(INT8)參數的轉換[13],因此需要對通過PoKD方法得到的模型進行量化,如圖3所示。

圖3 量化方法示意圖

為將網絡的浮點數值量化為整型數值,采用廣泛應用的線性變換方式[29]。以S表示縮放因子,Z表示浮點數0.對應的整型參數,以r和q分別表示模型在量化前后的浮點和整型參數,r∈[rmin,rmax],q∈[qmin,qmax]。S的計算公式如式(10)所示:

由S的值可以計算Z的數值,如式(11)所示:

將模型參數從FP32轉為INT8,如式(12)所示:

3 實驗結果與分析

3.1 實驗設置

3.1.1 數據集

本文在2 個廣泛應用的環境聲音分類數據集UrbanSound8K[14]和ESC-50[15]上對方法進行測試。

1)UrbanSound8K。該數據集是用于自動城市環境聲分類研究的數據集,共有8732 條已標注的聲音片段,采樣率不同,最大長度為4 s。該數據集包含10 個分類,例如空調聲、汽車鳴笛聲、狗叫聲等。與ESC-50 不同,UrbanSound8K 的數據量更大,聲音片段的時間長度不同。

2)ESC-50。該數據集是2000 條環境錄音的集合,同樣常用于環境聲音分類的基準測試。其中,每條音頻記錄時長為5 s,以16 kHz 和44.1 kHz 采樣,這些樣本均勻分布在50 個平衡的不相交類別上(每個類別40 個音頻樣本)。與UrbanSound8K 相比,ESC-50覆蓋了更多的聲音類別,所有音頻時長相同。

3.1.2 DNN模型

與圖像分類任務不同,由于2 個聲音數據集的樣本量較少,故使用流行的DNN[4]中深度較淺的模型來對所提壓縮方法進行測試,包括VGG-11和ResNet-18。

1)VGG-11。網絡主要由8 個卷積層和3 個全連接層組成,每個卷積層后都是一個批量歸一化層和ReLU 激活函數。在模型訓練階段,將輔助分類器添加在網絡的第1、2、4和6個卷積層后。

2)ResNet-18。由17個卷積層和1個全連接層構成,第一個卷積層用于輸入數據的預處理,后面是4個相互堆疊的殘差塊,每個殘差塊有2 個卷積層,輸出通道的數量相同。此外,網絡有跳過連接,可以跳過這2 個卷積操作,并在最終的ReLU 激活函數之前直接添加輸入。在模型訓練階段,將輔助分類器添加在網絡第1、2和3個殘差塊后。

3.1.3 實驗環境

模型訓練是在GPU 深度神經網絡集成計算平臺上進行的,使用的GPU 為NVIDIA GeForce RTX 2080Ti,實現神經網絡模型采用的深度神經網絡框架是PyTorch。在模型部署階段,使用的MCU 設備為STM32F746ZG。以ONNX作為中介,將訓練好的神經網絡轉換為Tensorflow 格式,使用TensorFlow Lite Micro[37]框架工具進行部署。

3.1.4 實驗參數

在模型訓練階段,對師生網絡的中間層引入的輔助分類器由1 個卷積層和1 個全連接層組成,卷積層后有1 個批量歸一化層和1 個ReLU 激活函數。實驗過程中,對在2 個數據集上訓練的模型均采用自適應矩估計(Adaptive Moment Estimation,Adam)方法進行優化。數據批量大小設置為64,學習率設置為0.001,權重衰減系數為0.0005,訓練迭代次數設置為100,50,5,50。

3.2 壓縮方法實驗

本節基于在UrbanSound8K 和ESC-50 數據集訓練得到的VGG-11和ResNet-18對提出的壓縮方法進行實驗。首先,使用剪枝方法CUP[20]獲得適當的壓縮率,使得既能大幅降低參數至滿足硬件資源的規模,又能保持一定的精度。接下來,通過將壓縮前后的2 個模型分別作為師生模型,對提出的PoKD 方法與已有的蒸餾方法進行對比,結果表明PoKD 能夠在同等壓縮程度下實現更高的精度。最后,對模型進行了量化。

3.2.1 剪枝實驗結果

將剪枝方法CUP[20]應用于在2 個數據集上訓練的VGG-11 和ResNet-18,圖4 展示了模型參數的降低比例及壓縮后的精度變化。在ESC任務中,輕度的壓縮(壓縮率<85%)能夠提高模型的精度。而進一步增大壓縮率時,當參數規模降低超過97%后,精度損失3個百分點~8個百分點。

圖4 對2個模型剪枝的結果

3.2.2 PoKD實驗結果

以未壓縮的模型作為教師網絡,剪枝97%參數后的小模型作為學生網絡,對不同的知識蒸餾方法進行對比實驗,表2展示了蒸餾前后模型的精度。

表2 知識蒸餾方法的對比實驗

表2 數據表明,對模型大幅壓縮后的精度損失為3 個百分點~5 個百分點。只是基于網絡輸出層和中間層知識蒸餾方式是有效的,但是效果較差,最高能對精度提升1.69 個百分點。在間接匹配師生網絡中間層的表征信息的方式中,MHKD[24]僅對師生的中間層進行一對一的指導,知識信息量相對較少,未能達到很好的效果。ALP-KD[27]使用所有的教師網絡的中間層信息對學生進行指導訓練,但由于壓縮后的模型過小,淺層網絡學習能力較低,不具備更深度的表征能力,實現的結果略優于MHKD。而PoKD 方法兼顧了以上2 種情況,與對比方法中最好的結果相比,PoKD將模型精度提高了0.5個百分點~2個百分點。

3.2.3 量化實驗結果

表3 展示了模型經過量化后的推理精度,直接對壓縮后的輕量模型進行量化會在一定程度上損傷模型性能,精度降低了2.5個百分點~5個百分點。

表3 量化方法實驗結果

3.3 對比實驗

在本節中,與典型壓縮方案Micro-VGGish[13]、Micro-ACDNet[11]進行了對比。

首先,與Micro-VGGish 生成初步的緊湊模型結構的方法進行對比,結果如表4 所示。其中,CUP-31k 和CUP-27k 分別表示使用剪枝方法CUP[20]將模型參數壓縮至31 k 和27 k。由表4 可知,與未經壓縮的VGGish 模型相比,無論是使用剪枝方法還是基于啟發式的壓縮方法將模型參數量從72.1 M 降低至0.031 M,都會有很高的精度損失。但是,使用剪枝方法CUP-31k得到的與Micro-VGGish 同等規模的輕量級模型,前者的推理精度更高。繼續壓縮至更小的模型,使用剪枝方法仍然能得到更高的精度。在浮點運算方面,由于未對原始網絡層的配置進行修改優化,得到的結果略高。

表4 與Micro-VGGish的對比

表5 展示了所提知識蒸餾方法的對比結果。在同樣的壓縮程度下,與TKD 相比,PoKD 能將精度提高1.48 個百分點。同時使用CUP-27k 和PoKD 對模型進一步壓縮,將參數量降低為27.14×103時,仍然能夠獲得具有競爭力的精度。

表5 與Micro-VGGish的知識蒸餾方法的對比

最后,與Micro-ACDNet[11]進行了對比。表6 展示了Micro-ACDNet 與本文方法在壓縮后的模型精度、參數量、浮點運算數以及在設備上的推理時延。與Micro-ACDNet 相比,本文的壓縮方法實現了更高的壓縮率,推理精度提高了0.43個百分點。將模型部署到推理設備上后,由于本方法將模型壓縮至更小的規模,獲得的模型推理時延更低。

表6 與Micro-ACDNet的對比

4 結束語

本文針對MCU 上的環境聲音分類模型部署困難的問題,提出了一種完整的DNN 壓縮方法。針對使用剪枝方法對模型進行大幅壓縮帶來的精度損失問題,提出了一種面向剪枝的知識蒸餾方法進行解決,之后將量化后的模型部署到MCU 上進行測試。通過在經典的DNN 模型和廣泛使用的數據集上進行實驗,獲得了97%以上的壓縮率,而精度下降在2 個百分點以內。與已有的方案對比,在同等壓縮程度下,將精度提高了1 個百分點~2 個百分點。在未來的工作中,將持續關注與ESC 相關的其他數據集和模型,繼續在MCU 上進行測試,提高本文方法的性能,并研究其他可以應用于MCU上的壓縮方案。

猜你喜歡
中間層剪枝分類器
人到晚年宜“剪枝”
基于YOLOv4-Tiny模型剪枝算法
BP-GA光照分類器在車道線識別中的應用
剪枝
加權空-譜與最近鄰分類器相結合的高光譜圖像分類
結合模糊(C+P)均值聚類和SP-V-支持向量機的TSK分類器
鎳基高溫合金TLP擴散焊中間層材料研究進展
B含量對IC10合金TLP焊接用中間層材料及接頭組織的影響
基于LLE降維和BP_Adaboost分類器的GIS局部放電模式識別
一種面向不平衡數據分類的組合剪枝方法
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合