《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 業(yè)界動態(tài) > 如何在 Cortex-M 處理器上實現(xiàn)高精度關(guān)鍵詞識別

如何在 Cortex-M 處理器上實現(xiàn)高精度關(guān)鍵詞識別

2018-01-29

1.png

  我們可以對神經(jīng)網(wǎng)絡(luò)架構(gòu)進行優(yōu)化,使之適配微控制器的內(nèi)存和計算限制范圍,并且不會影響精度,。我們將在本文中解釋和探討深度可分離卷積神經(jīng)網(wǎng)絡(luò)在 Cortex-M 處理器上實現(xiàn)關(guān)鍵詞識別的潛力,。

  關(guān)鍵詞識別 (KWS) 對于在智能設(shè)備上實現(xiàn)基于語音的用戶交互十分關(guān)鍵,需要實時響應(yīng)和高精度,,才能確保良好的用戶體驗。最近,神經(jīng)網(wǎng)絡(luò)已經(jīng)成為 KWS 架構(gòu)的熱門選擇,,因為與傳統(tǒng)的語音處理算法相比,神經(jīng)網(wǎng)絡(luò)的精度更勝一籌,。

2.png

  關(guān)鍵詞識別神經(jīng)網(wǎng)絡(luò)管道

  由于要保持“永遠在線”,,KWS 應(yīng)用的功耗預(yù)算受到很大限制,。雖然 KWS 應(yīng)用也可在專用 DSP 或高性能 CPU 上運行,但更適合在 Arm Cortex-M 微控制器上運行,,有助于最大限度地降低成本,,Arm Cortex-M 微控制器經(jīng)常在物聯(lián)網(wǎng)邊緣用于處理其他任務(wù)。

  但是,,要在基于 Cortex-M 的微控制器上部署基于神經(jīng)網(wǎng)絡(luò)的 KWS,,我們面臨著以下挑戰(zhàn):

  1.有限的內(nèi)存空間

  典型的 Cortex-M 系統(tǒng)最多提供幾百 KB 的可用內(nèi)存。這意味著,,整個神經(jīng)網(wǎng)絡(luò)模型,,包括輸入/輸出、權(quán)重和激活,,都必須在這個很小的內(nèi)存范圍內(nèi)運行,。

  2.有限的計算資源

  由于 KWS 要保持永遠在線,這種實時性要求限制了每次神經(jīng)網(wǎng)絡(luò)推理的總運算數(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 的一大主要缺陷是無法為語音功能中的局域關(guān)聯(lián)性,、時域關(guān)聯(lián)性,、頻域關(guān)聯(lián)性建模。CNN 則可將輸入時域和頻域特征當(dāng)作圖像處理,,并且在上面執(zhí)行 2D 卷積運算,,從而發(fā)現(xiàn)這種關(guān)聯(lián)性。

  ·循環(huán)神經(jīng)網(wǎng)絡(luò) (RNN)

  RNN 在很多序列建模任務(wù)中都展現(xiàn)出了出色的性能,,特別是在語音識別,、語言建模和翻譯中。RNN 不僅能夠發(fā)現(xiàn)輸入信號之間的時域關(guān)系,,還能使用“門控”機制來捕捉長時依賴關(guān)系,。

  ·卷積循環(huán)神經(jīng)網(wǎng)絡(luò) (CRNN)

  卷積循環(huán)神經(jīng)網(wǎng)絡(luò)是 CNN 和 RNN 的混合,可發(fā)現(xiàn)局部時間/空間關(guān)聯(lián)性,。CRNN 模型從卷積層開始,,然后是 RNN,對信號進行編碼,,接下來是密集全連接層,。

  ·深度可分離卷積神經(jīng)網(wǎng)絡(luò) (DS-CNN)

  最近,深度可分離卷積神經(jīng)網(wǎng)絡(luò)被推薦為標(biāo)準(zhǔn) 3D 卷積運算的高效替代方案,,并已用于實現(xiàn)計算機視覺的緊湊網(wǎng)絡(luò)架構(gòu),。

  DS-CNN 首先使用獨立的 2D 濾波,對輸入特征圖中的每個通道進行卷積計算,,然后使用點態(tài)卷積(即 1x1),,合并縱深維度中的輸出,。通過將標(biāo)準(zhǔn) 3D 卷積分解為 2D和后續(xù)的 1D,參數(shù)和運算的數(shù)量得以減少,,從而使得更深和更寬的架構(gòu)成為可能,,甚至在資源受限的微控制器器件中也能運行。

  在 Cortex-M 處理器上運行關(guān)鍵詞識別時,,內(nèi)存占用和執(zhí)行時間是兩個最重要因素,在設(shè)計和優(yōu)化用于該用途的神經(jīng)網(wǎng)絡(luò)時,,應(yīng)該考慮到這兩大因素,。以下所示的神經(jīng)網(wǎng)絡(luò)的三組限制分別針對小型、中型和大型 Cortex-M 系統(tǒng),,基于典型的 Cortex-M 系統(tǒng)配置,。

3.png

  KWS 模型的神經(jīng)網(wǎng)絡(luò)類別 (NN) 類別,假定每秒 10 次推理和 8 位權(quán)重/激活

  要調(diào)節(jié)模型,,使之不超出微控制器的內(nèi)存和計算限制范圍,,必須執(zhí)行超參數(shù)搜索。下表顯示了神經(jīng)網(wǎng)絡(luò)架構(gòu)及必須優(yōu)化的相應(yīng)超參數(shù),。

4.png

  神經(jīng)網(wǎng)絡(luò)超參數(shù)搜索空間

  首先執(zhí)行特征提取和神經(jīng)網(wǎng)絡(luò)模型超參數(shù)的窮舉搜索,,然后執(zhí)行手動選擇以縮小搜索空間,這兩者反復(fù)執(zhí)行,。下圖總結(jié)了適用于每種神經(jīng)網(wǎng)絡(luò)架構(gòu)的最佳性能模型及相應(yīng)的內(nèi)存要求和運算,。DS-CNN 架構(gòu)提供最高的精度,而且需要的內(nèi)存和計算資源也低得多,。

5.png

  最佳神經(jīng)網(wǎng)絡(luò)模型中內(nèi)存與運算/推理的關(guān)系

  KWS 應(yīng)用部署在基于 Cortex-M7的 STM32F746G-DISCO 開發(fā)板上(如下圖所示),,使用包含 8 位權(quán)重和 8 位激活的 DNN 模型,KWS 在運行時每秒執(zhí)行 10 次推理,。每次推理(包括內(nèi)存復(fù)制,、MFCC 特征提取、DNN 執(zhí)行)花費大約 12 毫秒,。為了節(jié)省功耗,,可讓微控制器在余下時間處于等待中斷 (WFI) 模式。整個 KWS 應(yīng)用占用大約 70 KB 內(nèi)存,,包括大約 66 KB 用于權(quán)重,、大約 1 KB 用于激活、大約 2 KB 用于音頻 I/O 和 MFCC 特征,。

6.png

  Cortex-M7 開發(fā)板上的 KWS 部署

  總而言之,,Arm Cortex-M 處理器可以在關(guān)鍵詞識別應(yīng)用中達到很高的精度,同時通過調(diào)整網(wǎng)絡(luò)架構(gòu)來限制內(nèi)存和計算需求,。DS-CNN 架構(gòu)提供最高的精度,,而且需要的內(nèi)存和計算資源也低得多,。


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點,。轉(zhuǎn)載的所有的文章、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者。如涉及作品內(nèi)容,、版權(quán)和其它問題,,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,,避免給雙方造成不必要的經(jīng)濟損失,。聯(lián)系電話:010-82306118;郵箱:[email protected],。