Como implementar reconhecimento de palavras-chave de alta precisão no processador Cortex-M

Podemos otimizar a arquitetura da rede neural para ajustar a memória e os limites computacionais do microcontrolador sem comprometer a precisão. Explicaremos e discutiremos neste artigo a profundidade das redes neurais convolutivas separáveis ​​no processador Cortex-M Na realização do potencial de reconhecimento de palavras-chave.

O reconhecimento de palavras-chave (KWS) é fundamental para permitir a interação do usuário baseada em voz em dispositivos inteligentes e exige capacidade de resposta em tempo real e alta precisão para garantir uma boa experiência do usuário. Recentemente, as redes neurais tornaram-se uma escolha popular para arquiteturas KWS porque, ao contrário do tradicional Em comparação com os algoritmos de processamento de fala, a precisão das redes neurais é superior.

Palavras-chave identificação tubulação da rede neural

As aplicações KWS têm um orçamento de energia muito limitado devido ao seu "sempre ligado". Embora os aplicativos KWS também possam ser executados em DSPs dedicados ou CPUs de alto desempenho, eles são mais adequados para operação em microcontroladores Arm Cortex-M e são úteis Para minimizar o custo, os microcontroladores Arm Cortex-M são freqüentemente usados ​​na borda da Internet das coisas para outras tarefas.

No entanto, para implantar uma rede neural baseada no KWS em um microcontrolador baseado em Cortex-M, enfrentamos os seguintes desafios: 1. Espaço de memória limitado Um sistema Cortex-M típico oferece até algumas centenas de kilobytes de memória livre, o que significa Todo o modelo de rede neural, incluindo entradas / saídas, pesos e ativações, deve operar dentro deste pequeno intervalo de memória. 2. Recursos de computação limitados Como o KWS está sempre on-line, esse requisito em tempo real limita o número de neurônios O seguinte é uma arquitetura de rede neural típica para inferência de KWS: • Rede Neural Profunda (DNN) DNN é uma rede neural padrão feedforward composta por camadas totalmente conectadas e camadas ativas não-lineares empilhadas • Volume Uma das principais desvantagens do KWS baseado na DNN da CNN é a sua incapacidade de modelar correlações de domínio local, temporal e de freqüência nas funções de fala. A CNN modela os recursos de entrada de freqüência temporal e frequência Como um processamento de imagem e executar operações de convolução 2D nele para encontrar esta correlação • RNN Circular Neural Network (RNN) mostrou excelente desempenho em muitas tarefas de modelagem de seqüência Em particular, no reconhecimento de fala, modelagem de linguagem e tradução, as RNNs podem não apenas detectar a relação tempo-domínio entre os sinais de entrada, mas também capturar as dependências de longo prazo usando o mecanismo "fechado" • Redes Neurais Recorrentes Convolucionais CRNN) As redes neurais recorrentes convolucionais são uma mistura de CNNs e RNNs que encontram correlações locais tempo / espaço. O modelo CRNN começa com uma camada convolucional seguida de uma RNN que codifica o sinal seguido de uma camada densamente conectada. • Profundidade Redes Neurais Convolucionais Destacáveis ​​(DS-CNNs) Recentemente, as redes neurais convolutivas separáveis ​​profundas foram propostas como alternativas eficientes às operações convencionais convencionais em 3D e foram usadas para implementar uma arquitetura de rede compacta para visão por computador. O DS-CNN utilizou pela primeira vez Filtragem 2D independente para convolver cada canal no mapa de recursos de entrada e, em seguida, mesclar as saídas na dimensão da profundidade usando uma convolução pontual (ou seja, 1x1) Ao decompor a convolução 3D padrão em 2D e subseqüentes 1D , O número de parâmetros e operações é reduzido, possibilitando arquiteturas mais profundas e amplas, mesmo em dispositivos de microcontroladores com recursos limitados. Deslocamento em processadores Cortex-M Quando o reconhecimento de palavras é usado, o uso de memória eo tempo de execução são os dois fatores mais importantes que devem ser levados em consideração ao projetar e otimizar uma rede neural para esse fim. Os três conjuntos de limites para as redes neurais mostradas abaixo são pequenos Sistemas médios e grandes Cortex-M, com base em uma configuração típica do sistema Cortex-M.

A categoria da categoria de rede neural (NN) do modelo KWS, assumindo 10 inferências e 8 pesos / ativações por segundo

Para ajustar o modelo para que ele não exceda a memória do microcontrolador e limites computacionais, você deve realizar uma pesquisa hiperparamétrica. A tabela a seguir mostra a arquitetura da rede neural e os hiperparâmetros correspondentes que devem ser otimizados.

Espaço de pesquisa hiperparamétrico da rede neural

Primeiro, realize uma busca exaustiva da extração de recursos e dos hiperparâmetros do modelo de rede neural e, em seguida, execute uma seleção manual para restringir o espaço de busca, os quais são realizados repetidamente. A figura a seguir resume o melhor modelo de desempenho e a memória correspondente para cada arquitetura de rede neural Requisitos e cálculos. A arquitetura DS-CNN fornece o mais alto nível de precisão e requer muito menos recursos de memória e computação.

Relação entre Memória e Computação / Raciocínio no Modelo Óptimo da Rede Neural

O aplicativo KWS é implantado no quadro de desenvolvimento STM32F746G-DISCO baseado em Cortex-M7 (mostrado abaixo), usando um modelo DNN com peso de 8 bits e ativação de 8 bits, e o KWS executa 10 injeções por segundo em tempo de execução. Cada inferência ( Incluindo cópia de memória, extração de recursos MFCC, execução DNN) leva aproximadamente 12 ms. Para economizar energia, o microcontrolador está no modo de espera para interrupção (WFI) pelo resto do tempo. Toda a aplicação KWS consome aproximadamente 70 KB de memória, incluindo aproximadamente 66 KB Cerca de 1 KB para ativação, cerca de 2 KB para recursos de E / S de áudio e MFCC.

Implementação do KWS no quadro de desenvolvimento do Cortex-M7

Em suma, o processador Arm Cortex-M atinge alta precisão em aplicações de reconhecimento de palavras-chave, limitando a memória e os requisitos computacionais, ajustando a arquitetura da rede. A arquitetura DS-CNN fornece o mais alto nível de precisão e memória e recursos computacionais necessários Muito baixo. Códigos, definições de modelo e modelos de pré-treinamento estão disponíveis no github.com/ARM-software Nosso novo site de desenvolvimento de aprendizado de máquinas fornece uma galeria de recursos única, informações detalhadas sobre produtos e tutoriais para ajudar a maquinas de contador na borda da rede Aprenda os desafios que enfrentam Este blog é baseado no white paper, "Olá Edge: Keyword Spotting on Microcontrollers", originalmente publicado no site da Biblioteca da Universidade de Cornell. Para baixar o braço Para obter uma cópia do white paper, clique no link abaixo: 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

2016 GoodChinaBrand | ICP: 12011751 | China Exports