Qu'est-ce que le Machine Learning (Apprentissage Automatique).

Publié: 15-06-2019

Machine Learning (ML) fait référence à la science et à l'ingénierie de la construction de machines capables d'effectuer diverses tâches utiles sans être explicitement programmé à cet effet. Les algorithmes ML peuvent en réalité trouver des informations dans les données même s'ils ne sont pas spécifiquement informés de ce qu'il faut rechercher dans ces données. Et c'est ce qui sépare un algorithme ML d'un programme informatique typique. Vous ne faites que donner à l'algorithme ML un ensemble de règles à suivre au lieu de lui indiquer réellement ce qu'il faut rechercher. Il trouvera l'information par lui-même.

Tom Mitchell a défini le Machine Learning dans son livre comme suit[1]:

Un programme d'ordinateur apprend de l'expérience E en ce qui concerne certaines classes de tâches T et mesure de la performance P, si ses performances aux tâches T, mesurées par P, s'améliorent avec l'expérience E.

Le machine learning peut également être défini comme:

L'apprentissage automatique fait référence à des algorithmes d'apprentissage statistiques capables de créer des abstractions généralisables (modèles) en visualisant et en disséquant un jeu de données.

Par exemple, considérons le problème d’apprentissage de la reconnaissance de l’écriture manuscrite. La tâche à effectuer T consiste à reconnaître et à classer les mots manuscrits dans les images. La mesure de performance P dans cet exemple est le pourcentage de mots correctement classés. L'expérience d'apprentissage E peut être une base de données de mots manuscrits avec des classifications données. En d'autres termes, nous donnons au programme beaucoup d'images de mots manuscrits, et à chaque image, nous donnons le mot écrit correspondant, ou ce que l'on appelle <label/étiquette>. Notre programme aura l'expérience E de toutes ces images pour pouvoir augmenter sa performance P pour mener à bien sa tâche T.

Dans son livre récent, Andriy Burkov a défini le Machine Learning comme suit[2]:

Les algorithmes ML trouvent une formule mathématique qui, lorsqu'elle est appliquée à un ensemble d'entrées (appelées «données d'apprentissage»), produit les sorties souhaitées. Cette formule mathématique génère également les sorties correctes pour la plupart des autres entrées (distinctes des données d'apprentissage) à condition que ces entrées proviennent de la même distribution ou d'une distribution statistique similaire à celle à partir de laquelle les données d'apprentissage ont été extraites.

Les trois principaux types du Machine Learning sont les suivants:

  • Apprentissage supervisé (Supervised learning)
  • Apprentissage non supervisé (Unsupervised learning)
  • Apprentissage par renforcement (Reinforcement learning)

Apprentissage supervisé

L'apprentissage supervisé utilise des données étiquetées pour prédire l'étiquette en fonction de certaines caractéristiques, et c'est la partie la plus importante.
Le fait est que les données sont étiquetées. Par conséquent, chaque fois que vous pensez à un apprentissage supervisé, pensez à des étiquettes. si les étiquettes sont continues, cela s'appelle le problème de régression et si les étiquettes sont catégoriques, c'est un problème de classification.

Classification

La classification est un problème d'apprentissage supervisé. Un exemple de classification serait que vous avez certaines caractéristiques telles que la taille et le poids, et l'étiquette pourrait être quelque chose comme le sexe. Votre tâche consiste donc à prédire le sexe d'une personne en fonction de sa taille et de son poids. Donc, dans une tâche de classification, vous prédisez une catégorie.

Regression

Un problème de régression est également une technique d'apprentissage supervisé. Dans le problème de la régression, l’étiquette est continue au lieu d’être catégorique (ex: masculin et féminin). Par exemple, vous avez des caractéristiques de la maison telles que le nombre de pièces et la superficie en pieds carrés, et vous devez prédire son prix. Le prix ici est une valeur continue (nombre).

Ainsi, l'apprentissage supervisé doit entraîner le modèle sur des données historiques déjà étiquetées, telles que celles des ventes de maisons précédentes. Une fois que le modèle est bien entraîné sur ces données historiques, il peut être utilisé pour de nouvelles données.
La figure ci-dessous résume la différence entre régression et classification.

