L'apprentissage non supervisé - MATLAB & Simulink

Apprentissage non supervisé

L'apprentissage non supervisé

L'apprentissage non supervisé est un type de technique de Machine Learning qui tire des conclusions à partir de données non labellisées. L'apprentissage non supervisé vise à identifier des patterns et des relations cachés dans les données, sans aucune supervision ou connaissance préalable des résultats.

Comment fonctionne l'apprentissage non supervisé

Les algorithmes d'apprentissage non supervisé détectent des patterns, des structures et des regroupements cachés dans les données, sans aucune connaissance préalable des résultats. Ces algorithmes s'appuient sur des données non labellisées, c'est-à-dire des données sans étiquettes prédéfinies.

En règle générale, un processus d'apprentissage non supervisé se découpe de la manière suivante : la préparation des données, l'application de l'algorithme d'apprentissage non supervisé approprié et enfin, l'interprétation et l'évaluation des résultats. Cette approche est particulièrement utile pour des tâches telles que le clustering, dont l'objectif est de regrouper des points de données similaires, et la réduction de la dimensionnalité, qui simplifie les données en réduisant le nombre de caractéristiques (dimensions). En analysant la structure inhérente des données, l'apprentissage non supervisé permet de mieux comprendre vos jeux de données.

L'apprentissage non supervisé peut également être appliqué avant l’apprentissage supervisé pour identifier les caractéristiques durant l'analyse exploratoire des données et établir des classes basées sur des regroupements. Ce processus fait partie de l’ingénierie des caractéristiques, qui consiste à transformer des données brutes en caractéristiques adaptées au Machine Learning supervisé.

Un ensemble de formes de couleurs différentes (données non labellisées) est introduit dans un algorithme d'apprentissage non supervisé, qui produit en sortie trois groupes homogènes (classes).

Organisation de données non labellisées en groupes à l'aide de l'apprentissage non supervisé.

Types de méthodes d'apprentissage non supervisé

Clustering

Le clustering est la méthode d'apprentissage non supervisé la plus courante et permet de comprendre le regroupement naturel ou la structure inhérente d'un jeu de données. Il est utilisé pour l'analyse exploratoire des données, la reconnaissance de formes, la détection d'anomalies, la segmentation d’images, etc. Les algorithmes de clustering, tels que le clustering k-means ou le clustering hiérarchique, regroupent les points de données de manière à ce que les points de données d'un même groupe (ou cluster) soient plus similaires entre eux qu’avec les points de données d'autres groupes.

Par exemple, si une entreprise de téléphonie cellulaire souhaite optimiser les sites où elle construit ses antennes, elle peut utiliser le Machine Learning pour estimer le nombre de clusters de personnes dépendant de ses infrastructures. Un téléphone ne peut communiquer qu'avec une seule antenne à la fois. L'équipe utilise donc des algorithmes de clustering pour définir les meilleurs emplacements d’antennes afin d'optimiser la réception du signal pour des groupes plus ou moins larges de clients.

Un tracé avec des points non labellisés est soumis au clustering, un type d'apprentissage non supervisé, ce qui permet d'obtenir trois clusters de points de données codés par couleur.

Utilisation du clustering pour trouver des patterns cachés dans vos données.

Le clustering se divise en deux catégories principales :

  • Le hard clustering ou clustering exclusif, où chaque point de données appartient à un seul cluster, comme dans le cas de la méthode répandue k-means.
  • Le soft clustering ou clustering avec chevauchement, où chaque point de données peut appartenir à plusieurs clusters, comme dans les modèles de mélange gaussien.

Les algorithmes de clustering les plus répandus sont les suivants :

  • Le clustering hiérarchique construit une hiérarchie de clusters à plusieurs niveaux en créant une arborescence de clusters.
  • Le clustering k-means partitionne les données en k clusters distincts en fonction de la distance au centroïde d'un cluster.
  • Le modèle de mélange gaussien forme des clusters comme un mélange de composantes à densité normale multivariée.
  • Le clustering spatial basé sur la densité des applications avec bruit (DBSCAN) regroupe les points proches les uns des autres dans des zones de forte densité, tout en continuant à suivre les valeurs aberrantes des régions de faible densité. Il peut traiter des formes arbitraires non convexes.
  • Les cartes auto-organisatrices utilisent des réseaux de neurones qui apprennent la topologie et la distribution des données.
  • Le clustering spectral transforme les données d'entrée en une représentation graphique où les clusters sont mieux séparés que dans l'espace de caractéristiques d'origine. Le nombre de clusters peut être estimé en étudiant les valeurs propres du graphe.
  • Des chaînes de Markov cachées peuvent être utilisées pour découvrir des motifs dans des séquences, par exemple des gènes et des protéines en bio-informatique.
  • Le clustering fuzzy c-means (FCM) regroupe les données en N clusters, chaque point de données du jeu de données étant caractérisé par un degré d'appartenance à chaque cluster.

