Maison  >  Article  >  Périphériques technologiques  >  Un petit apprentissage automatique promet d’intégrer l’apprentissage profond dans les microprocesseurs

Un petit apprentissage automatique promet d’intégrer l’apprentissage profond dans les microprocesseurs

WBOY
WBOYavant
2023-04-08 13:51:091616parcourir

Un petit apprentissage automatique promet d’intégrer l’apprentissage profond dans les microprocesseurs

Traducteur | Zhu Xianzhong

Critique | Liang Ce Sun Shujuan

Le succès initial des modèles d'apprentissage en profondeur a été attribué aux grands serveurs dotés de grandes quantités de mémoire et de clusters GPU. La promesse du deep learning a donné naissance à une industrie fournissant des services de cloud computing pour les réseaux neuronaux profonds. En conséquence, les grands réseaux de neurones fonctionnant sur des ressources cloud pratiquement illimitées sont devenus extrêmement populaires, en particulier pour les entreprises technologiques disposant de budgets importants.

Mais en même temps, une autre tendance opposée est également apparue ces dernières années, à savoir la création de modèles d'apprentissage automatique pour les appareils de pointe. Connus sous le nom de Tiny Machine Learning (TinyML), ces modèles fonctionnent sur des appareils dotés d'une mémoire et d'une puissance de traitement limitées, ainsi que d'une connectivité Internet inexistante ou limitée.

Un dernier effort de recherche mené conjointement par IBM et le Massachusetts Institute of Technology (MIT) résout le problème de goulot d'étranglement de la mémoire des réseaux de neurones convolutifs (CNN). Il s’agit d’une architecture d’apprentissage profond particulièrement importante pour les applications de vision par ordinateur. Un modèle appelé McUnETV2, capable d'exécuter des réseaux de neurones convolutifs (CNN) sur des microcontrôleurs à faible mémoire et à faible consommation, est détaillé dans un article présenté lors de la conférence NeurIPS 2021.

1. Pourquoi TinyML (TinyML) ?

Un petit apprentissage automatique promet d’intégrer l’apprentissage profond dans les microprocesseurs

Bien que le cloud deep learning soit très réussi, il ne convient pas à toutes les situations. En fait, de nombreuses applications nécessitent souvent que les tâches d'inférence soient effectuées directement sur le périphérique matériel. Par exemple, dans certains environnements de mission tels que le sauvetage par drone, la connectivité Internet n'est pas garantie. Dans d’autres domaines, tels que les soins de santé, les exigences en matière de confidentialité et les contraintes réglementaires rendent également difficile l’envoi de données vers le cloud pour traitement. Pour les applications qui nécessitent une inférence de langage machine en temps réel, la latence provoquée par le cloud computing aller-retour est encore plus prohibitive.

Toutes les conditions ci-dessus doivent être remplies pour rendre les dispositifs d’apprentissage automatique attractifs sur le plan scientifique et commercial. Par exemple, les téléphones iPhone disposent désormais de nombreuses applications qui exécutent la reconnaissance faciale et la reconnaissance vocale, et les téléphones Android peuvent également exécuter directement un logiciel de traduction. De plus, Apple Watch peut déjà utiliser des algorithmes d'apprentissage automatique pour détecter les mouvements et les modèles ECG (Remarque : ECG est l'abréviation d'électrocardiogramme, également connu sous le nom d'ECG. Il s'agit d'une expérience de test utilisée pour enregistrer les nœuds temporels de la séquence de signaux électriques qui déclenche le rythme cardiaque et l'intensité. En analysant les images ECG, les médecins peuvent mieux diagnostiquer si la fréquence cardiaque est normale et s'il y a des problèmes de fonction cardiaque).

Les modèles ML mentionnés ci-dessus sur ces appareils sont rendus possibles en partie par des avancées technologiques qui permettent aux réseaux de neurones d'être compacts et plus efficaces en termes de calcul et de stockage. Dans le même temps, grâce aux progrès de la technologie matérielle, la mise en œuvre de tels modèles ML dans des environnements mobiles est également devenue possible. Nos smartphones et appareils portables disposent désormais de plus de puissance de calcul que les serveurs hautes performances d'il y a 30 ans, et certains disposent même de coprocesseurs spécialisés pour l'inférence du langage machine.