Dans l'apprentissage supervisé, l'ensemble de données est la collection d'exemples étiquetés $$\big\{(xi, yi)\big\}_{i=1}^N $$ Chaque élément x_i parmi N est appelé un vecteur de caractéristiques.
Un vecteur de caractéristiques est un vecteur dans lequel chaque dimension j = 1,. . . , D contient une valeur qui décrit d’une certaine manière l’exemple. Cette valeur s'appelle une caractéristique et est notée: $$x^{(j)}.$$ Par exemple, un tuple de cet ensemble de données peut contenir ce qui suit: $$x_1 = \big[x_1^1,x_1^2,x_1^3\big] \; \; \; \text{, } \; y_1 = \big[\text{'Mâle'}\big]$$ tel que: $$x_1^1 \Rightarrow age = 25$$ $$x_1^2 \Rightarrow poids = 75$$ $$x_1^3 \Rightarrow taille = 170$$

Apprentissage non supervisé

Que faire si vous n'avez pas d'étiquettes historiques pour vos données?. Puisque nous n’avons pas la "bonne réponse" pour nous adapter, nous devons rechercher des modèles dans les données et trouver une structure.

Le clustering est un exemple d'apprentissage non supervisé. Supposons que vous disposiez d'un jeu de données contenant la taille et le poids pour les races de chiens et que vous ne disposiez pas d'étiquettes (races de chiens). Notre tâche ici est de regrouper les données dans des groupes similaires. Ces groupes sont ensuite interprétés par un scientifique pour déterminer ce que chaque groupe/cluster signifie réellement.

Vous devriez noter que le clustering n'est pas réellement capable de vous dire ce que les étiquettes de groupe devraient être. Tout ce qu'il peut vous dire est que ces points dans chaque groupe sont semblables les uns aux autres en fonction de caractéristiques.
Notez que le clustering n'est pas le seul type d'apprentissage non supervisé, il existe d'autres types tels que la segmentation et la réduction de la dimensialité. Nous aborderons ces sujets dans les prochains postes.

Dans l'apprentissage non supervisé, le jeu de données est un ensemble d'exemples non étiquetés: $$\big\{ x_i \big\}_{i=1}^N$$ x est un vecteur de caractéristiques et l'objectif d'un algorithme d'apprentissage non supervisé est de créer un modèle qui prend un vecteur de caractéristiques x en entrée et le transforme en un autre vecteur ou en une valeur pouvant être utilisée pour résoudre un problème concret. Par exemple, lors de la mise en cluster, le modèle renvoie l'id du cluster pour chaque vecteur d'entités du jeu de données.

Apprentissage par renforcement

Qu'en est-il des tâches d'apprentissage machine telles que apprendre à un ordinateur à jouer à un jeu vidéo, à conduire une voiture, etc.

L'apprentissage par renforcement ne ressemble pas à un apprentissage supervisé ou à un apprentissage non supervisé. Cela fonctionne par essais et erreurs. L'apprentissage par renforcement est une approche d'intelligence artificielle qui met l'accent sur l'apprentissage du système à travers ses interactions avec l'environnement. Avec l'apprentissage par renforcement, le système adapte ses paramètres en fonction du retour d'information reçu de l'environnement, qui fournit ensuite un retour d'information sur les décisions prises.
Donc, s’agissant de l’apprentissage par renforcement, il ya trois composantes principales: l’agent, l’environnement et les actions.

  • Agent: apprentissage, décideur
  • Environnement: avec quoi l'agent interagit
  • Actions: ce que l'agent peut faire

Le système d'apprentissage, appelé agent dans ce contexte, peut observer l'environnement, sélectionner et exécuter des actions et obtenir des récompenses en retour (ou des pénalités sous la forme de récompenses négatives). Il doit ensuite apprendre par lui-même quelle est la meilleure stratégie, appelée politique, pour obtenir le meilleur rendement au fil du temps. Une stratégie définit l'action que l'agent doit choisir lorsqu'il se trouve dans une situation donnée[3].

Par exemple, si vous formez l'agent à apprendre à jouer à un jeu vidéo, l'environnement correspond aux pixels réels à l'écran et l'action correspond au bouton sur lequel appuyer en fonction de l'environnement. La récompense ici, peut-être un score élevé. Un autre exemple est un système qui modélise un joueur d'échecs, qui utilise le résultat de ses mouvements précédents pour améliorer ses performances. C'est un système qui apprend avec le renforcement.

