Tout savoir sur le machine learning

Le machine learning est une technique de programmation informatique qui utilise des probabilités statistiques pour donner aux ordinateurs la capacité d'apprendre par eux-mêmes sans programmation explicite. L’ objectif de base du machine learning est "d’apprendre à apprendre" aux ordinateurs – et par la suite, à agir et réagir – comme le font les humains, en améliorant leur mode d'apprentissage et leurs connaissances de façon autonome sur la durée. L'objectif ultime serait que les ordinateurs agissent et réagissent sans être explicitement programmés pour ces actions et réactions. Le machine learning utilise des programmes de développement qui s'ajustent chaque fois qu'ils sont exposés à différents types de données en entrée.

Saviez-vous que le Machine Learning faisait partie intégrante de la Data Science ? Découvrez leur lien dans notre article “Quelles différences entre Data Science et Machine Learning ?”

La réussite du machine learning réside dans l'entrée de volumes considérables de données dans l'ordinateur-étudiant. Pour apprendre, la machine a besoin de consommer des big data.

Un bon exemple de machine learning est la voiture autonome. Une voiture autonome est équipée de plusieurs caméras, plusieurs radars et d'un capteur lidar. Ces différents équipements assurent les fonctions suivantes :

  • Utiliser le GPS pour déterminer l'emplacement de la voiture en permanence et avec précision
  • Analyser la section de route située en avant de la voiture
  • Détecter les objets mobiles ou fixes situés sur l'arrière ou les côtés de la voiture

Ces informations sont traitées en permanence par un ordinateur central également installé dans la voiture. Cet ordinateur collecte et analyse en permanence des volumes considérables de données et les classe de la même manière que les réseaux neuronaux d'un cerveau humain. Pour guider la voiture dans son environnement, l'ordinateur prend des milliers de décisions par seconde en fonction de probabilités mathématiques et de ses observations : comment tourner le volant, quand freiner, accélérer, changer les vitesses, etc.

Trois catégories de machine learning

Le machine learning n'est pas une nouvelle technologie. Le premier réseau neuronal artificiel, appelé « Perceptron », a été inventé en 1958 par le psychologue américain Frank Rosenblatt.

Au départ, Perceptron devait être une machine, et non un algorithme. En 1960, il a été utilisé pour le développement de la machine de reconnaissance d'images « Mark 1 Perceptron ». Mark 1 Perceptron a été le premier ordinateur à utiliser des réseaux neuronaux artificiels (ANN) pour simuler la réflexion humaine et apprendre par essais et erreurs.

En raison de l’apparition des bibliothèques et des frameworks open source et grâce à l’augmentation de plusieurs milliards de fois de la puissance de traitement des ordinateurs entre 1956 et 2021, le machine learning s’est largement démocratisé. Aujourd'hui, le machine learning est partout : des transactions boursières à la protection contre les logiciels malveillants en passant par la personnalisation du marketing. Quel que soit son degré de complexité, le machine learning peut être classé en trois grandes catégories :

1. Machine learning supervisé

Le machine learning supervisé est une technologie élémentaire mais stricte. Les opérateurs présentent à l'ordinateur des exemples d'entrées et les sorties souhaitées, et l'ordinateur recherche des solutions pour obtenir ces sorties en fonction de ces entrées. Le but est que l'ordinateur apprenne la règle générale qui mappe les entrées et les sorties.

Le machine learning supervisé peut être utilisé pour faire des prédictions sur des données indisponibles ou futures (on parle alors de "modélisation prédictive"). L'algorithme essaie de développer une fonction qui prédit avec précision la sortie à partir des variables d'entrée – par exemple, prédire la valeur d'un bien immobilier (sortie) à partir d'entrées telles que le nombre de pièces, l'année de construction, la surface du terrain, l'emplacement, etc.

Le machine learning supervisé peut se subdiviser en deux types :

  • Classification : la variable de sortie est une catégorie.
  • Régression : la variable de sortie est une valeur spécifique.

Les principaux algorithmes du machine learning supervisé sont les suivants : forêts aléatoires, arbres de décision, algorithme K-NN (k-Nearest Neighbors), régression linéaire, algorithme de Naïve Bayes, machine à vecteurs de support (SVM), régression logistique et boosting de gradient.