TinyML va encore plus loin dans l'IA de pointe, en permettant d'exécuter des modèles d'apprentissage profond sur des microcontrôleurs (MCU), même si les microcontrôleurs sont plus limités en ressources que les petits ordinateurs que nous transportons dans nos poches et à nos poignets.

Les microcontrôleurs, en revanche, sont peu coûteux, se vendant à moins de 0,50 $ en moyenne, et ils sont presque partout et peuvent être intégrés dans tout, des industries grand public aux équipements industriels. Dans le même temps, ils ne disposent pas des ressources que l’on trouve dans les appareils informatiques à usage général, et la plupart ne disposent pas de système d’exploitation. Le processeur du microcontrôleur est petit, avec seulement quelques centaines de kilo-octets de mémoire basse consommation (SRAM) et quelques mégaoctets de stockage, et ne dispose d'aucun équipement réseau. La plupart d’entre eux ne disposent pas d’alimentation secteur et doivent utiliser depuis de nombreuses années des piles bouton. Par conséquent, l’installation de modèles d’apprentissage profond sur les MCU peut ouvrir de nouvelles voies pour de nombreuses applications.

2. Goulot d'étranglement de la mémoire dans les réseaux de neurones convolutifs

Un petit apprentissage automatique promet d’intégrer l’apprentissage profond dans les microprocesseurs

Architecture des réseaux de neurones convolutifs (CNN)

Plusieurs efforts ont été déployés pour réduire les réseaux de neurones profonds à une taille adaptée aux petits appareils informatiques à mémoire. Cependant, la plupart de ces efforts se concentrent sur la réduction du nombre de paramètres dans les modèles d’apprentissage profond. Par exemple, le « élagage » est un algorithme d'optimisation populaire qui réduit les réseaux de neurones en supprimant les paramètres sans importance de la sortie du modèle.

Le problème avec les méthodes d'élagage est qu'elles ne peuvent pas résoudre le goulot d'étranglement de la mémoire des réseaux de neurones. Les implémentations standard de bibliothèques d'apprentissage profond nécessitent que l'intégralité du mappage de la couche réseau et de la couche d'activation soit chargée en mémoire. Malheureusement, les méthodes d'optimisation classiques n'apportent aucun changement significatif aux premières couches informatiques des réseaux de neurones, en particulier dans les réseaux de neurones convolutifs.

Cela provoque un déséquilibre dans la taille des différentes couches du réseau et conduit au problème du « pic de mémoire » : même si le réseau devient plus léger après l'élagage, l'appareil qui l'exécute doit avoir la même mémoire que la plus grande couche. Par exemple, dans le modèle populaire TinyML MobileNetV2, le calcul des premières couches atteint un pic de mémoire d'environ 1,4 Mo, tandis que les couches ultérieures ont une très faible empreinte mémoire. Pour exécuter le modèle, l'appareil aura besoin de la même quantité de mémoire que les pics du modèle. Étant donné que la plupart des MCU ne disposent pas de plus de quelques centaines de Ko de mémoire, ils ne peuvent pas exécuter de versions standard de MobileNetV2.

Un petit apprentissage automatique promet d’intégrer l’apprentissage profond dans les microprocesseurs

MobileNetV2 est un réseau neuronal optimisé pour les appareils de périphérie, mais sa mémoire maximale est d'environ 1,4 Mo, ce qui le rend inaccessible à de nombreux microcontrôleurs.

Une autre façon d'optimiser un réseau de neurones consiste à réduire la taille d'entrée du modèle. Les images d'entrée plus petites nécessitent des CNN plus petits pour effectuer des tâches de prédiction. Cependant, réduire la taille des entrées présente ses propres défis et n'est pas efficace pour toutes les tâches de vision par ordinateur. Par exemple, les modèles d’apprentissage profond de détection d’objets sont très sensibles à la taille de l’image et leurs performances se dégradent rapidement lorsque la résolution d’entrée diminue.