L'apprentissage par renforcement est un sous-champ d'apprentissage automatique (machine learning) dans lequel la machine "vit" dans un environnement et est capable de percevoir l'état de cet environnement comme un vecteur de caractéristiques. La machine peut exécuter des actions dans tous les états. Différentes actions apportent des avantages divers et peuvent également déplacer la machine dans un autre état de l'environnement. Le but d'un algorithme d'apprentissage par renforcement est d'apprendre une politique. Une règle est une fonction f (similaire au modèle de l’apprentissage supervisé) qui prend en entrée le vecteur de caractéristiques d’un état et génère une action optimale à exécuter dans cet état. L'action est optimale si elle maximise la récompense moyenne attendue[2].

Apprentissage semi-supervisé

L'apprentissage semi-supervisé est une branche d'apprentissage automatique qui essaie de résoudre les problèmes avec les données étiquetées et non étiquetées avec une approche qui utilise des concepts appartenant aux méthodes de clustering et de classification. La haute disponibilité des échantillons non étiquetés, contrairement à la difficulté d'étiqueter correctement des ensembles de données énormes, a conduit de nombreux chercheurs à étudier les meilleures approches qui permettent d'étendre les connaissances fournies par les échantillons étiquetés à une population non étiquetée plus grande sans perte de précision.

Andriy Burkov a défini l'apprentissage semi-supervisé comme suit[2]:

Dans l'apprentissage semi-supervisé, l'ensemble de données contient des exemples étiquetés et non étiquetés. Habituellement, la quantité d'exemples non étiquetés est beaucoup plus élevée que le nombre d'exemples étiquetés. L'objectif d'un algorithme d'apprentissage semi-supervisé est le même que l'objectif de l'algorithme d'apprentissage supervisé. L'espoir ici est que l'utilisation de nombreux exemples non étiquetés peut aider l'algorithme d'apprentissage à trouver (nous pourrions dire «produire» ou «calculer») un meilleur modèle.



Le tableau ci-dessous résume les principales familles d'apprentissage automatique en plus de citer certaines techniques dans chaque famille.

Machine Learning
supervisé non supervisé semi-supervisé renforcement
Généralement utilisé pour -Régression
-Classification
-Maintenance prédictive
-Regroupement (clustering)
-Association
-réduction de dimension
-Regroupement (clustering)
-Classification
-Classification
-Contrôle
Exemple de techniques -Réseaux de neurones artificiels
-K nearest neighbors
-SVM
- Kmeans
-PCA
-Kohonen maps
-Maximum likelihood learning
-Modèles génératifs
-Q learning
-Multi-armed bandits
- Markov decision process


Processus d'apprentissage automatique pour les problèmes d'apprentissage supervisé

La figure ci-dessous montre à quoi ressemble un modèle ML simple.

La première chose à faire est d’acquérir les données. Maintenant, cela dépend vraiment de la tâche que vous essayez de résoudre. Si vous souhaitez par exemple classer les images de chiens et de chats, vous devez collecter des images de chiens et de chats. Si cela ressemble à un problème de régression, vous devez acquérir par exemple les ventes de maisons précédentes.

L'étape suivante consiste à nettoyer et organiser les données. Par exemple, nettoyer les images ou enlever les bords, ou simplement garder le visage des chiens et des chats et enlever le corps. Un autre exemple concerne les valeurs manquantes dans vos données, la suppression du bruit ou la normalisation des données. Il y a beaucoup de travail à faire dans cette étape, la majeure partie de votre temps est consacrée au nettoyage des données.

Dans la troisième étape, vous diviserez vos données en données d’entraînement et en données de test. Vous pouvez maintenant utiliser de nombreux ratios de fractionnement. Un taux de fractionnement très courant consiste à avoir 30% de vos données à tester et 70% des données à entraîner. Mais cela dépend vraiment de la situation, de l’organisation des données, de l’accès aux données, etc.
Les données d'apprentissage/entraînement constituent la base de connaissances utilisée pour ajuster les paramètres de l'algorithme d'apprentissage automatique. Les données de test sont utilisées pour évaluer les performances du modèle sur des données inconnues.

