Machine Learning

Introduction au Machine Learning

Julien Gremillot, Ingénieur Machine Learning @DeliaTechnologies
Julien Gremillot, Ingénieur Machine Learning @DeliaTechnologies
February 11, 2022
12 min

Le Machine Learning (ML - “Apprentissage Automatique” en français) englobe les techniques visant à donner à une machine la capacité d’apprendre sans avoir été programmée explicitement. C’est donc un sous-ensemble de l’Intelligence Artificielle (IA), les techniques visant plus globalement à simuler l’intelligence humaine. Dans cette approche, on distingue généralement 2 phases :

Si les courbes ci-dessus ne vous parlent pas, imaginez qu’elles vous montrent le prix d’un logement par rapport à sa surface. Chaque point de nos données correspond à une vente passée et un agent immobilier pourrait en déduire un modèle pour vous prédire le prix de votre logement en fonction de sa surface.

Bien sûr, on sait que la surface n’est pas la seule donnée qui influe sur le prix d’un logement : la plupart des modèles de ML gèrent de très nombreuses données en entrée !

Différents types d’apprentissage

Historiquement, on a distingué 2 types principaux d’apprentissage :

On peut également mentionner l’apprentissage par renforcement : le modèle reçoit des bonus ou malus en fonction de ses réponses et va adapter son comportement pour optimiser ses bonus.

Applications de Machine Learning

Concrètement, quels types de problèmes peuvent résoudre des modèles de ML ?

La régression

C’est la prédiction d’une valeur réelle en fonction des données d’entrée :

La classification

Il s’agit ici de déterminer dans quelle catégorie classer l’objet correspondant aux données d’entrée :

Notons qu’une classification peut être binaire (oui/non) ou multi-classe (race de ce chien).

Le clustering

C’est une application d’apprentissage non-supervisé. Le modèle va trouver des structures communes dans les données fournies pour les regrouper.

L’apprentissage par renforcement

Il agit par un système de récompense suite à une action. Il s’applique donc bien à l’apprentissage d’un système temps réel par exemple.

Outils pour le Machine Learning

Langages de programmation

Bien sûr, on peut faire du ML avec n’importe quel langage de programmation. D’ailleurs, l’un des MOOC de ML les plus recommandés pour les débutants depuis 2011 (Apprentissage Automatique par Andrew Ng, Coursera) est enseigné en Octave / Matlab, un langage destiné aux traitements mathématiques.

Mais depuis plusieurs années, les 3 langage les plus utilisés sont R, Julia et surtout Python.

Les librairies

Ces deux derniers frameworks sont les leaders actuellement. Le débat fait rage sur leurs qualités et avantages respectifs, mais on peut considérer que TensorFlow est plus utilisé en production pour sa compatibilité et sa scabilité tandis que PyTorch est plus utilisé en recherche et prototypage pour sa facilité de mise en œuvre.

Et le JavaScript ?

J’ai oublié de mentionner le JavaScript, car on n’envisage pas de prime abord l’entrainement de modèles de ML avec ce langage, par crainte des performances.

Mais en 2018, Google a sorti TensorFlow.js, une bibliothèque pour le machine learning avec JavaScript. Cette librairie permet d’utiliser des modèles JavaScript prêts à l'emploi ou de convertir des modèles TensorFlow codés en Python pour les exécuter dans un navigateur ou sous Node.js.

On peut également réentraîner des modèles existant ou en initier directement en JS (Des exemples très interactifs sont disponibles sur le site officiel).

Grands domaines du Machine Learning

Le NLP

Le traitement automatique du langage (TAL ou plus communément NLP pour “Natural Language Processing”) concerne la compréhension des mots et des phrases et permet maintenant aux modèles de ML de traiter de grandes quantités d'informations avant de fournir des réponses précises aux questions qui leur sont posées.

En 2018, Google lance BERT, un modèle de NLP qui a rencontré un grand succès et a été largement étendu depuis. En 2020, OpenAI annonce le lancement de GPT-3, un modèle de langage à 175 milliards de paramètres. L’intérêt offert par les mises à disposition de ces modèles, c’est de bénéficier de leur entraînement massif pour les soumettre à un “fine-tuning”, c’est à dire les adapter en quelques heures “seulement” pour d’autres tâches de NLP.

