Le machine learning (apprentissage automatique) est une branche de l'intelligence artificielle qui permet aux machines d'apprendre à partir de données sans être explicitement programmées pour chaque tâche. L'algorithme analyse des exemples, identifie des régularités statistiques puis applique ce qu'il a appris sur de nouvelles données.
Comment fonctionne le machine learning ?
En programmation classique, le développeur doit écrire des instructions explicites que la machine exécute à la lettre. Le programme ne sait faire que ce pour quoi il a été codé.
Par exemple, si le développeur veut que le programme reconnaisse les emails frauduleux, il doit lister tous les critères de reconnaissance (expéditeur inconnu, fautes d'orthographe, demande de coordonnées bancaires) et coder une règle pour chaque scénario. Le programme applique ensuite ces règles mécaniquement, sans jamais les modifier.
Le machine learning fonctionne autrement : plutôt que de coder des règles, le développeur fournit à l’algorithme un grand nombre d'exemples accompagnés de la bonne réponse. Pour reprendre le cas des emails frauduleux : on donne à l'algorithme des milliers d'emails, chacun étiqueté « frauduleux » ou « légitime ». L'algorithme analyse alors ces exemples et cherche les régularités statistiques qui distinguent les deux catégories.
Il détecte, par exemple, que les emails frauduleux contiennent souvent certaines combinaisons de mots, proviennent de certains types de domaines ou présentent certaines structures de phrases. Ces régularités, l'algorithme les découvre seul : personne ne les lui a dictées.
Une fois cet apprentissage terminé, l'algorithme peut classer de nouveaux emails en toute autonomie. Il applique les régularités qu'il a extraites des exemples pour prédire si un email inconnu est frauduleux ou légitime. Le terme « machine learning » (apprentissage automatique) désigne ce processus : la machine apprend à partir de données, sans que le développeur n’ait à coder chaque règle une par une.
Les trois étapes du machine learning
Le processus du machine learning se déroule en trois étapes :
- L’entraînement : l'algorithme reçoit un jeu de données (des milliers ou des millions d'exemples). Il analyse ces données pour identifier des régularités statistiques. Cette phase consomme du temps et de la puissance de calcul ;
- La validation : on teste le modèle sur des données qu'il ne connaît pas pour vérifier qu'il généralise correctement. Si le modèle se trompe trop souvent, on ajuste ses paramètres et on recommence l'entraînement ;
- L’inférence : le modèle est déployé en production. Il reçoit de nouvelles données en temps réel et produit des prédictions. Chaque email entrant, par exemple, passe par le modèle qui renvoie une probabilité de fraude.
Le terme « machine learning » a été inventé en 1959 par Arthur Samuel, informaticien chez IBM. Samuel avait créé un programme capable de jouer aux dames. Il analysait les parties qu'il disputait, identifiait les coups qui menaient à la victoire et ajustait sa stratégie au fil du temps. En 1962, il parvient à battre le champion de l'État du Connecticut. La définition posée par Samuel reste encore valide aujourd’hui : donner aux ordinateurs la capacité d'apprendre sans être explicitement programmés pour chaque situation.
💡 Les conditions préalables au Machine Learning
Le machine learning exige des données en volume suffisant. Le nombre d'exemples nécessaires dépend de la complexité de la tâche : quelques centaines peuvent suffire pour une classification binaire simple, plusieurs dizaines de milliers pour de la reconnaissance d'image, par exemple. Avec trop peu d'exemples, l'algorithme ne généralise pas : il mémorise des cas particuliers sans en tirer de règle applicable à de nouvelles données. La qualité des données compte autant que la quantité : si les exemples fournis contiennent des erreurs d'étiquetage (des emails légitimes marqués comme frauduleux, ou l'inverse), l'algorithme apprend des régularités fausses. C’est pourquoi le nettoyage et la vérification des données représentent souvent la majeure partie du travail dans un projet de machine learning.
