作者:吳湛
我們可以對(duì)神經(jīng)網(wǎng)絡(luò)架構(gòu)進(jìn)行優(yōu)化,使之適配微控制器的內(nèi)存和計(jì)算限制范圍,并且不會(huì)影響精度。我們將在本文中解釋和探討深度可分離卷積神經(jīng)網(wǎng)絡(luò)在 Cortex-M 處理器上實(shí)現(xiàn)關(guān)鍵詞識(shí)別的潛力。
關(guān)鍵詞識(shí)別 (KWS) 對(duì)于在智能設(shè)備上實(shí)現(xiàn)基于語(yǔ)音的用戶交互十分關(guān)鍵,需要實(shí)時(shí)響應(yīng)和高精度,才能確保良好的用戶體驗(yàn)。最近,神經(jīng)網(wǎng)絡(luò)已經(jīng)成為 KWS 架構(gòu)的熱門選擇,因?yàn)榕c傳統(tǒng)的語(yǔ)音處理算法相比,神經(jīng)網(wǎng)絡(luò)的精度更勝一籌。
關(guān)鍵詞識(shí)別神經(jīng)網(wǎng)絡(luò)管道
由于要保持“永遠(yuǎn)在線”,KWS 應(yīng)用的功耗預(yù)算受到很大限制。雖然 KWS 應(yīng)用也可在專用 DSP 或高性能 CPU 上運(yùn)行,但更適合在 Arm Cortex-M 微控制器上運(yùn)行,有助于最大限度地降低成本,Arm Cortex-M 微控制器經(jīng)常在物聯(lián)網(wǎng)邊緣用于處理其他任務(wù)。
但是,要在基于 Cortex-M 的微控制器上部署基于神經(jīng)網(wǎng)絡(luò)的 KWS,我們面臨著以下挑戰(zhàn):
有限的內(nèi)存空間
典型的 Cortex-M 系統(tǒng)最多提供幾百 KB 的可用內(nèi)存。這意味著,整個(gè)神經(jīng)網(wǎng)絡(luò)模型,包括輸入/輸出、權(quán)重和激活,都必須在這個(gè)很小的內(nèi)存范圍內(nèi)運(yùn)行。
2. 有限的計(jì)算資源
由于 KWS 要保持永遠(yuǎn)在線,這種實(shí)時(shí)性要求限制了每次神經(jīng)網(wǎng)絡(luò)推理的總運(yùn)算數(shù)量。
以下是適用于 KWS 推理的典型神經(jīng)網(wǎng)絡(luò)架構(gòu):
? 深度神經(jīng)網(wǎng)絡(luò) (DNN)
DNN 是標(biāo)準(zhǔn)的前饋神經(jīng)網(wǎng)絡(luò),由全連接層和非線性激活層堆疊而成。
? 卷積神經(jīng)網(wǎng)絡(luò) (CNN)
基于 DNN 的 KWS 的一大主要缺陷是無(wú)法為語(yǔ)音功能中的局域關(guān)聯(lián)性、時(shí)域關(guān)聯(lián)性、頻域關(guān)聯(lián)性建模。CNN 則可將輸入時(shí)域和頻域特征當(dāng)作圖像處理,并且在上面執(zhí)行 2D 卷積運(yùn)算,從而發(fā)現(xiàn)這種關(guān)聯(lián)性。
? 循環(huán)神經(jīng)網(wǎng)絡(luò) (RNN)
RNN 在很多序列建模任務(wù)中都展現(xiàn)出了出色的性能,特別是在語(yǔ)音識(shí)別、語(yǔ)言建模和翻譯中。RNN 不僅能夠發(fā)現(xiàn)輸入信號(hào)之間的時(shí)域關(guān)系,還能使用“門控”機(jī)制來(lái)捕捉長(zhǎng)時(shí)依賴關(guān)系。
? 卷積循環(huán)神經(jīng)網(wǎng)絡(luò) (CRNN)
卷積循環(huán)神經(jīng)網(wǎng)絡(luò)是 CNN 和 RNN 的混合,可發(fā)現(xiàn)局部時(shí)間/空間關(guān)聯(lián)性。CRNN 模型從卷積層開(kāi)始,然后是 RNN,對(duì)信號(hào)進(jìn)行編碼,接下來(lái)是密集全連接層。
? 深度可分離卷積神經(jīng)網(wǎng)絡(luò) (DS-CNN)
最近,深度可分離卷積神經(jīng)網(wǎng)絡(luò)被推薦為標(biāo)準(zhǔn) 3D 卷積運(yùn)算的高效替代方案,并已用于實(shí)現(xiàn)計(jì)算機(jī)視覺(jué)的緊湊網(wǎng)絡(luò)架構(gòu)。
DS-CNN 首先使用獨(dú)立的 2D 濾波,對(duì)輸入特征圖中的每個(gè)通道進(jìn)行卷積計(jì)算,然后使用點(diǎn)態(tài)卷積(即 1x1),合并縱深維度中的輸出。通過(guò)將標(biāo)準(zhǔn) 3D 卷積分解為 2D和后續(xù)的 1D,參數(shù)和運(yùn)算的數(shù)量得以減少,從而使得更深和更寬的架構(gòu)成為可能,甚至在資源受限的微控制器器件中也能運(yùn)行。
在 Cortex-M 處理器上運(yùn)行關(guān)鍵詞識(shí)別時(shí),內(nèi)存占用和執(zhí)行時(shí)間是兩個(gè)最重要因素,在設(shè)計(jì)和優(yōu)化用于該用途的神經(jīng)網(wǎng)絡(luò)時(shí),應(yīng)該考慮到這兩大因素。以下所示的神經(jīng)網(wǎng)絡(luò)的三組限制分別針對(duì)小型、中型和大型 Cortex-M 系統(tǒng),基于典型的 Cortex-M 系統(tǒng)配置。
KWS 模型的神經(jīng)網(wǎng)絡(luò)類別 (NN) 類別,假定每秒 10 次推理和 8 位權(quán)重/激活
要調(diào)節(jié)模型,使之不超出微控制器的內(nèi)存和計(jì)算限制范圍,必須執(zhí)行超參數(shù)搜索。下表顯示了神經(jīng)網(wǎng)絡(luò)架構(gòu)及必須優(yōu)化的相應(yīng)超參數(shù)。
神經(jīng)網(wǎng)絡(luò)超參數(shù)搜索空間
首先執(zhí)行特征提取和神經(jīng)網(wǎng)絡(luò)模型超參數(shù)的窮舉搜索,然后執(zhí)行手動(dòng)選擇以縮小搜索空間,這兩者反復(fù)執(zhí)行。下圖總結(jié)了適用于每種神經(jīng)網(wǎng)絡(luò)架構(gòu)的最佳性能模型及相應(yīng)的內(nèi)存要求和運(yùn)算。DS-CNN 架構(gòu)提供最高的精度,而且需要的內(nèi)存和計(jì)算資源也低得多。
最佳神經(jīng)網(wǎng)絡(luò)模型中內(nèi)存與運(yùn)算/推理的關(guān)系
KWS 應(yīng)用部署在基于 Cortex-M7 的 STM32F746G-DISCO 開(kāi)發(fā)板上(如下圖所示),使用包含 8 位權(quán)重和 8 位激活的 DNN 模型,KWS 在運(yùn)行時(shí)每秒執(zhí)行 10 次推理。每次推理(包括內(nèi)存復(fù)制、MFCC 特征提取、DNN 執(zhí)行)花費(fèi)大約 12 毫秒。為了節(jié)省功耗,可讓微控制器在余下時(shí)間處于等待中斷 (WFI) 模式。整個(gè) KWS 應(yīng)用占用大約 70 KB 內(nèi)存,包括大約 66 KB 用于權(quán)重、大約 1 KB 用于激活、大約 2 KB 用于音頻 I/O 和 MFCC 特征。
Cortex-M7 開(kāi)發(fā)板上的 KWS 部署
總而言之,Arm Cortex-M 處理器可以在關(guān)鍵詞識(shí)別應(yīng)用中達(dá)到很高的精度,同時(shí)通過(guò)調(diào)整網(wǎng)絡(luò)架構(gòu)來(lái)限制內(nèi)存和計(jì)算需求。DS-CNN 架構(gòu)提供最高的精度,而且需要的內(nèi)存和計(jì)算資源也低得多。
代碼、模型定義和預(yù)訓(xùn)練模型可從 github.com/ARM-software 獲取。
審核編輯 黃昊宇
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4783瀏覽量
101234 -
語(yǔ)音識(shí)別
+關(guān)注
關(guān)注
38文章
1745瀏覽量
112960 -
Cortex-M
+關(guān)注
關(guān)注
2文章
229瀏覽量
29851
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
請(qǐng)問(wèn)ADS1263能做到多高精度?實(shí)現(xiàn)高精度應(yīng)該注意什么?
基于IMX8MM處理器Cortex-A核和Cortex-M核的RPMsg通信方案
![基于IMX8MM<b class='flag-5'>處理器</b><b class='flag-5'>Cortex</b>-A核和<b class='flag-5'>Cortex-M</b>核的RPMsg通信<b class='flag-5'>方案</b>](https://file1.elecfans.com/web3/M00/01/4B/wKgZO2dSXd2ACKs1AACEx8PM7BE814.png)
NRK3502系列芯片 | 制氧機(jī)離線語(yǔ)音識(shí)別方案
![NRK3502系列芯片 | 制氧機(jī)離線<b class='flag-5'>語(yǔ)音</b><b class='flag-5'>識(shí)別</b><b class='flag-5'>方案</b>](https://file.elecfans.com/web2/M00/42/BC/pYYBAGJ6JAOAWhY7AAAjPnDlpp8975.jpg)
如何使用Ozone分析Cortex-M異常
![如何使用Ozone分析<b class='flag-5'>Cortex-M</b>異常](https://file1.elecfans.com/web3/M00/00/6B/wKgZO2dJMeaAOlBPAAA3QyBXzLQ283.png)
離線語(yǔ)音識(shí)別芯片,讓您的產(chǎn)品“聽(tīng)懂會(huì)說(shuō)”
![離線<b class='flag-5'>語(yǔ)音</b><b class='flag-5'>識(shí)別</b>芯片,讓您的產(chǎn)品“聽(tīng)懂會(huì)說(shuō)”](https://file.elecfans.com/web2/M00/42/BC/pYYBAGJ6JAOAWhY7AAAjPnDlpp8975.jpg)
利用Sitara AM57x處理器上的處理器SDK實(shí)現(xiàn)工業(yè)機(jī)器視覺(jué)的2D物體識(shí)別
![利用Sitara AM57x<b class='flag-5'>處理器</b><b class='flag-5'>上</b>的<b class='flag-5'>處理器</b>SDK<b class='flag-5'>實(shí)現(xiàn)</b>工業(yè)機(jī)器視覺(jué)的2D物體<b class='flag-5'>識(shí)別</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
物聯(lián)網(wǎng)系統(tǒng)中高精度RTK定位方案的實(shí)現(xiàn)_高精度定位模塊
![物聯(lián)網(wǎng)系統(tǒng)中<b class='flag-5'>高精度</b>RTK定位<b class='flag-5'>方案</b>的<b class='flag-5'>實(shí)現(xiàn)</b>_<b class='flag-5'>高精度</b>定位模塊](https://file1.elecfans.com//web2/M00/09/0D/wKgaomb1LxmAI2h_AAMmYqoh__w429.jpg)
如何在MSP430?上實(shí)現(xiàn)內(nèi)置振蕩器的高精度定時(shí)器
![如何在MSP430?<b class='flag-5'>上</b><b class='flag-5'>實(shí)現(xiàn)</b>內(nèi)置振蕩<b class='flag-5'>器</b>的<b class='flag-5'>高精度</b>定時(shí)<b class='flag-5'>器</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
嵌入式微處理器有哪些類型 嵌入式微處理器有哪些產(chǎn)品
高精度電流采集探頭:精準(zhǔn)測(cè)量電流的關(guān)鍵工具
![<b class='flag-5'>高精度</b>電流采集探頭:精準(zhǔn)測(cè)量電流的<b class='flag-5'>關(guān)鍵</b>工具](https://file1.elecfans.com//web2/M00/C8/7B/wKgZomYckRyAP-gUAABXTTXeV5Y01.jpeg)
瑞薩推出基于Arm Cortex-M23處理器的RA0微控制器(MCU)系列
![瑞薩推出基于Arm <b class='flag-5'>Cortex-M</b>23<b class='flag-5'>處理器</b>的RA0微控制<b class='flag-5'>器</b>(MCU)系列](https://file1.elecfans.com/web2/M00/C8/66/wKgZomYbO9iALVcsAAAU9ePae20587.jpg)
Cortex-M0+內(nèi)核介紹
![<b class='flag-5'>Cortex-M</b>0+內(nèi)核介紹](https://file1.elecfans.com/web2/M00/C5/E0/wKgZomYDcjOAPZnbAAA9-SMYgCY289.png)
瑞薩電子宣布推出基于Arm Cortex-M23處理器的RA2A2微控制器產(chǎn)品群
![瑞薩電子宣布推出基于Arm <b class='flag-5'>Cortex-M</b>23<b class='flag-5'>處理器</b>的RA2A2微控制<b class='flag-5'>器</b>產(chǎn)品群](https://file1.elecfans.com/web2/M00/C6/4C/wKgaomX88-qAcIxdAAAULag7VwQ111.jpg)
業(yè)界首款基于Arm Cortex-M85處理器的MCU
![業(yè)界首款基于Arm <b class='flag-5'>Cortex-M</b>85<b class='flag-5'>處理器</b>的MCU](https://file1.elecfans.com/web2/M00/C3/99/wKgaomXmuO6ATAinAAAgk7MA8Kg950.png)
Cortex-M85內(nèi)核單片機(jī)如何快速上手
![<b class='flag-5'>Cortex-M</b>85內(nèi)核單片機(jī)如何快速上手](https://file1.elecfans.com/web2/M00/C2/04/wKgZomXf4AyAfL6sAAAXQ1-G9BE033.png)
評(píng)論