Comment implémenter la reconnaissance de mot clé de haute précision sur le processeur Cortex-M

Nous pouvons optimiser l'architecture du réseau neuronal pour adapter la mémoire et les limites de calcul du microcontrôleur sans compromettre la précision Nous allons expliquer et discuter dans cet article la profondeur des réseaux de neurones convolutionnels séparables dans le processeur Cortex-M Sur la réalisation du potentiel de reconnaissance des mots-clés.

La reconnaissance des mots clés (KWS) est essentielle pour permettre l'interaction vocale des utilisateurs sur les appareils intelligents et nécessite une réactivité en temps réel et une grande précision afin d'assurer une bonne expérience utilisateur.Récemment, les réseaux de neurones sont devenus un choix populaire pour les architectures KWS. Comparé aux algorithmes de traitement de la parole, la précision des réseaux de neurones est supérieure.

Mots-clés identification réseau neuronal pipeline

Les applications KWS ont un budget de puissance très limité grâce à leur «toujours actif». Bien que les applications KWS puissent également fonctionner sur des DSP dédiés ou des CPU haute performance, elles sont plus adaptées aux microcontrôleurs Arm Cortex-M et sont utiles Afin de minimiser les coûts, les microcontrôleurs Arm Cortex-M sont souvent utilisés à la périphérie de l'Internet des objets pour d'autres tâches.

Cependant, pour déployer sur un microcontrôleur basé sur le réseau de neurones à base de Cortex-M-du KWS, nous sommes confrontés aux défis suivants: 1. espace mémoire limité typique du système Cortex-M offre jusqu'à quelques centaines de Ko de mémoire disponible, cela signifie. , l'ensemble du modèle de réseau de neurones, y compris l'entrée / sortie, le poids et l'activation, doit fonctionner dans cette petite plage de mémoire. 2. les ressources informatiques limitées en raison du KWS pour maintenir en permanence, les besoins en temps réel qui limitent chaque nerf le nombre total de fonctionnement du réseau est le raisonnement suivant applique à une architecture de réseau de neurones typique inférence KWS: • la profondeur du réseau de neurones (DNN) DNN type feedforward de réseau neuronal, connecté à la pile complète des couches de la couche active et le volume non linéaire •. produit réseau neuronal (CNN) basé sur l'un des principaux défauts de la KWS DNN est impossible pour l'association locale de la voix, la corrélation dans le domaine temporel, le modèle de corrélation de fréquence. CNN Puis temps d'entrée de domaine et les caractéristiques de domaine de fréquence en tant que traitement d'image, et effectue une opération de convolution 2D dans ce qui précède, afin de trouver cette corrélation. • réseau neuronal récurrent (RNN) séquence RNN dans de nombreuses tâches de modélisation sont montrant une excellente L'énergie, en particulier dans la reconnaissance vocale, la modélisation du langage et de la traduction. RNN non seulement en mesure de trouver la relation temporelle entre le signal d'entrée, peut également utiliser les mécanismes « gating » pour capturer dépendent de la durée de la relation. • convolution réseau de neurones récurrents ( CRNN) est un réseau neuronal convolutif hybride cycle de CNN et RNN se trouve dans une corrélation temporelle / spatiale locale. couche de modèle de convolution à partir CRNN, puis RNN, coder le signal, suivie d'une couche dense entièrement connecté. • profondeur réseau de neurones de convolution séparable (DS-CNN) récemment, la profondeur du réseau de neurones de convolution séparable est recommandé comme des alternatives efficaces pour le fonctionnement standard de convolution 3D, et a été utilisé l'architecture réseau compacte pour la vision par ordinateur. DS-CNN première utilisation filtre 2D indépendant, l'entrée de chaque fonction dans le calcul de convolution de canal figure, puis utiliser la convolution de point par point (par exemple 1x1-), délivre en sortie la dimension de profondeur combinée par convolution standard 2D et 3D est décomposée en 1D subséquente , et le calcul du nombre de paramètres est réduit, de sorte que plus profonde et plus large possible l'architecture, même dans le microcontrôleur pour exécuter le périphérique disposant de ressources limitées. ruissellement sur les processeurs Cortex-M Lorsque la reconnaissance des mots, l'utilisation de la mémoire et le temps d'exécution sont les deux facteurs les plus importants dans la conception et l'optimisation des réseaux de neurones à cet effet, vous devez tenir compte de ces deux facteurs limitent le réseau de neurones des trois groupes indiqués ci-dessous pour les petits , moyen et grand système Cortex-M, la configuration d'un Cortex-M à base de système typique.

La catégorie Catégorie de réseau neuronal (NN) du modèle KWS, en supposant 10 inférences et 8 poids / activations par seconde

Pour ajuster le modèle, afin de ne pas dépasser les limites de la mémoire et le microcontrôleur de calcul, une recherche doit être effectuée sur les paramètres. Le tableau suivant montre l'architecture de réseau neuronal et les paramètres correspondants doit être optimisée sur.

Espace de recherche hyperparamétrique du réseau neuronal

Tout d'abord, effectuer une extraction de caractéristiques de recherche exhaustive et le modèle de réseau de neurones hyper-paramètres, puis effectuez une sélection manuelle pour réduire l'espace de recherche, à la fois exécuté à plusieurs reprises. La figure suivante résume disponible pour chaque architecture de réseau de neurones pour le modèle optimal de performance et la mémoire correspondante Exigences et calculs L'architecture DS-CNN fournit le plus haut niveau de précision et nécessite beaucoup moins de mémoire et de ressources de calcul.

Relation entre mémoire et calcul / raisonnement dans un modèle de réseau neuronal optimal

KWS applications Cortex-M7 déployées dans la carte de développement STM32F746G-DISCO (comme indiqué ci-dessous) sur la base, contenant le modèle DNN 8 en poids et 8 activation, KWS exécutés 10 fois par seconde pendant le fonctionnement du raisonnement. Par un raisonnement ( y compris la copie de mémoire, MFCC disposent extraction, d'effectuer le DNN) prend environ 12 millisecondes afin d'économiser de l'énergie, ce qui permet au reste du microcontrôleur est en attente pour un mode d'interruption (WFI). toute demande KWS utilise environ 70 Ko de mémoire, notamment d'environ 66 KB Environ 1 Ko pour l'activation, environ 2 Ko pour les fonctions d'E / S audio et MFCC.

Déploiement de KWS sur le panneau de développement Cortex-M7

En résumé, le bras processeur Cortex-M peut obtenir une grande précision dans les applications de reconnaissance de mots-clés, alors que la mémoire et les exigences de calcul afin de limiter adapter l'architecture réseau. L'architecture DS-CNN offre la plus grande précision, et les ressources mémoire et de calcul nécessaires sont également beaucoup plus faible code., définition du modèle et un modèle de pré-formation peuvent être obtenus auprès github.com/ARM-software. notre nouveau site développeur machine apprentissage fournit une bibliothèque de ressources à guichet unique, des informations détaillées sur les produits et tutoriels pour aider à faire face à la machine de bord de réseau des difficultés d'apprentissage rencontrées par le livre blanc sur ce blog "bord de réseau: la reconnaissance par mot clé sur le microcontrôleur. (Bonjour bord: Spotting mot-clé sur micro-contrôleurs), le livre blanc a été publié dans le site Web de la Bibliothèque de l'Université Cornell à télécharger Arm. une copie du livre blanc, s'il vous plaît cliquer sur le lien ci-dessous. 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