Le clustering est utilisé dans diverses applications, telles que la segmentation d'images, la détection d'anomalies et la reconnaissance de formes.

Un tracé 2D indiquant les mesures de longueur et de largeur de pétale des trois espèces d'iris, et un tracé montrant les trois clusters résultants en utilisant le clustering par modèle de mélange gaussien.

À gauche : diagramme de dispersion MATLAB des mesures des pétales de plusieurs spécimens de trois espèces d'iris. À droite : les mesures des pétales ont été segmentées en trois clusters en utilisant la technique de clustering par modèle de mélange gaussien (GMM).

Réduction de la dimensionnalité

Les données multivariées comprennent souvent un grand nombre de variables ou de caractéristiques. Cela peut avoir une incidence sur le run time et les besoins en mémoire. Les techniques de réduction de la dimensionnalité réduisent le nombre de caractéristiques (dimensions) tout en conservant les informations nécessaires des données d'origine. L'utilisation de la réduction de la dimensionnalité avec l'apprentissage non supervisé peut contribuer à réduire la charge de calcul et à augmenter la vitesse et l'efficacité des algorithmes de Machine Learning.

Une autre difficulté inhérente aux données comportant de nombreuses variables est le problème de leur visualisation. En simplifiant les données sans perdre d'informations significatives, les techniques de réduction de la dimensionnalité facilitent cette visualisation ainsi que l’analyse.

Prenons l'exemple de données d'activité humaine comportant 60 dimensions, collectées à l'aide d'accéléromètres de smartphone au cours de cinq activités différentes (assis, debout, marche, course et danse). La dimensionnalité élevée rend ces données difficiles à visualiser et à analyser. Grâce à la réduction de la dimensionnalité, vous pouvez ramener ces dimensions à deux ou trois seulement, sans perdre d'informations significatives.

Voici quelques méthodes populaires d'apprentissage non supervisé pour réduire la dimensionnalité :

  • L’analyse en composantes principales (ACP) transforme les données en un ensemble de composantes orthogonales qui capturent la variance maximale avec moins de variables. Les nouvelles variables sont appelées composantes principales. Chaque composante principale est une combinaison linéaire des variables d'origine. La première composante principale est un axe unique dans l'espace. Lorsque vous projetez chaque observation sur cet axe, les valeurs résultantes forment une nouvelle variable, et la variance de cette variable est le maximum parmi tous les choix possibles du premier axe. La deuxième composante principale est un autre axe dans l'espace, perpendiculaire au premier. La projection des observations sur cet axe génère une autre nouvelle variable. La variance de cette variable est le maximum parmi tous les choix possibles de ce deuxième axe. L'ensemble complet des composantes principales est aussi grand que l'ensemble de variables d'origine, mais souvent les premières composantes capturent plus de 80 % de la variance totale des données d'origine.
  • L’intégration de voisins stochastiques distribués en t (t-SNE) est bien adaptée à la visualisation des données à dimensionnalité élevée. Elle intègre des points de données à dimensionnalité élevée dans de faibles dimensions tout en préservant les similitudes entre les points. Vous pouvez généralement visualiser les points à faible dimensionnalité pour révéler les clusters naturels dans les données à dimensionnalité élevée d'origine.
  • L’analyse factorielle est un moyen d'adapter un modèle à des données multivariées afin d'estimer l'interdépendance entre les variables en identifiant les facteurs sous-jacents qui expliquent les corrélations observées entre les variables. Dans cette technique d'apprentissage non supervisé, les variables mesurées dépendent d'un plus petit nombre de facteurs non observés (latents). Chaque facteur pouvant affecter plusieurs variables à la fois, ils sont appelés facteurs communs. Chaque variable est supposée être le résultat d'une combinaison linéaire des facteurs communs, et les coefficients sont appelés charges factorielles. Chaque variable mesurée comprend également une composante due à la variabilité aléatoire indépendante, appelée variance spécifique, car elle est propre à une variable.
  • Les autoencodeurs sont des réseaux de neurones entraînés à répliquer leurs données d'entrée. Ils peuvent être utilisés pour différents types de données, notamment des images, des séries temporelles et du texte. Les autoencodeurs sont utiles dans de nombreuses applications, telles que la détection d'anomalies, la génération de texte, la génération d'images, le débruitage d'images et les communications numériques. Ils sont souvent utilisés pour la réduction de la dimensionnalité. Un autoencoder est constitué de deux sous-réseaux : un encodeur et un décodeur. Lors de l'apprentissage, l'encodeur apprend un ensemble de caractéristiques, appelé représentation latente, à partir des données d'entrées. Dans le même temps, le décodeur est entraîné à reconstruire les données à partir de ces caractéristiques.
