面向嵌入式部署的神經(jīng)網(wǎng)絡(luò)優(yōu)化:模型壓縮深度解析
掃描二維碼
隨時(shí)隨地手機(jī)看文章
作者:Lavanya Arakere Dineshkumar
為什么需要神經(jīng)網(wǎng)絡(luò)模型壓縮?
神經(jīng)網(wǎng)絡(luò)已經(jīng)成為解決復(fù)雜機(jī)器學(xué)習(xí)問(wèn)題的強(qiáng)大工具。然而,這種能力往往伴隨著模型規(guī)模和計(jì)算復(fù)雜度的增加。當(dāng)輸入維度較大(例如長(zhǎng)時(shí)序窗口、高分辨率特征空間)時(shí),模型需要更多參數(shù)、每次推理需要更多算術(shù)運(yùn)算,使其難以部署在嵌入式硬件上。
對(duì)于嵌入式系統(tǒng)而言,資源極其有限。內(nèi)存空間受限,因此在桌面或云平臺(tái)上輕松運(yùn)行的模型可能無(wú)法放入芯片內(nèi)的閃存。此外,較高的運(yùn)算量(MACs/FLOPs)和推理延遲要求往往超出低功耗MCU或邊緣設(shè)備所能承受的范圍。
我們要解決的核心挑戰(zhàn)是:如何在保持模型性能的前提下,大幅壓縮神經(jīng)網(wǎng)絡(luò)模型,降低模型大小、推理時(shí)間和計(jì)算成本,從而實(shí)現(xiàn)其在資源受限的嵌入式系統(tǒng)上的部署。
神經(jīng)網(wǎng)絡(luò)模型壓縮是如何工作的?
神經(jīng)網(wǎng)絡(luò)模型往往比實(shí)際需要的更大。在訓(xùn)練和驗(yàn)證之前,我們很難準(zhǔn)確判斷架構(gòu)規(guī)模是否合理。模型壓縮的目標(biāo)就是識(shí)別模型中的冗余和未充分利用的權(quán)重并將其移除。
我們使用專有的數(shù)學(xué)方法來(lái)尋找并壓縮這些冗余,對(duì)網(wǎng)絡(luò)進(jìn)行重新整理,使其更加簡(jiǎn)潔、小巧和高效。同時(shí),我們會(huì)嚴(yán)格控制精度損失,確保不會(huì)丟棄過(guò)多關(guān)鍵信息。
實(shí)例:緊急尖叫聲檢測(cè)(Emergency Scream Detection)
為了更直觀地解釋這一挑戰(zhàn),我們以“緊急尖叫聲檢測(cè)(ESD)”演示為例。ESD系統(tǒng)是一種機(jī)器學(xué)習(xí)模型,用于區(qū)分求救尖叫聲和其他環(huán)境聲音。該任務(wù)是一個(gè)二分類問(wèn)題:Scream vs Not Scream。
模型使用 HYPERLINK "https://research.google.com/audioset/ontology/index.html" 公共數(shù)據(jù)集中的音頻信號(hào)進(jìn)行訓(xùn)練。訓(xùn)練數(shù)據(jù)集規(guī)模大且多樣化,而驗(yàn)證數(shù)據(jù)集由團(tuán)隊(duì)采集的小規(guī)模現(xiàn)場(chǎng)錄音構(gòu)成。模型在訓(xùn)練集的k-fold驗(yàn)證中表現(xiàn)中等,但在新的現(xiàn)場(chǎng)數(shù)據(jù)上表現(xiàn)非常好。
基線模型性能:
我們使用基于全連接層的神經(jīng)網(wǎng)絡(luò),并以STFT頻譜圖作為輸入特征。該模型取得了最佳效果,達(dá)到:
k-fold驗(yàn)證精度:82%
現(xiàn)場(chǎng)數(shù)據(jù)測(cè)試精度:98%
從性能角度看,該模型表現(xiàn)優(yōu)秀。然而,它有一個(gè)關(guān)鍵問(wèn)題:
ROM占用:552kB
該大小超過(guò)目標(biāo)嵌入式平臺(tái)(Voice RA6E1)的內(nèi)存限制,導(dǎo)致無(wú)法部署。
壓縮模型性能:
為了解決這一問(wèn)題,我們應(yīng)用了Renesas為嵌入式部署優(yōu)化的專有神經(jīng)網(wǎng)絡(luò)壓縮技術(shù)。
壓縮結(jié)果非常顯著:
模型大小從552kB降至117kB(減少約79%)
k-fold驗(yàn)證精度保持82%
現(xiàn)場(chǎng)測(cè)試精度保持98%
MAC從129,68 降至21,001(降低83%)
Figure 1: Comparing baseline and compressed model on RealityAI