Parmi les tâches relevant du NLP, on peut citer :

La vision par ordinateur

La “Computer Vision” (souvent abrégée “CV”) traite de la façon dont les ordinateurs peuvent acquérir une compréhension de haut niveau à partir d’images ou de vidéos.

De la même façon que pour le NLP, les grandes entreprises travaillant dans ce domaine publient leurs recherches et des modèles pré-entrainés sur des jeux de données toujours plus énormes : les modèles les plus intéressants comme AlexNet, VGGNet, ResNet, Inception, Xception ou EfficientNet sont au fur et à mesure intégrés aux librairies comme Keras.

Il existe même des compétitions sur ce sujet : la “ImageNet Large Scale Visual Recognition Challenge” (ILSVRC) est une compétition annuelle où des équipes de recherche évaluent leurs algorithmes de traitement d'images sur le jeu de données ImageNet (un jeu de validation non accessible), et concourent pour obtenir la meilleure précision sur plusieurs tâches de vision par ordinateur.

Les applications de la vision par ordinateur comprennent :

On peut distinguer plusieurs façons d’appliquer la CV : le traitement d’images “offline” est très différent du traitement en temps réel, sur des flux vidéos en direct. En plus des librairies généralistes citées plus haut, il existe des outils spécialisés dans les traitements de vision par ordinateur, et notamment OpenCV et OpenVino.

Les interfaces vocales

L’essor des assistants vocaux a mis en avant les VUI (Voice User Interface). Il s’agit quasiment d’une combinaison de technologies issues des 2 domaines précédents : la parole enregistrée va être transformée via une modélisation acoustique sous la forme d’une image et cette image sera traitée via les mêmes types de réseaux de neurones qu’en vision par ordinateur, cette fois pour en déduire le mot prononcé.

Une fois la voix transformée en texte, le problème à résoudre relève des techniques utilisées en NLP.

Conclusion

J’ai essayé dans cet article de faire un large tour d’horizon du Machine Learning en 2022, sans entrer dans le détail ni la technique. Chacun des sujets évoqué ici pourrait à lui seul faire l’objet d’un article plus approfondi et j’espère vous avoir donné envie d’en apprendre plus...

Le Machine Learning (ML - “Apprentissage Automatique” en français) englobe les techniques visant à donner à une machine la capacité d’apprendre sans avoir été programmée explicitement. C’est donc un sous-ensemble de l’Intelligence Artificielle (IA), les techniques visant plus globalement à simuler l’intelligence humaine. Dans cette approche, on distingue généralement 2 phases :

Si les courbes ci-dessus ne vous parlent pas, imaginez qu’elles vous montrent le prix d’un logement par rapport à sa surface. Chaque point de nos données correspond à une vente passée et un agent immobilier pourrait en déduire un modèle pour vous prédire le prix de votre logement en fonction de sa surface.

Bien sûr, on sait que la surface n’est pas la seule donnée qui influe sur le prix d’un logement : la plupart des modèles de ML gèrent de très nombreuses données en entrée !

Différents types d’apprentissage

Historiquement, on a distingué 2 types principaux d’apprentissage :

On peut également mentionner l’apprentissage par renforcement : le modèle reçoit des bonus ou malus en fonction de ses réponses et va adapter son comportement pour optimiser ses bonus.

Applications de Machine Learning

Concrètement, quels types de problèmes peuvent résoudre des modèles de ML ?

La régression

C’est la prédiction d’une valeur réelle en fonction des données d’entrée :

La classification

Il s’agit ici de déterminer dans quelle catégorie classer l’objet correspondant aux données d’entrée :

Notons qu’une classification peut être binaire (oui/non) ou multi-classe (race de ce chien).

Le clustering

C’est une application d’apprentissage non-supervisé. Le modèle va trouver des structures communes dans les données fournies pour les regrouper.

L’apprentissage par renforcement

Il agit par un système de récompense suite à une action. Il s’applique donc bien à l’apprentissage d’un système temps réel par exemple.

Outils pour le Machine Learning

Langages de programmation

Bien sûr, on peut faire du ML avec n’importe quel langage de programmation. D’ailleurs, l’un des MOOC de ML les plus recommandés pour les débutants depuis 2011 (Apprentissage Automatique par Andrew Ng, Coursera) est enseigné en Octave / Matlab, un langage destiné aux traitements mathématiques.