Un autoencodeur détecte une anomalie (un « r » rouge) dans une image (fond blanc avec motif de points noirs et un « r » rouge).

Détection d'anomalies à partir d'images à l'aide d'un autoencodeur.

Règles d'association

L'apprentissage de règles d'association permet d'identifier des relations intéressantes entre des variables dans de grandes bases de données. Par exemple, les règles d'association peuvent être utilisées sur des données transactionnelles pour identifier les articles les plus susceptibles d'être achetés ensemble par les utilisateurs. Les algorithmes utilisés dans l'extraction de règles d'association sont les suivants :

  • Les algorithmes Apriori identifient les ensembles d'articles fréquents dans les données en effectuant un parcours en largeur, puis génèrent des règles d'association à partir de ces ensembles d'éléments.
  • Les algorithmes ECLAT (Equivalence class clustering and bottom-up lattice traversal) utilisent une stratégie de parcours en profondeur pour trouver des ensembles d'éléments fréquents.

Les règles d'association trouvent leurs applications les plus courantes dans l'analyse des habitudes d’achat, mais elles peuvent également être utilisées pour la maintenance prédictive. Par exemple, sur la base des données de différents capteurs, il est possible d'utiliser des algorithmes pour identifier un modèle de défaillance et créer des règles pour prédire la défaillance d'un composant.

L'apprentissage semi-supervisé et le classement de caractéristiques non supervisé sont d'autres méthodes qui appliquent l'apprentissage non supervisé. L'apprentissage semi-supervisé réduit le besoin en données labellisées dans l'apprentissage supervisé. Le clustering appliqué à l’ensemble du jeu de données établit une similarité entre les données labellisées et non labellisées, et les étiquettes sont propagées aux membres des clusters similaires et non labellisés précédemment. Le classement de caractéristiques non supervisé consiste à attribuer des scores aux caractéristiques sans objectif ou résultat précis de prédiction.

Pourquoi l'apprentissage non supervisé est important

L'apprentissage non supervisé, un domaine majeur du Machine Learning et de l'intelligence artificielle, joue un rôle crucial dans l'exploration et la compréhension des données. Contrairement à l'apprentissage supervisé, qui s'appuie sur des données labellisées pour entraîner des modèles, l'apprentissage non supervisé repose sur des données non labellisées. Il se révèle donc particulièrement utile dans les scénarios concrets où la labélisation des données est souvent coûteuse, longue ou peu pratique.

En découvrant des patterns, des structures et des relations cachés dans les données, l'apprentissage non supervisé permet aux entreprises et aux chercheurs d'obtenir des informations pertinentes auparavant inaccessibles. Les tâches courantes de l'apprentissage non supervisé comprennent la reconnaissance de formes, l'analyse exploratoire des données, la segmentation, la détection d'anomalies et la réduction de dimensionnalité.

Différence entre l'apprentissage supervisé et l'apprentissage non supervisé