Un petit apprentissage automatique promet d’intégrer l’apprentissage profond dans les microprocesseurs

Il est facile de voir sur la figure ci-dessus que le modèle ML de classification d'images (ligne orange) est plus facile à réduire la résolution que le modèle de détection de cible (ligne bleue).

3. Inférence basée sur le patch MCUNetV2

Pour résoudre le problème de goulot d'étranglement de la mémoire des réseaux de neurones convolutifs, les chercheurs ont créé une architecture d'apprentissage en profondeur appelée MCUNetV2 qui peut ajuster sa bande passante mémoire à la limite du microcontrôleur. MCUNetV2 a été développé sur la base des résultats précédents du même groupe de recherche scientifique, qui ont été acceptés et soumis avec succès à la conférence NeurIPS 2020.

L'idée principale derrière MCUNetV2 est « l'inférence basée sur les correctifs », une technique qui réduit l'empreinte mémoire d'un CNN sans réduire sa précision. Au lieu de charger une couche entière de réseau neuronal en mémoire, MCUNetV2 charge et calcule des régions plus petites ou « patchs » de la couche à tout moment. Il parcourt ensuite la couche bloc par bloc et combine ces valeurs jusqu'à ce qu'il calcule la partie d'activation de la couche entière.

Un petit apprentissage automatique promet d’intégrer l’apprentissage profond dans les microprocesseurs

Le côté gauche de la figure montre la situation dans laquelle le système d'apprentissage profond classique calcule une couche entière, tandis que le côté droit montre comment MCUNetV2 calcule un patch à la fois, réduisant ainsi les besoins en mémoire pour l'inférence DL.

Étant donné que MCUNetV2 n'a besoin de stocker qu'un seul neurone à la fois, il réduit considérablement les pics de mémoire sans réduire la résolution ou les paramètres du modèle. Les expériences des chercheurs montrent que MCUNetV2 peut réduire le pic de mémoire à un huitième.

Un petit apprentissage automatique promet d’intégrer l’apprentissage profond dans les microprocesseurs

MCUNetV2 peut réduire le pic de mémoire des modèles d'apprentissage profond à un huitième.

L'inférence basée sur les correctifs entraîne également un compromis en matière de surcharge de calcul tout en économisant de la mémoire. Des chercheurs du Massachusetts Institute of Technology (MIT) et d'IBM ont découvert que le calcul global du réseau peut augmenter de 10 à 17 % dans différentes architectures, ce qui ne s'applique évidemment pas aux microcontrôleurs basse consommation.

