TinyML apporte des modèles d'apprentissage en profondeur aux microcontrôleurs
Cet article fait partie de nos revues d'articles de recherche sur l'IAune série d'articles qui explorent les dernières découvertes en matière d'intelligence artificielle.
Les modèles d'apprentissage en profondeur doivent leur succès initial aux gros serveurs avec de grandes quantités. de mémoire et des grappes de GPU. Les promesses de l'apprentissage en profondeur ont donné naissance à toute une industrie de services de cloud computing pour les réseaux de neurones profonds. Par conséquent, les très grands réseaux de neurones fonctionnant sur des ressources cloud pratiquement illimitées sont devenus très populaires, en particulier parmi les entreprises technologiques riches qui peuvent payer la facture.
Mais en même temps, ces dernières années ont également vu une tendance inverse, un effort concerté pour créer des modèles d'apprentissage automatique pour les appareils de pointe . Appelés TinyML ou TinyML, ces modèles conviennent aux appareils qui ont une mémoire et une puissance de traitement limitées, et dans lesquels la connectivité Internet est soit absente, soit limitée.
Le dernier de ces efforts, un travail conjoint d'IBM et le Massachusetts Institute of Technology (MIT), s'attaque au goulot d'étranglement de la mémoire de pointe des réseaux de neurones convolutifs (CNN), une architecture d'apprentissage en profondeur particulièrement critique pour les applications de vision par ordinateur. Détaillé dans un article présenté à la conférence NeurIPS 2021, le modèle s'appelle MCUNetV2 et peut exécuter des CNN sur des microcontrôleurs à faible mémoire et faible consommation.
Pourquoi TinyML ?
Alors que le deep learning dans le cloud a connu un énorme succès, il n'est pas applicable dans toutes les situations. De nombreuses applications nécessitent une inférence sur l'appareil. Par exemple, dans certains contextes, tels que les missions de sauvetage par drone, la connectivité Internet n'est pas garantie. Dans d'autres domaines, tels que les soins de santé, les exigences et réglementations en matière de confidentialité rendent très difficile l'envoi de données vers le cloud pour traitement. Et le retard causé par l'aller-retour vers le cloud est prohibitif pour les applications qui nécessitent une inférence ML en temps réel.
Toutes ces nécessités ont rendu le ML sur l'appareil à la fois scientifiquement et commercialement attrayant. Votre iPhone exécute maintenant la reconnaissance faciale et la reconnaissance vocale sur l'appareil. Votre téléphone Android peut exécuter la traduction sur l'appareil. Votre Apple Watch utilise l'apprentissage automatique pour détecter les mouvements et les schémas ECG.
Ces modèles ML sur l'appareil ont été en partie rendus possibles par les progrès des techniques utilisées pour rendre les réseaux de neurones compacts et plus efficaces en termes de calcul et de mémoire. Mais ils ont également été rendus possibles grâce aux progrès du matériel. Nos smartphones et appareils portables offrent désormais plus de puissance de calcul qu'un serveur il y a 30 ans. Certains ont même des coprocesseurs spécialisés pour l'inférence ML. dans nos poches et sur nos poignets.
Les microcontrôleurs sont bon marché, avec des prix de vente moyens atteignant moins de 0,50 $, et ils sont partout, intégrés dans les appareils grand public et industriels. En même temps, ils ne disposent pas des ressources trouvées dans les appareils informatiques génériques. La plupart d'entre eux n'ont pas de système d'exploitation. Ils ont un petit processeur, sont limités à quelques centaines de kilo-octets de mémoire basse consommation (SRAM) et à quelques mégaoctets de stockage, et ne disposent d'aucun équipement réseau. Ils n'ont généralement pas de source d'électricité secteur et doivent fonctionner avec des piles et des piles pendant des années. Par conséquent, l'installation de modèles d'apprentissage en profondeur sur les microcontrôleurs peut ouvrir la voie à de nombreuses applications.
Goulets d'étranglement de la mémoire dans les réseaux de neurones convolutifs
Architecture du réseau de neurones convolutifs (CNN)
De nombreux efforts ont été déployés pour réduire les réseaux neuronaux profonds à une taille adaptée aux dispositifs informatiques à petite mémoire. Cependant, la plupart de ces efforts se concentrent sur la réduction du nombre de paramètres dans le modèle d'apprentissage en profondeur. Par exemple, "pruning", une classe populaire d'algorithmes d'optimisation, comprime les réseaux de neurones en supprimant les paramètres qui ne sont pas significatifs dans la sortie du modèle.
Le problème avec les méthodes d'élagage est qu'elles ne résoudre le goulot d'étranglement de la mémoire des réseaux de neurones. Les implémentations standard des bibliothèques d'apprentissage en profondeur nécessitent le chargement en mémoire d'une couche réseau complète et de cartes d'activation. Malheureusement, les méthodes d'optimisation classiques n'apportent pas de changements significatifs aux premières couches du réseau, en particulier dans les réseaux de neurones convolutifs. ” problème : Même si le réseau devient plus léger après l'élagage, le périphérique qui l'exécute doit avoir autant de mémoire que la plus grande couche. Par exemple, dans MobileNetV2, un modèle TinyML populaire, les premiers blocs de couche ont un pic de mémoire qui atteint environ 1,4 mégaoctets, tandis que les couches ultérieures ont une très petite empreinte mémoire. Pour exécuter le modèle, un appareil aura besoin d'autant de mémoire que le pic du modèle. La plupart des microcontrôleurs n'ayant pas plus de quelques centaines de kilo-octets de mémoire, ils ne peuvent pas exécuter la version standard de MobileNetV2.
MobileNetV2 est un réseau de neurones qui a été optimisé pour les appareils périphériques. Mais il a un pic de mémoire d'environ 1,4 mégaoctets, ce qui le rend inaccessible à de nombreux microcontrôleurs.