L’apprentissage supervisé consiste à entraîner un modèle sur un jeu de données labellisés afin d'effectuer une classification ou une régression. Cela signifie que chaque exemple d'apprentissage est associé à une sortie connue. Le modèle est entraîné à faire des prédictions sur la base d'un jeu de données connu (appelé jeu de données d'apprentissage) avec un ensemble connu de données d'entrée (appelées caractéristiques) et des réponses connues. Par exemple, l'apprentissage supervisé peut servir à prédire le prix de vente d'une maison en fonction de certaines caractéristiques telles que la taille et le nombre de pièces. Les modèles de Machine Learning les plus courants sont la régression linéaire, la régression logistique, les k plus proches voisins (KNN) et les machines à vecteurs de support (SVM). Les modèles de Deep Learning sont également entraînés en utilisant de grands jeux de données labellisées et peuvent souvent apprendre des caractéristiques, directement à partir des données, sans qu'il soit nécessaire de les extraire manuellement.

En revanche, l'apprentissage non supervisé porte sur des données non labellisées. L'algorithme d'apprentissage non supervisé tente de déterminer la structure sous-jacente des données sans aucune connaissance préalable. L'objectif principal de l'apprentissage non supervisé est d'identifier des patterns cachés ou des structures intrinsèques dans les données d'entrée. Un exemple concret d'apprentissage non supervisé serait de regrouper des fruits en fonction de leur couleur, de leur taille et de leur goût, sans savoir à l’avance à quelle catégorie ils appartiennent. Les algorithmes courants d'apprentissage non supervisé comprennent les méthodes de clustering telles que k-means, le clustering hiérarchique et les techniques de réduction de la dimensionnalité telles que l’analyse en composantes principales (ACP).

Les résultats de l'apprentissage non supervisé sont généralement moins précis que ceux de l'apprentissage supervisé en raison de l'absence de données labellisées. Cependant, l'acquisition de données labellisées nécessite une intervention humaine et peut prendre du temps, voire être impossible dans certains cas, comme pour les données biologiques. La labélisation de données de vérité terrain peut également nécessiter une connaissance du domaine, en particulier lorsqu'il s'agit de labéliser des données complexes et non des images d'objets courants.

Les techniques de Machine Learning : apprentissage non supervisé (clustering) et apprentissage supervisé (classification et régression).

L'apprentissage supervisé et l'apprentissage non supervisé sont des types de Machine Learning.

Exemples d'apprentissage non supervisé

La capacité de l'apprentissage non supervisé à identifier des patterns et des relations cachés sans avoir besoin d'étiquettes prédéfinies en fait un outil indispensable dans diverses applications, notamment :

  • Analyse exploratoire des données : Les techniques d'apprentissage non supervisé sont fréquemment utilisées pour explorer les données afin de découvrir des structures inhérentes cachées et d'en tirer des enseignements. Par exemple, l'analyse factorielle peut être utilisée pour déterminer si les entreprises d'un même secteur connaissent des variations similaires du cours de leurs actions d'une semaine à l'autre.
  • Détection d'anomalies : Les méthodes d'apprentissage non supervisé telles que les forêts d'isolement (isolation forests) et les modèles de mélange gaussien (GMM) sont utilisées pour détecter les anomalies.
  • Imagerie médicale : Le clustering, une technique d'apprentissage non supervisée, est extrêmement utile pour la segmentation des images. Les algorithmes de clustering peuvent être appliqués aux images médicales et les segmenter en fonction de la densité des pixels, de la couleur ou d'autres caractéristiques. Les médecins peuvent utiliser ces informations pour identifier différentes zones d'intérêt, par exemple afin de différencier les tissus sains des tumeurs ou de segmenter le cerveau en matière blanche, matière grise et liquide céphalo-rachidien.
  • Génomique et bio-informatique : Le clustering génétique et l'analyse de séquences sont utilisés en bio-informatique. Par exemple, le clustering peut servir à identifier les relations entre les profils d'expression génique. 
  • Systèmes de recommandation : Les techniques d'apprentissage non supervisé, telles que la décomposition en valeurs singulières (SVD), sont utilisées dans le filtrage collaboratif pour décomposer la matrice d'interaction utilisateur-objet. Cette approche est utilisée par les plateformes de streaming vidéo répandues pour recommander du contenu aux utilisateurs.
  • Traitement du langage naturel (NLP) : Dans le traitement du langage naturel, les techniques d'apprentissage non supervisé sont utilisées pour des tâches telles que la modélisation thématique, le clustering de documents et l'élaboration de modèles de langage d’IA.