Mais depuis plusieurs années, les 3 langage les plus utilisés sont R, Julia et surtout Python.

Les librairies

Ces deux derniers frameworks sont les leaders actuellement. Le débat fait rage sur leurs qualités et avantages respectifs, mais on peut considérer que TensorFlow est plus utilisé en production pour sa compatibilité et sa scabilité tandis que PyTorch est plus utilisé en recherche et prototypage pour sa facilité de mise en œuvre.

Et le JavaScript ?

J’ai oublié de mentionner le JavaScript, car on n’envisage pas de prime abord l’entrainement de modèles de ML avec ce langage, par crainte des performances.

Mais en 2018, Google a sorti TensorFlow.js, une bibliothèque pour le machine learning avec JavaScript. Cette librairie permet d’utiliser des modèles JavaScript prêts à l'emploi ou de convertir des modèles TensorFlow codés en Python pour les exécuter dans un navigateur ou sous Node.js.

On peut également réentraîner des modèles existant ou en initier directement en JS (Des exemples très interactifs sont disponibles sur le site officiel).

Grands domaines du Machine Learning

Le NLP

Le traitement automatique du langage (TAL ou plus communément NLP pour “Natural Language Processing”) concerne la compréhension des mots et des phrases et permet maintenant aux modèles de ML de traiter de grandes quantités d'informations avant de fournir des réponses précises aux questions qui leur sont posées.

En 2018, Google lance BERT, un modèle de NLP qui a rencontré un grand succès et a été largement étendu depuis. En 2020, OpenAI annonce le lancement de GPT-3, un modèle de langage à 175 milliards de paramètres. L’intérêt offert par les mises à disposition de ces modèles, c’est de bénéficier de leur entraînement massif pour les soumettre à un “fine-tuning”, c’est à dire les adapter en quelques heures “seulement” pour d’autres tâches de NLP.

Parmi les tâches relevant du NLP, on peut citer :

La vision par ordinateur

La “Computer Vision” (souvent abrégée “CV”) traite de la façon dont les ordinateurs peuvent acquérir une compréhension de haut niveau à partir d’images ou de vidéos.

De la même façon que pour le NLP, les grandes entreprises travaillant dans ce domaine publient leurs recherches et des modèles pré-entrainés sur des jeux de données toujours plus énormes : les modèles les plus intéressants comme AlexNet, VGGNet, ResNet, Inception, Xception ou EfficientNet sont au fur et à mesure intégrés aux librairies comme Keras.

Il existe même des compétitions sur ce sujet : la “ImageNet Large Scale Visual Recognition Challenge” (ILSVRC) est une compétition annuelle où des équipes de recherche évaluent leurs algorithmes de traitement d'images sur le jeu de données ImageNet (un jeu de validation non accessible), et concourent pour obtenir la meilleure précision sur plusieurs tâches de vision par ordinateur.

Les applications de la vision par ordinateur comprennent :

On peut distinguer plusieurs façons d’appliquer la CV : le traitement d’images “offline” est très différent du traitement en temps réel, sur des flux vidéos en direct. En plus des librairies généralistes citées plus haut, il existe des outils spécialisés dans les traitements de vision par ordinateur, et notamment OpenCV et OpenVino.

Les interfaces vocales

L’essor des assistants vocaux a mis en avant les VUI (Voice User Interface). Il s’agit quasiment d’une combinaison de technologies issues des 2 domaines précédents : la parole enregistrée va être transformée via une modélisation acoustique sous la forme d’une image et cette image sera traitée via les mêmes types de réseaux de neurones qu’en vision par ordinateur, cette fois pour en déduire le mot prononcé.

Une fois la voix transformée en texte, le problème à résoudre relève des techniques utilisées en NLP.

Conclusion

J’ai essayé dans cet article de faire un large tour d’horizon du Machine Learning en 2022, sans entrer dans le détail ni la technique. Chacun des sujets évoqué ici pourrait à lui seul faire l’objet d’un article plus approfondi et j’espère vous avoir donné envie d’en apprendre plus...

D'autres articles pour vous

Tous nos articles →