Table des matières[Cacher][Montrer]
Les modèles d'apprentissage automatique sont partout en ce moment. Pendant la journée, vous utilisez probablement ces modèles beaucoup plus que vous ne le pensez. Les modèles d'apprentissage automatique sont utilisés dans des tâches courantes telles que la navigation sur les réseaux sociaux, la photographie et la vérification de la météo.
Un algorithme d'apprentissage automatique vous a peut-être recommandé ce blog. Nous avons tous entendu dire à quel point il faut du temps pour former ces modèles. Nous avons tous entendu dire que la formation de ces modèles prend du temps.
Cependant, faire des inférences sur ces modèles est souvent coûteux en temps de calcul.
Nous avons besoin de systèmes informatiques suffisamment rapides pour gérer la vitesse à laquelle nous utilisons les services d'apprentissage automatique. En conséquence, la majorité de ces modèles sont exécutés sur des centres de données massifs avec des clusters CPU et GPU (même des TPU dans certains cas).
Lorsque vous prenez une photo, vous voulez machine learning pour l'améliorer instantanément. Vous ne voulez pas avoir à attendre que l'image soit transférée vers un centre de données, traitée et renvoyée. Dans ce cas, le modèle d'apprentissage automatique doit être exécuté localement.
Lorsque vous dites "Hey Siri" ou "OK, Google", vous voulez que vos gadgets répondent immédiatement. En attendant que votre voix soit transmise aux ordinateurs, où elle sera évaluée et les données obtenues.
Cela prend du temps et a un effet néfaste sur l'expérience utilisateur. Dans ce cas, vous souhaitez que le modèle d'apprentissage automatique fonctionne également localement. C'est là qu'intervient TinyML.
Dans cet article, nous examinerons TinyML, son fonctionnement, ses utilisations, comment démarrer avec, et bien plus encore.
Qu’est ce qu' MinusculeML?
TinyML est une discipline de pointe qui applique le potentiel révolutionnaire de l'apprentissage automatique aux performances et aux limites de puissance des petits appareils et des systèmes embarqués.
Un déploiement réussi dans ce secteur nécessite une compréhension approfondie des applications, des algorithmes, du matériel et des logiciels. Il s'agit d'un sous-genre d'apprentissage automatique qui utilise des modèles d'apprentissage profond et d'apprentissage automatique dans des systèmes embarqués qui utilisent des microcontrôleurs, des processeurs de signaux numériques ou d'autres processeurs spécialisés à très faible consommation.
Les appareils intégrés compatibles TinyML sont destinés à exécuter un algorithme d'apprentissage automatique pour une tâche spécifique, généralement dans le cadre de la informatique de pointe.
Pour fonctionner pendant des semaines, des mois, voire des années sans recharge ni remplacement de batterie, ces systèmes embarqués doivent avoir une consommation électrique inférieure à 1 mW.
Comment cela fonctionne ?
Le seul cadre d'apprentissage automatique pouvant être utilisé avec des microcontrôleurs et des ordinateurs est TensorFlow Lite. Il s'agit d'un ensemble d'outils qui permettent aux développeurs d'exécuter leurs modèles sur des appareils mobiles, intégrés et périphériques, permettant l'apprentissage automatique à la volée.
L'interface du microcontrôleur est utilisée pour collecter des données à partir de capteurs (comme des microphones, des caméras ou des capteurs intégrés).
Avant d'être envoyées au microcontrôleur, les données sont intégrées dans un modèle d'apprentissage automatique basé sur le cloud. La formation par lots en mode hors ligne est couramment utilisée pour former ces modèles. Les données du capteur qui seront utilisées pour apprentissage et inférence a déjà été déterminée pour l'application spécifique.
Si le modèle est formé pour détecter un mot d'activation, par exemple, il est déjà configuré pour gérer un flux audio continu à partir d'un microphone.
Tout est déjà fait à l'aide d'une plateforme cloud comme Google Colab dans le cas de TensorFlow Lite, y compris la sélection des jeux de données, la normalisation, le sous-ajustement ou le surajustement du modèle, la régularisation, l'augmentation des données, la formation, la validation et les tests.
Un modèle entièrement formé est finalement transformé et transféré vers le microcontrôleur, le micro-ordinateur ou le processeur de signal numérique après la formation par lots hors ligne. Le modèle n'a pas de formation supplémentaire après avoir été déplacé vers un appareil intégré. Au lieu de cela, il utilise uniquement des données en temps réel provenant de capteurs ou de périphériques d'entrée pour appliquer le modèle.
Par conséquent, un modèle d'apprentissage automatique TinyML doit être exceptionnellement durable et capable d'être recyclé après des années ou de ne jamais être recyclé. Tous les sous-ajustements et surajustements potentiels du modèle doivent être étudiés afin que le modèle reste pertinent pendant une longue période de temps, idéalement indéfiniment.
Mais pourquoi utiliser TinyML ?
TinyML a commencé comme une tentative d'éliminer ou de réduire la dépendance de l'IdO aux services cloud pour les applications de base à petite échelle. machine learning opérations. Cela a nécessité l'utilisation de modèles d'apprentissage automatique sur les appareils périphériques eux-mêmes. Il offre les principaux avantages suivants :
- Batterie faible consommation: Une application TinyML doit de préférence utiliser moins de 1 milliWatt de puissance. Avec une consommation d'énergie aussi faible, un appareil peut continuer à tirer des conclusions des données des capteurs pendant des mois ou des années, même s'il est alimenté par une pile bouton.
- Coût moindre: Il est conçu pour fonctionner sur des microcontrôleurs ou DSP 32 bits à faible coût. Ces microcontrôleurs coûtent généralement quelques centimes chacun et le système embarqué total développé avec eux est inférieur à 50 dollars. Il s'agit d'une option très rentable pour exécuter de petits programmes d'apprentissage automatique à grande échelle, et elle est particulièrement bénéfique dans les applications IoT où l'apprentissage automatique doit être appliqué.
- Latence plus faible: Ses applications ont une faible latence car elles n'ont pas besoin de transporter ou d'échanger des données sur le réseau. Toutes les données des capteurs sont enregistrées localement et les conclusions sont tirées à l'aide d'un modèle qui a déjà été formé. Les résultats des inférences peuvent être envoyés à un serveur ou à un cloud pour une journalisation ou un traitement supplémentaire, bien que cela ne soit pas essentiel au fonctionnement de l'appareil. Cela minimise la latence du réseau et élimine le besoin d'effectuer des opérations d'apprentissage automatique sur un cloud ou un serveur.
- Confidentialité: C'est une préoccupation majeure sur internet et avec l'internet des objets. Le travail d'apprentissage automatique dans les applications TinyML est effectué localement, sans stocker ni envoyer de données de capteur/utilisateur à un serveur/cloud. Par conséquent, même lorsqu'elles sont liées à un réseau, ces applications peuvent être utilisées en toute sécurité et ne présentent aucun risque pour la confidentialité.
Applications
- Agriculture – Quand les agriculteurs prennent une photo d'une plante, l'application de TensorFlow Lite détecte les maladies qui s'y trouvent. Il fonctionne sur n'importe quel appareil et ne nécessite pas de connexion Internet. La procédure protège les intérêts agricoles et est une nécessité essentielle pour les agriculteurs ruraux.
- Entretien Mécanique – TinyML, lorsqu'il est utilisé sur des appareils de faible puissance, peut continuellement identifier les défauts d'une machine. Cela implique une maintenance basée sur les prévisions. Ping Services, une start-up australienne, a introduit un gadget IoT qui surveille les éoliennes en se fixant à l'extérieur de l'éolienne. Il avertit les autorités chaque fois qu'il détecte un éventuel problème ou dysfonctionnement.
- Hôpitaux – Les Solar Scare est un projet. Mosquito utilise TinyML pour stopper la propagation de maladies telles que la dengue et le paludisme. Il est alimenté par l'énergie solaire et détecte les conditions de reproduction des moustiques avant de signaler à l'eau d'empêcher la reproduction des moustiques.
- Surveillance du trafic – Par en appliquant TinyML aux capteurs qui collectent des données de trafic en temps réel, nous pouvons les utiliser pour mieux diriger le trafic et réduire les temps de réponse des véhicules d'urgence. Swim.AI, par exemple, utilise cette technologie sur les données en continu pour accroître la sécurité des passagers tout en réduisant la congestion et les émissions grâce à un routage intelligent.
- Droit applicable et juridiction compétente: TinyML peut être utilisé dans les forces de l'ordre pour identifier des actions illégales telles que des émeutes et des vols à l'aide de l'apprentissage automatique et de la reconnaissance des gestes. Un programme similaire peut également être utilisé pour sécuriser les guichets automatiques bancaires. En observant le comportement de l'utilisateur, un modèle TinyML peut prédire si l'utilisateur est un vrai consommateur effectuant une transaction ou un intrus tentant de pirater ou de détruire le guichet automatique.
Comment démarrer avec TinyML ?
Pour démarrer avec TinyML dans TensorFlow Lite, vous aurez besoin d'une carte de microcontrôleur compatible. TensorFlow Lite pour microcontrôleurs prend en charge les microcontrôleurs répertoriés ci-dessous.
- Borne Wio : ATSAMD51
- Carte de développement Himax WE-I Plus EVB Endpoint AI
- Trousse découverte STM32F746
- Adafruit EdgeBadge
- Plate-forme de développement logiciel Synopsys DesignWare ARC EM
- Sony Sprense
- Sens Arduino Nano 33 BLE
- Bord SparkFun
- Kit Adafruit TensorFlow Lite pour microcontrôleurs
- Adafruit Circuit Aire de jeux Bluefruit
- Espressif ESP32-DevKitC
- Expressif ESP-EYE
Il s'agit de microcontrôleurs 32 bits disposant de suffisamment de mémoire flash, de RAM et de fréquence d'horloge pour exécuter un modèle d'apprentissage automatique. Les cartes disposent également d'un certain nombre de capteurs embarqués capables d'exécuter n'importe quel programme intégré et d'appliquer des modèles d'apprentissage automatique à l'application ciblée. À construire un modèle d'apprentissage automatique, vous aurez besoin d'un ordinateur portable ou d'un ordinateur en plus d'une plate-forme matérielle.
Chaque plate-forme matérielle possède ses propres outils de programmation pour la création, la formation et le portage de modèles d'apprentissage automatique, qui utilisent le package TensorFlow Lite for Microcontrollers. TensorFlow Lite est libre d'utilisation et de modification, car il est open source.
Pour démarrer avec TinyML et TensorFlow Lite, tout ce dont vous avez besoin est l'une des plates-formes matérielles embarquées mentionnées ci-dessus, un ordinateur/ordinateur portable, un câble USB, un convertisseur USB-série - et le désir de pratiquer l'apprentissage automatique avec des systèmes embarqués .
Défis
Même si les progrès de TinyML ont donné de nombreux résultats positifs, l'industrie de l'apprentissage automatique est toujours confrontée à des obstacles considérables.
- Diversité logicielle – Codage manuel, la génération de code et les interpréteurs ML sont toutes des options pour déployer des modèles sur des appareils TinyML, et chacune prend un temps et des efforts différents. Différentes performances peuvent en résulter.
- Diversité matérielle – Là plusieurs options matérielles sont disponibles. Les plates-formes TinyML peuvent être n'importe quoi, des microcontrôleurs à usage général aux processeurs neuronaux de pointe. Cela entraîne des problèmes de déploiement de modèle sur différentes architectures.
- Dépannage/débogage – Quand un modèle ML fonctionne mal sur le cloud, il est simple d'examiner les données et de comprendre ce qui ne va pas. Lorsqu'un modèle est réparti sur des milliers d'appareils TinyML, sans qu'aucun flux de données ne retourne dans le cloud, le débogage devient difficile et peut nécessiter une méthode différente.
- Contraintes de mémoire – Traditionnel les plates-formes, telles que les smartphones et les ordinateurs portables, ont besoin de gigaoctets de RAM, tandis que les appareils TinyML utilisent des kilo-octets ou des mégaoctets. De ce fait, la taille du modèle pouvant être déployé est limitée.
- Formation modèle – Bien que il y a plusieurs avantages à déployer des modèles ML sur des appareils TinyML, la majeure partie des modèles ML est toujours formée sur le cloud pour itérer et améliorer en permanence la précision du modèle.
A venir
TinyML, avec son faible encombrement, sa faible consommation de batterie et son manque ou sa dépendance limitée à la connectivité Internet, a un énorme potentiel à l'avenir, car la majorité des réseaux étroits intelligence artificielle sera implémenté sur des appareils périphériques ou des gadgets intégrés indépendants.
Cela rendra les applications IoT plus privées et sécurisées en les exploitant. Mais TensorFlow Lite est actuellement le seul cadre d'apprentissage automatique pour les microcontrôleurs et les micro-ordinateurs, d'autres cadres comparables tels que le capteur et le CMSIS-NN d'ARM sont en préparation.
Alors que TensorFlow Lite est un projet open source en cours qui a pris un excellent départ avec l'équipe de Google, il a encore besoin du soutien de la communauté pour entrer dans le courant dominant.
Conclusion
TinyML est une nouvelle approche qui combine les systèmes embarqués avec l'apprentissage automatique. Alors que l'IA étroite culmine dans de nombreux secteurs et domaines, la technologie peut émerger comme un sous-domaine important de l'apprentissage automatique et de l'intelligence artificielle.
Il fournit une solution à de nombreux défis auxquels le secteur de l'IoT et les professionnels appliquant l'apprentissage automatique à de nombreuses disciplines spécifiques à un domaine sont désormais confrontés.
Le concept d'utilisation de l'apprentissage automatique à périphériques de pointe avec un petit ordinateur l'encombrement et la consommation d'énergie ont le potentiel de transformer considérablement la façon dont les systèmes embarqués et la robotique sont construits.
Soyez sympa! Laissez un commentaire