2. Machine learning non supervisé

Dans le cadre du machine learning non supervisé, l'algorithme détermine lui-même la structure de l'entrée (aucune étiquette n'est appliquée à l'algorithme). Cette approche peut être un but en soi (qui permet de découvrir des structures enfouies dans les données) ou un moyen d'atteindre un certain but. Cette approche est également appelée « apprentissage des caractéristiques » (feature learning).

Un exemple de machine learning non supervisé est l'algorithme de reconnaissance faciale prédictive de Facebook, qui identifie les personnes sur les photos publiées par les utilisateurs.

Il existe deux types de machine learning non supervisé :

  • Clustering : l'objectif consiste à trouver des regroupements dans les données.
  • Association : l'objectif consiste à identifier les règles qui permettront de définir de grands groupes de données.

Les principaux algorithmes du machine learning non supervisé sont les suivants : K-Means, clustering/regroupement hiérarchique et réduction de la dimensionnalité.

3. Machine learning par renforcement

Dans le machine learning par renforcement, un programme informatique interagit avec un environnement dynamique dans lequel il doit atteindre un certain but, par exemple conduire un véhicule ou affronter un adversaire dans un jeu. Le programme-apprenti reçoit du feedback sous forme de « récompenses » et de « punitions » pendant qu'il navigue dans l'espace du problème et qu'il apprend à identifier le comportement le plus efficace dans le contexte considéré.

En 2013, c'était déjà un algorithme de machine learning par renforcement (Q-learning) qui s'était rendu célèbre en apprenant comment gagner dans six jeux vidéo Atari sans aucune intervention d'un programmeur.

Il existe deux types de machine learning par renforcement :

  • Monte Carlo : le programme reçoit ses récompenses à la fin de l'état « terminal ».
  • Machine learning par différence temporelle (TD) : les récompenses sont évaluées et accordées à chaque étape.

Les principaux algorithmes du machine learning par renforcement sont les suivants : Q-learning, Deep Q Network (DQN) et SARSA (State-Action-Reward-State-Action).

Machine learning et probabilités

Au stade actuel, toutes les formes de machine learning s'appuient sur les probabilités, ou plus précisément sur l'interprétation bayésienne de la probabilité que les événements ou actions ont de se produire ou pas.

Dans cet exemple, une machine détermine si le soleil se lève chaque jour ou non.

Jour 1. Le soleil va-t-il se lever aujourd'hui ? La probabilité que le soleil se lève est de 0,5, soit 50 %. Cette probabilité d'une sur deux (0,5) résulte du fait que seuls deux états sont possibles.

Jour 2. Le soleil s'est levé le jour 1, donc la probabilité a évolué : la machine sait maintenant que le soleil s'est levé une fois auparavant, mais elle n'a aucune garantie que cet événement va se reproduire aujourd'hui. La probabilité est passée à deux sur trois, soit 0,66 (66 %).

Du jour 3 au jour 6. Comme le soleil se lève tous les jours, la probabilité positive continue à augmenter.

Jour 7. À la fin de la semaine, la probabilité est d'environ 0,857, soit 85,7 %, que le soleil se lève le lendemain.

Fin de l'année. Le soleil s'est levé tous les jours : la probabilité qu'il se lèvera le lendemain est désormais de 0,997, soit plus de 99 %.

Il est important de noter que cette probabilité de lever du soleil ne peut jamais être de 1 % ou 100 % ; il existe toujours un risque infime que le soleil ne se lève pas le lendemain, même si cette valeur tend vers l'infiniment petit au fur et à mesure que les matins se répètent.

Trois types d'algorithmes du machine learning

Un algorithme est une séquence d'actions qui s'exécutent pour résoudre un problème, effectuer un réglage, etc. L'informatique utilise des algorithmes pour décrire les étapes détaillées nécessaires à l'exécution d'une opération. Le machine learning utilise de nombreux types d'algorithmes (en plus de ceux énumérés ci-dessus).

