VT2021 TinyML fiche

Résumé
TinyML est un domaine en plein émergence du machine learning qui permet de déployer des algorithmes d’apprentissage automatique au sein de très petits dispositifs à faible consommation énergétique et à faible mémoire. Les devices peuvent alors fonctionner et rester allumées en permanence pendant plusieurs années tout en récoltant des données pour les analyser, au sein même du device, via un modèle d’intelligence artificielle afin de résoudre différentes problématiques.

Abstract
​​TinyML is an emerging field of machine learning that enables the deployment of machine learning algorithms in very small devices with low power consumption and low memory. The devices can then run and stay on continuously for several years while collecting data to analyze them via an artificial intelligence model, inside the device, in order to solve various problems.

Qu’est ce que le Machine learning ?
“''Le machine learning est un champ d’étude de l’intelligence artificielle qui se fonde sur des approches mathématiques et statistiques pour donner aux ordinateurs la capacité d'apprendre à partir de données, c'est-à-dire d'améliorer leurs performances à résoudre des tâches sans être explicitement programmés pour chacune. Plus largement, il concerne la conception, l'analyse, l'optimisation, le développement et l'implémentation de telles méthodes.''” wikipedia.

Plus généralement, le machine learning se concentre sur le développement d’algorithmes qui apprennent à résoudre des problèmes en analysant des données afin d’en extraire des patterns.

Le deep learning est également une partie spéciale du machine learning qui exploite des réseaux de neurones. Il est très adapté pour travailler avec de grandes quantités de données.

IOT
L'IoT peut être considéré comme une infrastructure mondiale pour la société de l'information, permettant des services avancés en interconnectant des éléments basés sur des devices d'information et de communication interopérables existants et en évolution. Actuellement, on peut remarquer que la distribution de ces devices est inégale à travers le monde, les régions comme l’Europe ou les Etats-unis en sont densément dotés contrairement à d’autres comme le continent africain. L’IoT est un outil qui peut aider l’humanité à régler certaines problématiques comme notamment la famine et la protection de l’environnement … Seulement, certains endroits du monde où l’on pourrait déployer des devices présentent des caractéristiques contraignantes, cela peut être un manque de connexion internet, un manque d’infrastructure ou encore un écosystème complexe, c’est dans ce contexte que les tinyML se veulent comme voie de solution.

Qu’est ce que tinyML ?
TinyML est actuellement le domaine qui se développe le plus rapidement dans l’apprentissage automatique. Le principe est de déployer des algorithmes de machine learning au sein de différents petits dispositifs (devices ?) à faible consommation énergétique et à faible mémoire. Dans des centres de big data, on peut utiliser jusqu’à plusieurs tonnes de watts. A l’inverse, nous devons ici plus penser en ordre de milliwatts. Grâce à cette faible consommation énergétique, les devices peuvent rester allumés et fonctionner en permanence durant plusieurs années.

Pour déployer ces algorithmes de machine learning à l’intérieur des devices, nous entraînons d’abord un modèle dans le cloud avec une grande quantité de donnée, puis nous utilisons des techniques pour rétrécir ce modèle et l’implémenter dans de très petits devices tels que des petits microcontrollers, afin de l’utiliser au sein du monde physique. Pour cela, il existe des frameworks de machine learning créés par des compagnies tels que Google qui développe TensorFlow ainsi que TensorFlow Lite et TensorFlow Lite Micro, ces derniers étant vraiment pensés pour le tinyML. D’autres compagnies comme edge impulse met à disposition un environnement cloud dans lequel on peut envoyer nos données, créer - entraîner et tester notre modèle dans cet environnement, puis le récupérer pour le déployer sur notre edge device.

A la différence du monde de l’IoT où l’ensemble des devices récupèrent des données et les envoient dans le cloud pour ensuite pouvoir les utiliser pour exécuter des modèles de machine learning afin d’en extraire des informations. Ici, quand nous parlons de tinyML, nous parlons d’exécuter un modèle d’apprentissage automatique, qui a été préalablement entraîné au sein du cloud, à l’intérieur même du device qui capture les données. Les différents devices ne sont donc plus obligés de communiquer avec le cloud et donc d’être connectés. Cela permet de résoudre des problèmes de latence, de consommation énergétique ainsi que de sécurité.

Dans certains cas, de petits modèles d’intelligence artificielle au sein de devices sont utilisés pour déclencher de plus gros modèles au sein du cloud qui eux pourront interagir avec les données.

Collection des données
Afin de créer et d’entraîner nos modèles pour le tinyML, il faut disposer de données. Pour cela, il y a des ensembles de données disponibles pour la communauté. Cependant, pour des projets spécifiques, il peut ne pas y en avoir. Dans ce cas, les données doivent être rassemblées. Dans le cadre de projet tinyML, il faut le plus souvent des ensembles de données spécifiques, dépendant par exemple de la région ou du lieu où seront déployés les devices. La plupart du temps, il faut donc collecter les données localement. On peut ensuite compléter ces données avec des ensembles de données disponibles sur internet, si l’on a besoin par exemple de données provenant de différentes localisations.

La question de la confidentialité
Si les données collectées concernent les humains, alors la question de confidentialité et vie privée se pose. Cette question est à prendre en compte dès le début de la conception de l’application. On parlera ici d’intelligence artificielle responsable. Les données ne doivent surtout pas être biaisées et les modèles doivent toujours être pensé avec responsabilité. De plus, en tinyML la confidentialité des données récoltées est garantie. En effet, on va tout d’abord utiliser des données ayant eu une autorisation d’utilisation au préalable, pour créer et entraîner notre modèle. Puis, une fois notre modèle introduit dans notre device, nous avons la certitude que les nouvelles données récoltées ne sortent pas de celui-ci.

