[Data science] Présentation générale du Machine Learning

Au fil des années, l'équipe a su se renouveler, techniquement et technologiquement. C'est projet après projet et au long de périodes de R&D que nous avons désormais un vaste éventail de compétences autour du numérique. Ainsi, pour poursuivre ces mutations qui nous passionnent, nous suivons de près les sujets chauds du moment pour ne rater aucun terrain de jeu futur. Aujourd'hui, le Machine Learning qui est au centre de nos essais.

Machine Learning : pour démarrer

Comme tout bon fainéant, il convient avant toute chose de donner la définition de Wikipedia :

Le machine learning est "un champ d'étude de l'intelligence artificielle qui se base sur des approches 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".

Ce dernier point est la grande force de ce domaine, ce qui le rend un peu magique et mystérieux : les machines apprennent à partir de données brutes, sans qu'on leur dise comment les interpréter. Et parfois, ils leur arrivent de les interpréter mieux que les humains, comme par exemple pour la détection de mélanomes.

En réalité, rien n'est magique dans le machine learning, mais l'abstraction de l'information couplée à un (grand) nombre de calculs fait qu'il peut être difficile pour un cerveau humain de visualiser le processus data => prédiction.

À noter que l'on observe souvent une confusion de termes entre machine learning et deep learning. Le deep learning est une façon bien spécifique de faire du machine learning, en essayant de reproduire le modèle d'un cerveau. On va construire un ensemble de neurones logiques, et les interconnecter. C'est le deep learning en particulier qui fait beaucoup de bruit de nos jours, et qui est le focus de gros investissements privés et publics.

Machine Learning : comment ça fonctionne ?

Et bien il faut tout d'abord récupérer un grand nombre de données d'entrée. Il est important de se rendre compte que dans la data science, la récupération et le traitement des données est généralement le plus gros du travail. On veut amasser des données en nombre, et faire en sorte qu'elles soient de qualité. Il est ainsi très rare que l'on puisse prendre de la donnée brute et l'envoyer telle quelle dans un système de machine learning et espérer avoir des résultats corrects.

Ces données peuvent vraiment être de toutes sortes : des images, des sons, des statistiques, une base de données d'utilisateurs,... voire une combinaison de tout cela !

On va ensuite concevoir notre modèle prédictif, qui va apprendre à connaître nos données d'entrée.

Le modèle est un ensemble de processus logiques et mathématiques qui va prendre en entrée nos données pré-traitées, et va sortir un résultat, une prédiction.

Ce modèle peut être très simple, par exemple une droite dans le cas d'une régression linéaire :

Si X est notre donnée d'entrée, disons la date par exemple, et Y la variable que l'on veut prédire, disons le prix du pain, et que nos données ont cette forme :

linear regression. Légende : représentation 2D de nos données

On peut se dire que l'on suit plus ou moins une droite. On va donc décréter que nos données peuvent se prédire avec une simple droite. On va entraîner notre modèle de machine learning sur une droite Y = ax + b, et avec les bons a et b, on pourra prédire le prix du pain pour une année donnée, à une certaine erreur près.

Ce cas est simplissime, mais pour des problèmes plus complexes, on utilise plus souvent le deep learning. On établit des réseaux de neurones, que l'on représente souvent sous la forme d'un graphe.

Pour les réseaux de neurones les plus simples, les feed-forward neural networks, le graphe est le suivant :

FFNN.

À noter que ce modèle est paramétré. Pour le cas de la droite x -> ax + b, il n'y a que 2 paramètres : a et b. Pour les modèles plus complexes de deep learning, il y a souvent des milliers de paramètres.

Ensuite, on passe par une phase d'apprentissage. On va présenter les données à notre modèle, qui va faire une prédiction initiale avec des paramètres initiaux. On va mesure à quel point notre modèle se trompe sur chaque prédiction, soit un peu, soit beaucoup, soit pas du tout. On va alors modifier les paramètres du modèle en suivant un algorithme qui se base sur l'erreur que notre modèle a commise.

Le but de cette phase d'entrainement est d'ajuster, à chaque prédiction, les paramètres de notre modèle. Comme un ensemble de boutons que l'on doit légèrement tourner à chaque fois pour que notre modèle se trompe de moins en moins. On dit que l'on cherche à minimiser l'erreur de prédiction.

Une fois que l'on juge notre modèle suffisamment entraîné, on va le mettre à l'épreuve de la réalité, sur un jeu de données étranger qu'il n'a encore jamais connu. A ce moment là, on pourra alors évaluer son efficacité, et lui demander de faire de réelles prédictions exploitables.

Machine Learning : qui et quoi peut en profiter ?

Le Machine Learning a des applications possibles dans quasiment tous les domaines impliquant de la donnée à analyser.

Ces dernières années, le Machine Learning a été particulièrement plébiscité grâce à ses performances sur le traitement des images. On observe des résultats absolument phénoménaux dans la reconnaissance visuelle (identification d'objets ou d'informations sur une image) battant à plate couture la plupart des algorithmes existant auparavant.

Plus spécifiquement, on peut citer la reconnaissance de caractères, la synthèse vocale, les recommandations sur les sites d'e-commerce, l'optimisation et automatisation de procédés industriels (triage des déchets par exemple)... la liste continue...

Tout n'est cependant pas si simple dans le Machine Learning

Pour entraîner efficacement des modèles complexes, une grosse quantité de data est essentielle. La qualité joue aussi bien évidemment, si les datas ne sont pas représentatives du problème, notre modèle ne pourra pas généraliser à la réalité.

Tous ces problèmes d'ordre technique sortent du contexte de cet article, mais on pourra simplement retenir que créer un modèle efficace de machine learning requiert un intense travail d'analyse, de récupération de données, et d'essai/erreur quant à la structure de notre modèle prédictif.

Certains problèmes vont aussi heurter les limites techniques des ordinateurs modernes. Quand les données en entrée comportent beaucoup de caractéristiques, et/ou que notre modèle est très complexe en terme d'opérations mathématiques, on va mettre trop de temps à entraîner ce dernier, du fait d'une puissance de calcul qui a ses limites.

Machine Learning : pour conclure

Le machine learning tient aujourd'hui beaucoup de promesses, en particulier sa branche du deep learning. Il représente la plus grosse avancée en intelligence artificielle de ces dernières années, et semble avoir des applications partout.

Rien n'est magique cependant, et la recherche sur le sujet n'en est qu'à ses débuts.

L'intelligence artificielle en général est un sujet qui, souvent, passionne, et en même temps suscite les peurs de certains. Je recommande d'ailleurs, si vous êtes familier avec la langue de Shakespeare, de regarder cette vidéo qui date de mars 2017. Elle explique, de façon très éducative, le problème de doter nos IA d'un bouton "stop" qui forcerait l'arrêt du système.

Le fait que cette simple fonctionnalité pose un problème existentiel à nos IA peut en effet amener à faire réfléchir !

Commentaires

Il n'y a actuellement aucun commentaire. Soyez le premier !

Articles liés