L'algorithme utilisé dépend de la complexité et du type de problème à résoudre ou d'action à exécuter. Il peut, par exemple, s'agir de clustering (examiner les regroupements de données) ou de régression (prédire une sortie sous forme de valeur réelle). Exemples d'algorithmes du machine learning :

Arbre de décision

Un arbre de décision est un type d'algorithme qui peut être appliqué à de nombreux contextes : grande distribution, finance, produits pharmaceutiques, etc. La machine se contente d’établir l’arborescence de divers résultats qui peuvent ou ne peuvent pas se produire, et suit chaque événement jusqu'à sa conclusion naturelle tout en calculant toutes les probabilités des événements pouvant se produire.

Par exemple, une banque pourra utiliser des algorithmes d'arbre de décision pour décider si elle finance tel ou tel emprunt. Les compagnies pharmaceutiques utilisent ces algorithmes pendant leurs tests pour calculer la probabilité des effets secondaires et le coût moyen du traitement.

Forêts aléatoires

La forêt aléatoire est un autre algorithme utilisé très couramment. Cet algorithme construit plusieurs arbres de classification et de régression (CART, Classification and Regression Tree), chaque arbre étant associé à différents scénarios et différentes variables initiales. L'algorithme est randomisé, ce qui n'est pas le cas des données. Ce type d'algorithme est utilisé pour la modélisation prédictive de classification et de régression.

Par exemple, vous disposez de 1 000 observations sur une population, avec 10 variables. Pour construire le modèle CART à utiliser, l'algorithme de forêt aléatoire va prendre un échantillon aléatoire de 100 observations et 5 variables au hasard. L'algorithme répète ce processus à de nombreuses reprises, puis il fait une prédiction finale sur chaque observation. La prédiction finale n'est qu'une fonction correspondant à la somme des différentes prédictions.

Algorithmes K-Means

Les K-Means sont des algorithmes de machine learning sans supervision qui sont utilisés pour résoudre des problèmes de clustering. Ils divisent et classent un ensemble de points de données non affectés d'un label (sans classification externe) en un groupe appelé « cluster » (sans rapport avec les clusters de serveurs). Chaque itération de l'algorithme assigne chaque point à un groupe présentant des caractéristiques similaires. Les points de données peuvent être suivis dans le temps pour détecter les changements qui se produisent dans les clusters.

Les algorithmes K-Means peuvent confirmer des hypothèses sur les types de groupes qui existent dans un dataset spécifique, ou être utilisés pour découvrir des clusters inconnus. Parmi les cas d'usage commerciaux, citons le regroupement de l'inventaire par activité commerciale et la détection d'anomalies dans des données – par exemple, les données brutes collectées par un bot (robot logiciel).

Apache Spark et le machine learning

Apache Spark est un framework distribué ultra-rapide spécialisé dans le traitement des big data. Apache Spark dispose de modules intégrés pour le machine learning, SQL, l'analyse en continu (Spark Streaming) et le traitement des graphiques (GraphX).

L'écosystème Spark inclut également MLlib, une bibliothèque de machine learning qui accélère et améliore constamment les processus de données tels que la classification, la régression, le clustering, etc. Spark peut, par exemple, alimenter des pipelines de données intelligents qui relient des données en temps réel et des données par lots pour des analyses en temps réel et des activités de Business Intelligence à la pointe de la technologie.

Talend vous propose de profiter de toute la puissance du machine learning dès aujourd'hui.

Talend et le machine learning

La plate-forme Talend est la première solution d'intégration des big data construite sur Hadoop et Apache Spark. Un seul outil regroupe des composants de développement prédéfinis et gérables par glisser-déposer et les classificateurs de machine learning de Spark. Des outils graphiques et des Assistants génèrent du code natif qui permet de configurer votre entreprise avec Hadoop et Apache Spark en quelques minutes.

Les solutions Talend facilitent la synergie entre les différents acteurs de l'entreprise (dirigeants, commerciaux, spécialistes IT, data scientists...) et vous aident à déployer les modèles de machine learning essentiels à vos futurs succès. Pour plus de détails, consultez cet article de blog (en anglais) : How to Operationalize Machine Learning.

Prêt à faire vos premiers pas avec Talend ?