Après avoir divisé les données, vous allez maintenant former votre modèle avec les données d’entraînement. Il s’agit de rechercher des paramètres minimisant une fonction objective et d’obtenir les hyperparamètres d’une fonction renvoyant l’erreur minimale lors de la prédiction.

Après avoir formé votre modèle, il devient temps d'évaluer ce modèle. Et c'est là que cet ensemble de tests entre en jeu. Maintenant, la raison pour laquelle nous utilisons cet ensemble de tests séparé est que nous ne trichons pas, car le modèle a déjà été formé sur l'ensemble d'entraînement. Nous voulons l’évaluer équitablement par rapport à des données qu’il n’avait jamais vues auparavant, comme il le ferait dans le monde réel. Donc, vous entraînez votre modèle sur ces données d'entraînement et évaluez votre modèle sur des données qu'il n'a jamais vues auparavant, telles que cet ensemble de tests.

Une fois que vous avez terminé, ajustez les paramètres du modèle pour mieux s’adapter à cet ensemble de tests. Donc, entraînez à nouveau votre modèle sur les données d'apprentissage, évaluez ses performances sur cet ensemble de tests, puis vous pourrez effectuer des ajustements et répéter ce cycle pour être satisfait de votre modèle.

Une fois que vous êtes satisfait de votre modèle, vous pouvez le déployer et commence à prédire de nouvelles données.

Ensemble de réserve/évaluation

Une autre approche consiste à utiliser un ensemble de réserve/évaluation. Après avoir nettoyé les données, nous devons les diviser en trois ensembles: formation, test et réserve/évaluation. Et encore une fois, les rapports entre les ensembles de formation, de test et d’évaluation dépendent vraiment de la situation. Nous formons notre modèle sur l'ensemble d'entraînement, nous utilisons l'ensemble de tests pour ajuster le modèle et une fois que nous sommes prêts à déployer le modèle, nous avons l'ensemble de réserve/évaluation.

À présent, le but de l'ensemble de réserve/évaluation est d'essayer d'obtenir une sorte de métrique finale ou une idée de la performance de votre modèle. Vous pouvez penser que vous n'essayez plus de tricher avec les données de test, car techniquement, nous avons également ajusté les paramètres du modèle par rapport aux données de test. Nous n'avons toujours pas une idée précise de la performance du modèle par rapport à des données qui n'ont jamais été vues auparavant et pour lesquelles aucun ajustement n'a été effectué. Maintenant, l’idée principale ici est qu’une fois que vous avez évalué votre modèle par rapport à l'ensemble de réserve/évaluation, vous n’êtes plus autorisé à revenir en arrière et à ajuster les paramètres du modèle. Le but de cet ensemble d’évaluations est d’obtenir une sorte de rapport final, une sorte de métrique finale vous permettant de savoir que lorsque vous déployez ce modèle dans le monde réel, c’est le type de métrique auquel nous nous attendons, car Le modèle n'a vraiment jamais vu ces données auparavant et les paramètres n'ont jamais été ajustés pour ces données.

Notez que ce ne sont pas les seules approches utilisées. Vous pouvez trouver d'autres approches différentes que nous couvrirons dans des postes ultérieures, telles que le fractionnement des données en ensembles de formation, de validation et de test.

Processus d'apprentissage automatique pour les problèmes d'apprentissage non supervisé

Dans l'apprentissage non supervisé, les jeux de données n'ont pas d'étiquette. Dans ce cas, nous n'allons pas diviser nos données, car il n’a pas vraiment de sens d’évaluer votre modèle par rapport à certains tests car vous ne connaissez pas les étiquettes correctes à évaluer. En conséquence, nous allons utiliser toutes les données en tant que données d'apprentissage, puis nous allons évaluer le modèle par rapport aux données d'apprentissage en utilisant une sorte de métrique d'apprentissage non supervisée.

Références

  • [1] Tom M. Mitchell - Machine Learning
  • [2] Andriy Burkov - The hundred-page Machine Learning
  • [3] Aurélien Géron - Hands on Machine Learning with Scikit-Learn, Keras, and TensorFlow