IA COGNITO – EP05 – Les composants du Machine Learning
L’épisode d’aujourd’hui s’inscrit dans la continuité des autres podcasts dédiés à la compréhension du Machine Learning. Au menu de ce jour, nous aborderons les 3 ingrédients qui lui sont indispensables, à savoir les données, les algorithmes et le matériel.
Les données
Commençons tout de suite par parler de notre premier indispensable : les données.
Définition de la donnée
Les données sont à la base de l’apprentissage et donc du Machine Learning. Elles peuvent correspondre à des observations, des mesures, un fait ou encore une description. Il est possible de capter soi-même ses données afin de créer une base de données interne, ou le cas échéant d’utiliser des jeux de données externes. Les jeux de données externes peuvent servir de base au projet, ou en complément de ceux mobilisables en interne.
Les données qui ont été recueillies sont dites brutes, et elles vont nécessiter d’être nettoyées et formatées ultérieurement afin d’être le plus pertinentes possible pour l’analyse. A ce stade, elles sont dites non structurées.
On considère que les données deviennent structurées lorsque l’on sait ce que contient chaque élément d’une donnée et où le trouver. A ce titre, il est possible d’enrichir la base de données de métadonnées. Ces dernières correspondent à un ensemble de détails spécifiques sur les données dans le but de mieux les comprendre. L’étape d’annotation, dont nous parlerons également tout à l’heure, est un des éléments qui permet d’ajouter des métadonnées.
Information, donnée… Quelle différence ?
Bien souvent, on ne fait pas la différence entre une donnée et une information. La donnée est un élément brut qui n’a pas encore été interprété. De ce fait, les données contiennent des faits et des chiffres bruts. Elles sont utilisées en entrée pour générer des informations. Une information est donc une donnée qui a été interprétée.
Les différents types et formats de données
Les données peuvent prendre des formes très variées. Elles peuvent être des textes, des images, des vidéos, des statistiques, des relevés de valeurs ou encore des séries temporelles.
De plus, on retrouve une multitude de formats pour chaque donnée. Par exemple, les images peuvent être RGB, infrarouges, PDF… Cependant, on ne peut pas toutes les exploiter de la même manière.
Les différents types et formats de données
Mais, faut-il privilégier la qualité ou la quantité de données ?
On entend souvent que le Machine Learning ne fonctionne que sur de grandes quantités de données. En réalité, il faut surtout constituer une base de données qui soit représentative et exhaustive.
Des données représentatives vont permettre de refléter au mieux la réalité terrain, et tous les cas de figure que l’IA aura à analyser. Les données utilisées durant l’apprentissage devront être proches de celles que l’IA aura à traiter une fois mise en production. La représentativité des données est un des facteurs clés de succès dans le développement d’une IA, et cause des pertes de performances importantes si l’on passe à côté.
L’exhaustivité permet de s’assurer que l’ensemble des données représente tous les cas de figure que l’IA pourra rencontrer. Comme l’exhaustivité absolue est utopique, on vise plutôt une exhaustivité relative.
Traitement et nettoyage de la donnée
Afin de rendre les données brutes exploitables, il faut préalablement passer par plusieurs étapes de manipulation afin de les mettre en forme.
La première phase est celle du nettoyage des données. Elle vérifie que les données sont fiables, en regardant s’il y a des données manquantes ou en s’assurant qu’il n’y ait pas de données aberrantes. Les données incohérentes sont alors supprimées et les éventuelles erreurs, comme les données mal saisies, corrigées.
Cette étape est primordiale puisque disposer d’informations d’un bon niveau de qualité est préalable à l’élaboration d’algorithmes de Machine Learning.
Annoter la donnée pour lui donner du sens
Ensuite, il faut passer par la phase d’annotation. L’étape d’annotation permet de décrire et de qualifier les données.
Par exemple, si l’on souhaite reconnaître des pommes et des poires, il faudra commencer par constituer une base de données d’images représentant des pommes et des poires. Sur chaque photo, on indique ensuite où se trouve la pomme et/ou la poire. Ceci est fait en encadrant d’une boîte englobante le fruit en question puis en spécifiant duquel il s’agit. Ici, les données que l’on va exploiter seront donc des photos avec des étiquettes “pomme” et “poire”. Le jeu de données sera donc divisé en deux classes, à savoir celles que l’on souhaite identifier.
Le premier qui vient en tête est sans doute la vision. C’est en effet un des premiers domaines où le deep learning a permis de dépasser de manière significative les performances des méthodes à l’état de l’art. Et qui, de part ses cas d’application variés et très parlant, a permis de populariser aujourd’hui le deep learning.
Algorithmes, modèles et librairies
Maintenant que vous savez ce que sont les données et comment les mettre en forme, intéressons-nous aux algorithmes.
Qu’est-ce qu’un algorithme ?
Que vous en soyez conscients ou non, les algorithmes font partie intégrante de notre vie. Mais comment les définir ? La définition la plus commune se base sur une suite d’instructions qui, suivies dans un ordre précis, permettent de résoudre un problème.
Les algorithmes d’apprentissage ont la particularité d’évoluer, en fonction des données qui leur sont fournies. Dans votre vie quotidienne, ils vous fournissent du contenu pertinent sur les réseaux sociaux, vous proposent le chemin le plus rapide pour rentrer chez vous ou vous font des recommandations personnalisées sur internet.
Qu’est-ce qu’un modèle d’apprentissage ? Un modèle pré-entraîné ?
Les algorithmes servent à générer un modèle, qui vient apprendre à se paramétriser sur les données. Grâce aux nombreuses données que l’on vient fournir, le Machine Learning permet de configurer les différents paramètres de ce modèle. Le nombre de ces paramètres est très variable, il peut y en avoir parfois des millions pour les modèles les plus complexes. Tant que les prédictions du modèle n’atteignent pas les performances espérées, on va chercher à les optimiser.
Quand les performances sont optimales, on peut venir figer le modèle qui servira en inférence. Il sera alors capable de donner des prédictions sur de nouvelles données relatives à celles sur lesquelles il a été entraîné.
Il existe également des modèles pré-entraînés. Comme leur nom l’indique, ce sont des modèles qui ont déjà été entraînés sur de grandes quantités de données en amont par d’autres personnes. Ils permettent notamment d’accélérer la phase d’entraînement, puisqu’il suffit de venir spécifier la tâche sur laquelle ils ont été entraînés. Par exemple, un modèle peut être pré-entraîné à détecter des chats, alors que l’on souhaite lui faire reconnaître des pommes. Ces modèles sont parfois (et idéalement) open source et mis à disposition par différents acteurs du domaine.
Venons en aux librairies
Lorsque l’on développe des algorithmes de Machine Learning, il est possible de s’appuyer sur des librairies.
Le terme librairie étant un faux ami, on préfèrerait en bon français utiliser le terme “bibliothèque”. Il reste cependant largement utilisé.
Une librairie correspond à une collection de routines. Les routines étant des entités informatiques qui regroupent une partie de code effectuant un traitement spécifique, comme une tâche ou un calcul.
Les librairies sont généralement en rapport avec des opérations fréquentes, comme la manipulation des bases de données ou des calculs mathématiques. Elles contiennent généralement un code utile qu’on ne souhaite pas réécrire à chaque fois. Elles permettent de faciliter l’utilisation de processus informatiques complexes et, dans notre cas, de rendre plus abordable le développement de méthodes d’intelligence artificielle.
Le matériel, communément appelé le hardware
Finissons par le dernier élément indispensable à l’intelligence artificielle : le matériel, qui va venir effectuer les calculs nécessaires.
CPU, GPU, TPU…
CPU, GPU, TPU… On entend souvent ces acronymes lorsque l’on aborde des questions d’ordre matériel, mais de quoi parle-t-on ?
Le processeur, aussi appelé CPU, a un rôle exécuteur. Il traite et organise toutes les informations en provenance des autres composants de la machine, comme la mémoire et le disque dur, et assigne les tâches spécifiques à ses voisins. Il réalise également des calculs variés pour faciliter l’interaction entre la machine et son utilisateur.
Quant au processeur graphique, ou GPU, il s’occupe de gérer tout ce qui touche aux calculs graphiques ou aux résolutions de calculs mathématiques. Il gère notamment l’affichage des pixels, textures et formes à l’écran ainsi que le traitement vidéo. Grâce à l’augmentation de leurs performances, les processeurs graphiques peuvent aujourd’hui effectuer de nombreux calculs parallèles. Ils sont généralement embarqués sur une carte graphique.
Enfin, l’unité de traitement de tenseurs, ou TPU, est un circuit permettant d’accélérer les calculs et les algorithmes d’IA. C’est un processeur de développement spécifiquement pour les algorithmes de deep learning.
Le Cloud
Il existe deux principales méthodes de traitement des données : le Cloud et le On Premise. Chacune avec ses avantages et ses inconvénients.
Dans le cas du Cloud, les capacités de calcul sont déplacées vers un lieu de stockage distant par rapport à l’utilisateur. Ces serveurs déportés se situent généralement dans ce que l’on appelle des fermes de serveurs. Ces centres de données regroupent un très grand nombre de serveurs, et permettent de stocker des millions de milliards de données. Pour donner un ordre de grandeur, Google en possède une cinquantaine répartis aux quatre coins du globe.
Afin d’accéder à l’infrastructure, les utilisateurs disposent d’une interface. L’utilisateur peut venir déposer son modèle dans le Cloud afin de venir y faire les calculs. Puis les résultats lui sont renvoyés.
Le Cloud permet d’avoir accès à une grande puissance de calcul et une mémoire importante de manière quasi instantanée. Ses utilisateurs n’ont pas besoin d’investir dans du matériel supplémentaire puisque les ressources se consomment sous forme de services.
On premise
La méthode On Premise diffère fondamentalement du Cloud, puisque l’on utilise le serveur et l’environnement informatique de l’utilisateur. Tout le traitement de la donnée est effectué sur le même dispositif, le plus souvent sur des PCs industriels.
Le On Premise trouve toute son utilité lorsque l’utilisateur souhaite avoir un contrôle total sur ses données. Cette problématique est particulièrement prégnante lorsqu’on est confronté à des problématiques de confidentialité, et que l’on ne souhaite pas faire sortir les données de l’entreprise. Ce qui peut être le cas dans plusieurs secteurs d’activités, comme celui de la santé.
Autre avantage, le On Premise permet de réduire significativement le temps entre la captation de la donnée et son traitement.
Il faudra ainsi se tourner vers le Deep Learning lorsque l’apprentissage doit se faire sur des grands jeux de données variées, difficilement explicables ou que nous avons du mal à caractériser simplement.
L’IA embarquée
Aujourd’hui, l’IA s’embarque sur des capteurs avec micro contrôleurs. C’est ce qu’on appelle l’IA embarquée ou Edge computing.
Son avantage ? Avant tout réduire la consommation énergétique et les délais de traitement. Mais aussi limiter coûts et risques liés au traitement de la donnée. En effet, en conservant les données en interne, on assure une protection accrue de la vie privée des utilisateurs ou tout simplement une meilleure confidentialité. On utilise également les algorithmes appropriés afin d’assurer le meilleur compromis entre performance et coût, sans oublier de s’adapter aux besoins des utilisateurs finaux.
Grâce à l’amélioration des performances, on peut aujourd’hui miniaturiser l’IA. Les opérations effectuées par les réseaux de neurones sont simples et facilement parallélisables. On peut donc aisément créer du matériel spécifique, tel que des puces dédiées que l’on retrouve aujourd’hui dans nos smartphones.
Vous disposez dorénavant de tous les éléments de la recette du Machine Learning. Si l’on résume, les données à disposition sont multiples et variées, si tant est que l’on soit capable de les transformer afin de les rendre exploitables. Les algorithmes viennent par la suite exploiter ces données, en apprenant à les modéliser. Vient en dernier le matériel, qui fait tourner les calculs nécessaires à l’obtention d’un résultat.
Sources :
- https://neovision.fr/prerequis-intelligence-artificielle/
- https://neovision.fr/intelligence-artificielle-opportunite-entreprise/
- https://www.techno-science.net/definition/1470.html#:~:text=En%20informatique%2C%20une%20biblioth%C3%A8que%20ou,sans%20avoir%20%C3%A0%20les%20r%C3%A9%C3%A9crire.
- https://ledatascientist.com/introduction-au-transfer-learning/
- https://www.lepoint.fr/high-tech-internet/algorithmes-et-intelligence-artificielle-des-definitions-15-12-2017-2180361_47.php
- https://www.ionos.fr/digitalguide/serveur/know-how/quest-ce-que-le-cloud/
- https://www.ionos.fr/digitalguide/serveur/know-how/quest-ce-que-on-premises/#:~:text=est%2Dil%20utilis%C3%A9%20%3F-,Qu’est%2Dce%20que%20On%2DPremises%20%3F,environnement%20informatique%20de%20l’entreprise.