Les applications
La technologie de tinyML peut donc être utilisée dans de nombreux cas, cependant on est capable de former trois grandes familles de cas d’utilisations; ceux se basant sur le son, les vibrations et la vision.

Domaine du son
Un des déploiement de tinyML les plus évident dans le domaine du son concerne les enceintes connectées ou assistants personnels intelligents. Ces devices sont actifs de manière permanente afin de pouvoir détecter et traiter nos différentes demandes plus ou moins complexes. Si toutes les tâches que doivent réaliser ce type de device ne se faisait qu’en cloud computing, on pourrait facilement imaginer des problèmes liés à la bande passante. En effet, dans un monde où le nombre d’objets connectées croît, l’envoi constant à des datas centers de toutes les données captées par ces devices pourraient facilement causer des surcharges de bandes passantes. Dans le cas de l’enceinte Alexa, la solution qui a été choisie pour éviter ce type de problème est le déploiement d’un petit modèle pré-entraîné dans l’enceinte ayant pour unique rôle de détecter quand la phrase signifiant que l’utilisateur souhaite interagir avec cette dernière (le fameux “Hey Alexa”) ait été dite. Une fois que cette séquence a été reconnue, notre petit modèle va lancer une connexion avec des modèles biens plus complexes contenus dans un cloud, ces derniers auront alors pour rôle d’analyser et de répondre à notre demande.

Cette application n’est pas la seule dans le domaine du son, on en retrouve dans le domaine de la sécurité notamment avec des systèmes d’alarmes avec des tinyML permettant de détecter le brisage d’une vitre et de demander l’activation de l’alarme, on peut aussi retrouver différents systèmes d’écoutes de machine type industrielle, avec une réaction du modèle si l’on détecte un bruit inhabituel. Ce concept est aussi étendu par exemple au domaine de la médecine avec la détection des ronflements ou de la toux des patients, ou encore dans celui du monde vivant avec la détection de bruit émis par des animaux.

Domaine de la vibration
Il est possible de déployer ces tinyML aussi dans l’étude des vibrations et cela permet de nombreuses possibilités. Il est possible par exemple d’étudier le comportement des animaux, en effet grâce à des accéléromètres placés directement sur les animaux, les différentes vibrations émises peuvent être analysées par ces modèles réduits et fournir alors différents types d’informations. On peut notamment citer deux exemples, le premier, celui du projet de Cow Monitoring au Kenya mené par le docteur Ciira wa Maina dans lequel on va retrouver des vaches munies d’un boîtier qui contient un microcontrôleur ainsi qu’un détecteur de vibration, le but étant d’avoir un retour sur l’état de la vache, cela va être notamment utilisé pour détecter les maladies ou encore les périodes d’accouplement. Ce type de collier est aussi utilisé dans d’autres cas que dans l’élevage, notamment dans la protection des espèces protégées. Au Zimbabwe il existe un projet de sauvegarde de l’espèce des éléphants se basant sur cette technologie, le but étant de pouvoir surveiller le comportement des différents individus d’un même groupe pour prévenir de certains risques comme le braconnage.

Ce type de device est aussi utilisé dans le domaine industriel, en effet ils permettent de gagner considérablement en productivité notamment grâce à l’application dans la surveillance des machines. Des modèles ont été entraînés à détecter et à prévenir les différentes pannes qu’elles peuvent subir, lorsque le device détecte un pattern correspondant soit à une panné immédiate ou celui d’une panne proche, il envoie un rapport qui va permettre au(x) responsable(s) des machines d’être au courant de l’état de ces dernières. On retrouve ces devices aussi lors du transport de marchandises, le but étant de détecter les possibles maltraitance qu’elles peuvent subir tout au long du trajet et identifier précisément la section du parcours possiblement responsable d’une dégradation.

Domaine de la vision
Le dernier domaine d’application majeur est celui lié au domaine de la vision. En effet l’analyse des images par certains modèles nous permet d’obtenir une très grande variété d’informations, et l’on peut retrouver de nombreux device basé (avec tinyML) permettant de faire cela. Le fonctionnement est très similaire aux autres domaines, on utilise un modèle pré entraîné en cloud et on l’injecte dans des devices avec une capture vidéo/photo. On utilise ce style de dispositif notamment dans le domaine de l’agriculture, c’est le cas du projet de détection des maladies chez les plantes de l’université de Makerere (Ouganda), l’utilisateur n’a qu'à prendre une photo à l’aide de son téléphone d’une plante et ce dernier va localement déterminer si la plante est malade et si c’est avéré, de quel type de maladie est victime la plante. Dans certaines parties du monde, les feux de forêts sont courants et sont capables de ravager dans un premier temps des écosystèmes mais aussi des cultures agricoles. Pour prévenir l’éventuelle extension d’un début de feu, des projets ont vu le jour sur le développement de petits avions (d’une taille semblable à un jouet) munis d’une caméra et d’un micro controleur pour détecter au mieux ces derniers et permettre réaction rapide des autorités.

Bibliographie
What is TinyML?

What is TinyML - ARM

Google and Arm: tinyML

What's tinyML good for

When IOT meets AI