<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 新品快遞 > 如何在Cortex-M處理器上實(shí)現高精度關(guān)鍵詞識別

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

作者: 時(shí)間:2018-01-29 來(lái)源:電子產(chǎn)品世界 收藏

    

image001.jpg

 

本文引用地址:http://dyxdggzs.com/article/201801/375072.htm

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

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

    

image002.jpg

 

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

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

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

  1. 有限的內存空間

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

  2. 有限的計算資源

  由于 KWS 要保持永遠在線(xiàn),這種實(shí)時(shí)性要求限制了每次神經(jīng)網(wǎng)絡(luò )推理的總運算數量。

  以下是適用于 KWS 推理的典型神經(jīng)網(wǎng)絡(luò )架構:

  ? 深度神經(jīng)網(wǎng)絡(luò ) (DNN)

  DNN 是標準的前饋神經(jīng)網(wǎng)絡(luò ),由全連接層和非線(xiàn)性激活層堆疊而成。

  ? 卷積神經(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í)域和頻域特征當作圖像處理,并且在上面執行 2D 卷積運算,從而發(fā)現這種關(guān)聯(lián)性。

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

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

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

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

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

  最近,深度可分離卷積神經(jīng)網(wǎng)絡(luò )被推薦為標準 3D 卷積運算的高效替代方案,并已用于實(shí)現計算機視覺(jué)的緊湊網(wǎng)絡(luò )架構。

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

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

    

image003.jpg

 

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

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

    

image004.jpg

 

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

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

    

image005.jpg

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

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

    

image006.jpg

 

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

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

  代碼、模型定義和預訓練模型可從 github.com/ARM-software 獲取。

  我們全新的機器學(xué)習開(kāi)發(fā)人員網(wǎng)站提供一站式資源庫、詳細產(chǎn)品信息和教程,幫助應對網(wǎng)絡(luò )邊緣的機器學(xué)習所面臨的挑戰。

  本博客基于白皮書(shū)“網(wǎng)絡(luò )邊緣:微控制器上的關(guān)鍵詞識別”(Hello Edge: Keyword Spotting on Microcontrollers),該白皮書(shū)最初發(fā)布在康奈爾大學(xué)圖書(shū)館網(wǎng)站上。要下載 Arm 白皮書(shū)副本,請點(diǎn)擊以下鏈接。

  https://community.arm.com/cfs-file/__key/telligent-evolution-components-attachments/01-2142-00-00-00-01-34-26/Arm_5F00_KeywordSpotting_5F00_Whitepaper.pdf



關(guān)鍵詞: Cortex-M 處理器

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>