Afin de surmonter cette limitation, les chercheurs ont redistribué les « champs récepteurs » de différents blocs du réseau neuronal (Remarque : dans CNN, un pixel dans la carte caractéristique de la nième couche correspond au nombre de pixels dans l'image d'entrée. de la première couche, c'est-à-dire qu'il s'agit du champ récepteur de cette couche (appelé « RF »). Dans CNN, le champ récepteur est la zone de l’image qui peut être traitée à tout moment. Des champs récepteurs plus grands nécessitent des patchs plus grands et un chevauchement entre les patchs. Bien entendu, cela entraîne une surcharge de calcul plus élevée. En réduisant le champ de réception dans les blocs initiaux du réseau et en l’élargissant dans les étapes ultérieures, les chercheurs ont pu réduire la charge de calcul de plus des deux tiers.

Un petit apprentissage automatique promet d’intégrer l’apprentissage profond dans les microprocesseurs

La redistribution des champs récepteurs permet de réduire la surcharge de calcul de MCUNetV2 de plus des deux tiers

Enfin, les chercheurs ont observé que le réglage de MCUNetV2 dépend en grande partie de l'architecture du modèle ML, de l'application et de la mémoire et de la capacité de stockage. de l’appareil cible. Pour éviter de régler manuellement les modèles d'apprentissage profond pour chaque appareil et application, les chercheurs ont utilisé la « recherche d'algorithmes neuronaux », un processus qui utilise l'apprentissage automatique pour optimiser automatiquement la structure du réseau neuronal et la planification des inférences.

Les chercheurs ont testé des architectures d'apprentissage profond dans différentes applications sur plusieurs modèles de microcontrôleurs dotés de capacités de mémoire plus petites. Les résultats montrent que MCUNetV2 surpasse les autres technologies TinyML et est capable d'atteindre une plus grande précision dans la classification des images et la détection d'objets avec des besoins en mémoire et une latence plus faibles.

Comme le montre la figure ci-dessous, les chercheurs utilisent MCUNetV2 avec la détection de personnes en temps réel, les mots d'éveil visuels et la détection de visage/masque.

Un petit apprentissage automatique promet d’intégrer l’apprentissage profond dans les microprocesseurs

Note du traducteur : ce qui est montré ici n'est qu'une capture d'écran de la vidéo utilisant MCUNetV2 affichée sur le site Web youtube.com.

4. Applications TinyML

Dans un article de 2018 intitulé Pourquoi l'avenir de l'apprentissage automatique est minuscule, l'ingénieur logiciel Pete Warden pense que l'apprentissage automatique sur MCU est extrêmement important. "Je pense que l'apprentissage automatique peut fonctionner sur de petites puces à faible consommation, et cette combinaison résoudra un grand nombre de problèmes que nous ne pouvons pas résoudre actuellement", a écrit Worden

Grâce aux progrès des capteurs et des processeurs, nous obtenons des données. Les capacités du monde entier sont grandement améliorées. Mais notre capacité à traiter et à utiliser ces données via des modèles d'apprentissage automatique est limitée par la connectivité réseau et l'accès aux serveurs cloud. Comme l'a dit Worden, les processeurs et les capteurs sont plus économes en énergie que les émetteurs radio comme le Bluetooth et le WiFi.

Worden a écrit : "Le processus physique de déplacement des données semble nécessiter beaucoup d'énergie. Il semble que ce soit une règle selon laquelle l'énergie requise pour une opération est proportionnelle à la distance d'envoi des bits. L'envoi du processeur et du capteur nécessite uniquement quelques millimètres pour envoyer le nombre de bits et c'est bon marché, alors que la transmission radio nécessite plusieurs mètres ou plus pour envoyer quelques bits de données, et c'est cher... Il est clair qu'il y a un énorme marché potentiel qui attend d'être ouvert avec La bonne technologie. Nous avons besoin d'une technologie capable de fonctionner avec des microcontrôleurs bon marché, de consommer très peu d'énergie, de s'appuyer sur le calcul plutôt que sur la radio et de transformer toutes nos données de capteurs gaspillées en données utiles. C'est ici que se situe l'apprentissage automatique, et en particulier. l'apprentissage profond, comblera le vide. "

Grâce aux progrès de MCUNetV2 et TinyML dans d'autres domaines également, la prédiction de Worden deviendra bientôt une réalité. Dans les années à venir, nous pouvons nous attendre à ce que TinyML se retrouve dans des milliards de microcontrôleurs dans les maisons, les bureaux, les hôpitaux, les usines, les fermes, les routes, les ponts et bien plus encore, permettant potentiellement des applications qui n'étaient tout simplement pas possibles auparavant.

Lien original : https://thenextweb.com/news/tinyml-deep-learning-microcontrollers-syndication

Introduction du traducteur

Zhu Xianzhong, rédacteur de la communauté 51CTO, blogueur expert 51CTO, conférencier, professeur d'informatique dans une université de Weifang , Un vétéran dans le monde de la programmation indépendante. Au début, il s'est concentré sur diverses technologies Microsoft (compilé trois livres techniques liés à ASP.NET AJX et Cocos 2d-X. Au cours des dix dernières années, il s'est consacré au monde open source (familier avec les logiciels complets populaires). technologie de développement Web de pile) et découvert OneNet/AliOS+Arduino/ESP32/Raspberry Pi et d'autres technologies de développement IoT et Scala+Hadoop+Spark+Flink et d'autres technologies de développement Big Data.

Un petit apprentissage automatique promet d’intégrer l’apprentissage profond dans les microprocesseurs

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer