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]:
Le machine learning peut également être défini comme:
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 trois principaux types du Machine Learning sont les suivants:
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.
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.
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.
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.
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.
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 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 |
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.
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.
Références