L'apprentissage non supervisé présente diverses applications dans différents domaines. En révélant des patterns et des relations cachés, l'apprentissage non supervisé permet aux ingénieurs et aux chercheurs de prendre des décisions éclairées. Étant donné que les données continuent à se multiplier de manière exponentielle, l'importance et l'impact de l'apprentissage non supervisé ne feront que s'accroître.

Apprentissage non supervisé avec MATLAB

MATLAB® permet de créer des pipelines d'apprentissage non supervisé, de la préparation des données à l'évaluation et au déploiement des modèles :

  • Avec Statistics and Machine Learning Toolbox™, vous pouvez appliquer des méthodes d'apprentissage non supervisé, telles que le clustering et la réduction de la dimensionnalité, à vos données et évaluer les performances des modèles.
  • Avec Deep Learning Toolbox™, vous pouvez effectuer un apprentissage non supervisé avec des réseaux de neurones à autoencodeur.
  • Avec MATLAB Coder™, vous pouvez générer du code C/C++ pour déployer des méthodes d'apprentissage non supervisé sur diverses plateformes hardware.
Accédez aux données et explorez-les, prétraitez-les, appliquez un algorithme d'apprentissage non supervisé, évaluez les résultats pour en tirer des enseignements et partagez ces derniers avec MATLAB.

Workflow étendu d'apprentissage non supervisé dans MATLAB.

Préparation des données

Vous pouvez nettoyer vos données de manière programmatique ou utiliser l'application low-code Data Cleaner et la tâche Preprocess Text Data du Live Editor pour la préparation interactive des données et la génération automatique de code.

Clustering

MATLAB supporte tous les algorithmes de clustering les plus répandus (k-means, hiérarchique, DBSCAN et GMM, par exemple). Avec Fuzzy Logic Toolbox™, vous pouvez également effectuer un clustering fuzzy c-means sur votre jeu de données.

Il est aussi possible d'effectuer un clustering k-means et hiérarchique, de manière interactive, à l'aide de la tâche Cluster Data du Live Editor. Spécifiez l'algorithme de clustering, le nombre de clusters et la métrique de distance. La tâche calcule les indices de cluster et permet de visualiser les données mises en cluster.

Interface utilisateur de la tâche Cluster Data du Live Editor avec le diagramme de dispersion 2D résultant (ACP).

Clustering k-means via la tâche Cluster Data dans le Live Editor. (Consultez la documentation MATLAB.)

Réduction de la dimensionnalité

MATLAB supporte toutes les techniques de réduction de la dimensionnalité les plus répandues, notamment l'ACP, la t-SNE et l'analyse factorielle. Vous pouvez utiliser des fonctions prédéfinies pour appliquer ces techniques à vos données. Pour l'ACP, vous pouvez également utiliser la tâche Reduce Dimensionality du Live Editor afin d'appliquer la procédure de manière interactive.

Interface utilisateur de la tâche Reduce Dimensionality du Live Editor avec le diagramme d'éboulis résultant.

Réduction de la dimensionnalité en utilisant une tâche du Live Editor. (Consultez la documentation MATLAB.)

Avec MATLAB, vous pouvez également classer des caractéristiques pour un apprentissage non supervisé à l'aide de scores Laplaciens.

Évaluation des résultats

Vous pouvez visualiser les clusters afin d'évaluer les résultats de clustering à l'aide de graphiques de dispersion, de dendrogrammes et de diagrammes de silhouette. Vous pouvez également évaluer les résultats de clustering en utilisant la fonction evalclusters afin d'analyser le nombre optimal de clusters de données. Pour déterminer dans quelle mesure vos données s'intègrent dans un nombre spécifique de clusters, vous pouvez calculer des valeurs d'indice à l'aide de différents critères d'évaluation, tels que l'écart ou la silhouette.

Pour réduire la dimensionnalité, vous pouvez utiliser des diagrammes de dispersion, des diagrammes d'éboulis et des diagrammes de double projection (biplot) pour inspecter les résultats. La tâche Reduce Dimensionality du Live Editor permet de déterminer le nombre de composantes nécessaires pour expliquer la variance d'un pourcentage fixe des données, tel que 95 % ou 99 %.

Groupes codés par couleur et par activité : course, marche, danse, assis, debout.

Diagramme de dispersion de données à dimensionnalité élevée avec 60 dimensions originales réduites à deux dimensions avec l'intégration de voisins stochastiques distribués en t (t-SNE). (Voir le code MATLAB.)