也就是說(shuō),在幾乎不影響模型性能的前提下,顯著減少了模型規(guī)模和計(jì)算成本。
圖1–5展示了該對(duì)比的詳細(xì)信息。圖1顯示AI Explore?的對(duì)比結(jié)果;圖2和圖3的混淆矩陣確認(rèn)精度保持一致;圖4和圖5的紅框部分(Flash Parameters)展示了模型大小和復(fù)雜度的核心差異,該數(shù)值反映了實(shí)際編譯后部署的模型,比Explore頁(yè)面上的估算更準(zhǔn)確。
更多成功案例
表1匯總了其他示例模型的結(jié)果——其中,資產(chǎn)移動(dòng)跟蹤模型使用加速度計(jì)數(shù)據(jù)來(lái)識(shí)別設(shè)備或包裹的搬運(yùn)與移動(dòng)狀態(tài);吸塵器地面類型檢測(cè)模型通過(guò)電機(jī)信號(hào)判斷清掃對(duì)象的地面材質(zhì);電機(jī)啟動(dòng)負(fù)載檢測(cè)模型能夠在開環(huán)控制下快速判斷電機(jī)的啟動(dòng)負(fù)載,從而幫助控制器實(shí)現(xiàn)節(jié)能優(yōu)化。
從這些實(shí)驗(yàn)結(jié)果可以看到,模型在壓縮后的準(zhǔn)確率基本得以保持。兩個(gè)項(xiàng)目在壓縮前后完全沒有精度損失(緊急尖叫檢測(cè):98% → 98%,電機(jī)啟動(dòng)負(fù)載:99% → 99%),其余兩個(gè)項(xiàng)目的變化也僅為1%的輕微下降(資產(chǎn)移動(dòng):92% → 91%,吸塵器地面類型:96% → 95%)。
在保持精度幾乎不變的同時(shí),模型體積顯著減小。尤其是較大的基線模型,ROM 使用量減少超過(guò)75%。同時(shí),MAC(Multiply-Accumulate)運(yùn)算量也呈現(xiàn)同等幅度的下降,與 ROM 節(jié)省情況高度一致。
Table SEQ Table \* ARABIC : Comparison of baseline and compressed models
使用 Reality AI Tools®進(jìn)行模型壓縮
在Reality AITools®中,對(duì)神經(jīng)網(wǎng)絡(luò)模型進(jìn)行壓縮、重新訓(xùn)練、使用新數(shù)據(jù)進(jìn)行測(cè)試以及部署到目標(biāo)板上,都非常簡(jiǎn)單。事實(shí)上,在AI Explore?階段,工具會(huì)自動(dòng)完成模型壓縮——你甚至不需要額外關(guān)注這一步驟。
下面是一段精簡(jiǎn)的流程說(shuō)明,展示你將會(huì)看到的主要步驟。
首先,在Data→Curate模塊中創(chuàng)建你的訓(xùn)練集和測(cè)試集。
在AI Explore?頁(yè)面中訓(xùn)練模型,并探索不同的特征空間與決策結(jié)構(gòu)。點(diǎn)擊“Start Explore”后,系統(tǒng)會(huì)自動(dòng)訓(xùn)練和測(cè)試多種模型,并根據(jù)性能對(duì)它們進(jìn)行排序。在Explore的結(jié)果中,你會(huì)同時(shí)看到部分模型的基線版本與壓縮版本。當(dāng)某個(gè)基線模型在不降低準(zhǔn)確率的情況下可以進(jìn)一步縮小體積時(shí),工具會(huì)自動(dòng)生成其壓縮版本。壓縮模型會(huì)使用一個(gè)特殊符號(hào)標(biāo)記
(如圖7中紅色箭頭所示)。相反,沒有該符號(hào)的則是未壓縮的原始基線模型。
一旦你確定了需要進(jìn)一步評(píng)估與部署的模型,可以從該模型創(chuàng)建一個(gè)Base Tool,以便繼續(xù)開展后續(xù)工作。此時(shí),壓縮后的模型即可用于重新訓(xùn)練、測(cè)試、優(yōu)化以及部署,使用方式與原始基線模型完全一致。
對(duì)于用戶來(lái)說(shuō),使用壓縮模型是完全透明的。它在系統(tǒng)中會(huì)像其他任何Trained Tool模型一樣工作,不需要額外步驟或特殊處理。
Figure 8: Test new data on trained model
你可以在Test & Optimize→Try New Data區(qū)域測(cè)試壓縮后的模型。選擇壓縮版本的Trained Tool模型以及所需的測(cè)試數(shù)據(jù)集,然后運(yùn)行AccuracyTest(準(zhǔn)確率測(cè)試),即可評(píng)估該模型在未見過(guò)的數(shù)據(jù)上的表現(xiàn)。
部署同樣非常簡(jiǎn)單。在驗(yàn)證壓縮模型并確認(rèn)其性能符合預(yù)期后,你可以進(jìn)入Deploy→Embedded完成部署流程。選擇已經(jīng)訓(xùn)練好的壓縮模型,并根據(jù)目標(biāo)嵌入式系統(tǒng)的約束條件創(chuàng)建新的部署包。隨后,下載生成的可導(dǎo)出模型包,并將其部署到目標(biāo)硬件板上。與Reality AI Tools®中其他模型的部署方式完全一致,使用壓縮模型無(wú)需任何額外步驟或特殊處理。
Figure 9: Export compressed model
結(jié)論
在部署機(jī)器學(xué)習(xí)模型時(shí),僅有高準(zhǔn)確率還遠(yuǎn)遠(yuǎn)不夠。模型還必須滿足嚴(yán)格的內(nèi)存預(yù)算,并在資源受限的環(huán)境中高效運(yùn)行。我們先進(jìn)的神經(jīng)網(wǎng)絡(luò)模型壓縮技術(shù),使開發(fā)階段的高性能模型能夠輕松過(guò)渡為可部署于邊緣設(shè)備的輕量化AI解決方案。
如需了解更多信息,請(qǐng)?jiān)L問(wèn)我們的官方網(wǎng)站www.renesas.com,或聯(lián)系您當(dāng)?shù)氐拇怼?
如需進(jìn)一步了解詳情、獲取支持,或正式啟動(dòng)項(xiàng)目開發(fā),您可以通過(guò)以下方式與我們聯(lián)系:
申請(qǐng)Reality AI演示: "https://info.renesas.com/reality-ai-request" \t "_blank" \o "https://info.renesas.com/reality-ai-request" ,體驗(yàn)完整功能與實(shí)際應(yīng)用場(chǎng)景,幫助您快速評(píng)估技術(shù)可行性。
從 "https://info.renesas.com/reality-ai" \t "_blank" , "https://info.renesas.com/reality-ai" 開始為期一個(gè)月的試用,立即上手平臺(tái)工具,進(jìn)行數(shù)據(jù)處理、模型訓(xùn)練、壓縮與部署的全流程體驗(yàn)。





