Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Apprentissage Non-Supervisé

L’équipe IVIA.AFRICA

Introduction et Motivations

Dans le chapitre précedent, nous avons discuté des notions d’apprentissage supervisé. Dans ce type d’apprentissage, on a considéré des données étiquettées de la forme D={(xi,yi),i=1,,n}\mathcal{D} = \{ (\mathbf{x}_i, y_i), i = 1,\ldots, n \} où l’objectif consiste à trouver une modélisation ff telle qu’on ait l’approximation yf(x)y \simeq f(\mathbf{x}), pour tout (x,y)D(\mathbf{x}, y)\in \mathcal{D}. Cependant, il est important de se demander ce qu’il en est du cas où l’on n’a pas d’étiquettes. En effet, d’après quelques médias, il y a plus d’appareils photos que d’êtres humains, donc il y a une gigantesque quantité de données images dans le monde entier. On a aussi tant de données textes, et autres. Étiqueter toutes ces données est une tâche difficile. Pourtant, il y a certains types d’apprentissages qu’on peut effectuer sur de telles données. C’est ce qu’on appelle apprentissage non supervisé.

L’apprentissage non supervisé est un type d’apprentissage automatique pour lequel les donneés utilisées ne sont pas étiquettées. L’objectif de l’apprentissage est donc de découvrir les structures sous-jacentes à ces données. Un tel type d’apprentissage comprend des méthodes comme KK-moyennes, le regroupement hiérarchique, les réduction de dimensions, ainsi que d’autres méthodes plus avancées dans les cas où ces données ne peuvent pas être linéarement separées (ce qui est souvent le cas en pratique). Ces méthodes ont d’importantes applications à savoir: les systèmes de recommandations, segmentation du marché, détection d’anomalies, imagèrie médicales, etc.

Dans un premier temps, nous allons voir quelques algorithmes d’apprentissage non supervisé, commençant par les algorithmes de régroupement (KK-moyennes, regroupement hiérarchique), puis ceux de réduction de dimensions (Analyse en composantes principales et positionnement multidimensionnel), et nous allons finir par quelques applications de ces algorithmes.

Les algorithmes de l’apprentissage non supervisé

Les algorithmes de l’apprentissage non supervisé sont principalement divisés en deux grands groupes, les algorithmes de partitionnement et les algorithmes de réduction de dimension. Dans ce qui suit, nous présenterons respectivement l’algorithme de partitionnement qui est le KK-moyennes et les algorithmes de réduction: le positionnement multidimensionnel, et l’analyse à composantes principales. Nous devons noter que les algorithmes les plus populaires de l’apprentissage non supervisé sont le KK-moyennes et l’analyse en composantes principales.

Algorithmes de Partitionnement.

K\textbf{K}-moyennes

Dans une optique de regroupement des données en différentes catégories ou classes représentant les différents types de données, il est nécessaire d’utiliser des algorithmes spécifiques à l’instar de l’algorithme des K-moyennes. En effet, imaginons que nous avons un ensemble de données que nous souhaitons partitionner en trois catégories. Ces données présentent des catégories différentes et peuvent être regroupées selon leur similitude tel que décrite par la Figure 1.

Représentation des données partitionnées en trois catégories

Figure 1:Représentation des données partitionnées en trois catégories

Idéalement l’intuition humaine peut nous permettre de détecter les regroupements pour le cas des données simples. Mais alors, est-il possible de demander à la machine si elle peut le faire à notre place, c’est -à-dire regrouper selon les trois catégories réquises.

K-moyennes est une méthode qui permet de regrouper les données en fonction du nombre de groupes KK qui lui a été recommandé. Elle comporte plusieurs étapes, à savoir:

Application des K-moyennes

Figure 2:Application des K-moyennes

Comment choisir la valeur de KK?

Remarque

Il peut arriver que nos données soient complexes, de ce fait, nous devons utiliser des méthodes plus complexes que nous ne développerons pas dans cette partie, comme l’algorithme du Kernel KK-moyennes.

K-moyennes: Algorithme

L’algorithme KK-moyennes est un algorithme itératif qui essaie de partitionner l’ensemble de données en KK sous-groupes distincts non chevauchant prédéfinis ( i.e chaque point de données appartient à un seul groupe). Il essaie de rendre les points de données intra-groupe aussi similaires que possible tout en gardant les regroupements aussi différents (loin) que possible. Il attribue des points de données à un regroupement de telle sorte que la somme de la distance au carré entre les points de données et le centre de gravité du regroupement (moyenne arithmétique de tous les points de données appartenant à ce regroupement) soit minimale. Moins nous avons de variation au sein des regroupements, plus les points de données sont homogènes (similaires) au sein du même regroupement. L’algorithme des KK-moyennes peut être décrit tel que suit:

  1. Spécifier le nombre de regroupements KK.

  2. Initialiser les centres de gravité en sélectionnant au hasard KK points de données pour les centres de gravité sans remplacement.

  3. Calculer la somme de la distance au carré entre les points de données et tous les centres de gravité.

  4. Attribuer chaque point de données au regroupement le plus proche (centroïde).

  5. Calculer les centres de gravité des regroupements en prenant la moyenne de tous les points de données appartenant à chaque groupe.

  6. Répéter les étapes 3,4 et 53, 4 \text{ et } 5 jusqu’à ce qu’il n’y ait aucune modification des centres de gravité, c’est-à-dire que l’attribution des points de données aux regroupements ne change pas.

L’approche suivie par KK-moyennes pour résoudre le problème est appelée Espérance - Maximisation (EM) qui se fait en deux étapes à savoir: le passage à l’Espérance et la Maximisation. En effet, l’étape de passage à l’Espérance consiste à affecter les points de données au regroupement le plus proche et l’étape de Maximisation calcule le centroïde de chaque regroupement. Vous trouverez ci-dessous une description de la façon dont nous pouvons le résoudre mathématiquement. Nous définissons la fonction objectif de la manière suivante:

J=i=1mk=1Kwikxiνk2.J = \sum_{i=1}^{m}\sum_{k=1}^{K}w_{ik}|| \textbf{x}_{i} - \boldsymbol{\nu}_{k}||^{2}.

où le poids wik=1w_{ik} = 1 si le point de données xi\textbf{x}_i appartient au groupe kk, sinon, wik=0w_{ik}= 0. De plus, νk\nu_{k} est le centre de gravité du groupe kk.

La fonction objectif KK-moyennes est très populaire dans les applications pratiques du regroupement. Cependant, il s’avère que trouver la solution optimale des KK-moyennes est souvent irréalisable par le calcul (le problème est NP-difficile). Comme alternative, l’algorithme itératif simple précèdent est souvent utilisé, si bien que, dans de nombreux cas, le terme de regroupement des KK-moyennes fait référence au résultat de cet algorithme plutôt qu’au regroupement qui minimise le coût objectif des KK-moyennes.

K-moyenne: cas pratique

Veuillez Cliquer ici pour avoir un aperçu de cas pratique écrit en Python.

Réduction de dimension

Dans cette section, nous présenterons des méthodes ou algorithmes de réduction de dimension, à savoir, le positionnement multidimensionnel et l’analyse à composantes principales.

Positionnement multidimensionnel (MDS en Anglais)

Le positionnement multidimensionnel, plus connu sous le nom de Multi-Dimensional Scaling (MDS) dans sa version anglaise est, d’après wikipédia, un ensemble de techniques statistiques utilisées dans le domaine de la visualisation d’information pour explorer les similarités dans les données. Il contient principalement trois méthodes qui sont: le positionnement multidimensionel classique, le positionnement multidimensionel métrique et le positionnement multidimensionel non métrique.

Pour les données utilisées dans les sections précedentes, les points de données étaient caractérisés par leurs coordonnées dans l’espace affine associé. Cependant, il existe des cas où les coordonnées explicites des points de données ne sont pas disponibles mais plutôt les distances entre chaque paire de points. L’idée générale du positionnement multidimensionnel est la réduction de dimension comme dans le cas de l’analyse en composantes principales, mais ici, nous avons comme entrées, une matrice de similarité entre les points. De la matrice de similarité, nous essayerons d’obtenir les coordonnées des points de données et les répresenter dans un plan, un espace de dimension trois, ou plus (mais de dimension inférieure à la taille des données).

Dans cette partie, nous parlerons du positionnement multidimensionnel classique; pour les autres types de positionnement, le lecteur pourra se référer à la litérature Bishop (2006)Schiffman et al. (1981).

Supposons une matrice MMMijM_{ij} représente la similarité entre les ieˋmei^{\`eme} et jeˋmej^{\`eme} exemples de données. Ce que nous avons à notre possession, c’est la matrice de similarité entre les exemples.

Dans le cas du positionnement multidimensionnel, la fonction de perte ou fonction de décision est appelée stress et elle est donnée par:

S(z1,z2,,zn)=ij(Mijzizj)2,S(\mathbf{z}_{1}, \mathbf{z}_{2},\cdots,\mathbf{z}_{n}) = \sum_{i\neq j}\left(M_{ij}-||\mathbf{z}_{i}-\mathbf{z}_{j}||\right)^{2},

avec Mij=xixjM_{ij} = ||\mathbf{x}_{i}-\mathbf{x}_{j}||, xiRd\mathbf{x}_{i} \in \mathbb{R}^{d} et zi, i=1,,n\mathbf{z}_{i},\ i= 1,\cdots,n, les points obtenus aprés la réduction de dimension. De l’équation (2), nous pouvons remarquer que notre objectif principal est de trouver zi, i=1n\mathbf{z}_{i},\ i = 1\cdots n de telle sorte que: zizj=Mij||\mathbf{z}_{i}-\mathbf{z}_{j}||= M_{ij}. Cette solution n’est pas unique, puisqu’à part le fait que zi, i=1,,n\mathbf{z}^{\star}_{i},\ i=1,\cdots, n soit solution, zi+cste, i=1,,n\mathbf{z}^{\star}_{i}+c^{ste},\ i = 1,\cdots, n, l’est aussi.

En utilisant l’assomption de la configuration centrée qui stipule:

i=1nxik=0,k=1,,d,\sum_{i=1}^{n}\mathbf{x}^{k}_{i} = 0,\quad \forall k=1, \dots, d,

et en définissant la matrice de Gram par B=XXT\mathbf{B} = \mathbf{X}\mathbf{X}^{T} qui est une matrice carrée de dimension n×nn\times n, avec X=[x1,x2,,xn]\mathbf{X} = [\mathbf{x}_{1}, \mathbf{x}_{2}, \cdots, \mathbf{x}_{n}], nous avons:

dij2=bii+bjj2bij,d^{2}_{ij} = b_{ii}+b_{jj} - 2b_{ij},

avec bii=xi2b_{ii} = ||\mathbf{x}_{i}||^{2} et bij=xiTxjb_{ij} = \mathbf{x}^{T}_{i}\mathbf{x}_{j}.

Nous posons: $$\begin{align*} \label{T_expression}

T = \sum_{i}b_{ii} \end{align*}$$

En utilisant les relations (4) et T_expression, nous obtenons:

{i=1ndij2=T+nbjj2i=1nbijj=1ndij2=T+nbii2j=1nbiji,jndij2=2nT2i,j=1nbij\begin{cases} \sum_{i=1}^{n}d^{2}_{ij} = T+nb_{jj}-2\sum_{i=1}^{n}b_{ij}\\ \sum_{j=1}^{n}d^{2}_{ij} = T+nb_{ii} -2\sum_{j=1}^{n}b_{ij}\\ \sum_{i,j}^{n}d^{2}_{ij} = 2nT - 2\sum_{i,j=1}^{n}b_{ij} \end{cases}

En utilisant la relation (4), l’équation (5) devient (ibij=0)\left(\sum_{i}b_{ij}=0\right):

{i=1ndij2=T+nbjjj=1ndij2=T+nbiii,j=1ndij2=2nT\begin{cases} \sum_{i=1}^{n}d^{2}_{ij} = T+nb_{jj}\\ \sum_{j=1}^{n}d^{2}_{ij} = T+nb_{ii} \\ \sum_{i,j=1}^{n}d^{2}_{ij} = 2nT \end{cases}

À partir des relations (3), (4) et (6), nous pouvons déduire :

bij=12(dij2d.j2di.2+d..2),b_{ij} = -\frac{1}{2} \left(d^{2}_{ij}-d^{2}_{.j}-d^{2}_{i.}+d^{2}_{..}\right),

avec :

L’[algorithme]{style=“color: blue”} de positionnement classique est donné comme suit:

Le positionnement multidimensionnel est utilisé en analyse des préférences sur l’ensemble des domaines d’application de la psychométrie, en particulier dans la conception et le marketing des produits agro-alimentaires ici.

Analyse en Composantes Principales (ACP)

L’Analyse en composantes principales (ACP, PCA en Anglais) est l’une des plus célèbres méthodes de compression, réduction de dimensions et de visualisation de données. Elle utilise ce qu’on appelle composantes principales pour trouver une base du sous-espace sur lequel on projète les données. Pour mieux comprendre le fonctionnements de l’ACP, nous allons commencer par illustrer le cas des données de dimension d=2d = 2. Ensuite on généralisera pour le cas de dimension d2d \ge 2. On considère dorénavant un ensemble de données D={x1,,xn}Rd\mathcal{D} = \{ \mathbf{x}_1 , \dots, \mathbf{x}_n\} \subset \mathbb{R}^dnn désigne le nombre d’élements de D\mathcal{D}.

Cas d=2.d = 2.

Supposons qu’on a les données dans le plan R2\mathbb{R}^2. La compression consiste donc à projeter ces données sur un sous-espace de R2\mathbb{R}^2, de dimension p<2p < 2. On sait qu’un sous-espace de dimension 0 est un point. Donc la compression en dimension p=0p=0 détruira toutes les informations sur les données en les réduisant en un point. Nous n’avons donc d’autres choix que de compresser en dimension p=1p = 1, c’est-à-dire projeter les données sur une droite vectorielle. Pourtant, il y a une infinité de tels sous-espaces. Cependant, nous voulons une compression ayant le maximum d’informations sur nos données. Comment choisir ce sous-espace?

La méthode ACP consiste à choisir ce sous-espace comme la droite maximisant la variance des projections de données. Le vecteur directeur de cette droite s’appelle première composante principale ou tout simplement composante principale . Le complété orthogonal de ce sous-espace est engendré par la seconde composante principale.

L’illustration de l’ACP

Figure 3:L’illustration de l’ACP

Dans la Figure 3, nous avons un ensemble de données dans un système de coordonnées (O,x1,x2)(O, \mathrm{x}_1, \mathrm{x}_2). Supposons qu’on veux compresser l’ensemble de données dans un espace de dimension 1 qui peut être l’un des axes (O,x1),(O,x2),(O,x1),(O,x2)(O,\mathrm{x}_1), (O,\mathrm{x}_2), (O,\mathrm{x}_1'), (O,\mathrm{x}_2').

Dans notre cas, la première composante principale est le vecteur (unitaire) directeur de l’axe (O,x1)(O,\mathrm{x}_1') puisqu’il nous permet d’avoir le maximum de variance lors de la compression.

Cas général (d2d\ge 2).

Dans le cas d=2d=2, nous avons essayé de donner une explication intuitive et visuelle de ce que l’algorithme ACP fait. Dans ce qui suit, nous allons généraliser la méthode ACP. L’objectif principal de cette méthode est donc de trouver les composantes principales.

Comment trouver les composantes principales?

La méthode classique pour trouver les composantes principales est d’utiliser les valeurs propres et vecteurs propres de la matrice de covariances des données. La première composante principale n’est autre que le vecteur propre correspondant à la plus grande valeur propre, la seconde composante principale est celui qui correspond à la deuxième plus grande valeur propre, et ainsi de suite. En effet, on peut prouver que les vecteurs propres de la matrice des covariances donnent les directions sur lesquelles les données ont la variance maximale (voir Section 1.1 de Jolliffe (1986)).

Soit MM la matrice de covariance des données. Puisque les données sont de dimension dd, MM est une matrice carrée d’ordre dd (MMd(R)M\in \mathcal{M}_{d}(\mathbb{R})). Rappelons aussi que la matrice de covariance est symétrique définie positive. Donc les valeurs propres de MM sont toutes strictement positives.

Soient λ1,,λd\lambda_1, \dots, \lambda_d les valeurs propres de MM correspondant respectivement aux vecteurs propres v1,,vd}\mathbf{v}_1,\ldots, \mathbf{v}_d\}. Sans perte de généralité, on peut supposer que les valeurs propres sont arrangées dans l’ordre décroissant, c’est-à-dire λ1λ2λd\lambda_1 \ge \lambda_2\ge \cdots \ge \lambda_d et que les vecteurs propres sont tous unitaires (de norme 1). Notons que ces vecteurs propres forment une base orhtonormée de Rd\mathbb{R}^d.

Notons par D={x1,,xn}\mathcal{D}' = \{ \mathbf{x}_1', \dots, \mathbf{x}_n' \} les représentations des éléments de D\mathcal{D} dans la base {v1,,vd}\{\mathbf{v}_1,\ldots, \mathbf{v}_d\} de Rd\mathbb{R}^d. Pour compresser D\mathcal{D} sur un espace de dimension pp (p<dp < d), l’ACP prend les éléments de D\mathcal{D}' et les tronque à la pp-ième composante.

Algorithme de l’Analyse en Composantes Principales.

Remarque. Avant de procéder à l’ ACP, il faut normaliser les données, en soustrayant la moyenne puis en divisant par l’écart-type, composantes par composantes. C’est très important parce que les composantes caractéristiques peuvent avoir différentes unités de mesure.

Algorithme: Voici les étapes de l’algorithme :

  1. Calculer la moyenne :

    μ^=1nk=1nxk\hat{\boldsymbol{\mu}} = \frac{1}{n} \sum_{k = 1}^{n} \mathbf{x_k}
  2. Calculer la matrice de covariance

    M=1nk=1n(xkμ)(xkμ^)T\mathbf{M} = \frac{1}{n} \sum_{k = 1}^{n} (\mathbf{x_k} - \boldsymbol{\mu})(\mathbf{x_k} - \hat{\boldsymbol{\mu}})^T
  3. Trouver les valeurs propres et vecteurs propres:

    Mvi=λivi,  i=1,,d.\mathbf{M}\mathbf{v}_i = \lambda_i \mathbf{v}_i, \ \ i = 1, \dots, d.
  4. Choisir les valeurs propres de plus grande valeurs:

    1. Ranger les valeurs propres dans l’ordre décroissant

    2. Choisir une valeur de tolérance τ]0,1[\tau \in ]0,1[.

    3. Le nombre pp de valeurs propres choisies satisfera la relation

      i=1pλij=1dλjτ.\frac{\sum_{i = 1}^{p} \lambda_i }{\sum_{j = 1}^{d} \lambda_j} \ge \tau .
    4. Choisir les pp vecteurs propres correspondants et noter par P\mathbf{P} la matrice d’ordre d×pd\times p formée.

  5. Extraire les représentations en dimension pp en multipliant PT\mathbf{P}^T par les xk\mathbf{x_k}.

Applications

L’objectif généralement lorsque nous effectuons une analyse de regroupement:

De ce fait, l’algorithme KK-moyenne étant très populaire peut être utilisé dans diverses applications telles que la segmentation du marche, le regroupement de documents, la segmentation d’images et la compression d’images, etc.

Conclusion

Dans ce chapitre, les données étaient considérées comme linéairement séparables, c’est à dire nous pouvons trouver une ligne droite (dans le cas où nous sommes en dimension deux) ou un hyperplan (de manière générale) qui sépare ces données. De plus la distance que nous avions considérée était celle Euclidienne. Cependant, dans la plupart des cas, nos données sont non-linéaires et la distance considérée peut être géodésique, c’est à dire non Euclidienne ou bien Riemanienne. Pour cela, nous devons nous référer à des méthodes ou bien des algorithmes qui nous permettent de pouvoir faire soit le partitionnement ou la réduction de dimension dans le dit cas et aussi considérer des cas de distance non Euclidienne. Il y a plusieurs modèles qui ont été dévelopés, parmi ceux-là, nous avons les méthodes de Kernel comme Kernel PCA, Kernel Clustering, réseaux de neurones et aussi ISOMAP, dans le cas de distance géodésique. Certaines de ces méthodes vous seront présentées dans le chapitre Les méthodes du noyau (Kernel methods).

Footnotes
  1. Cela signifie que presque chaque point aura une représentation différente de celle d’un autre point.

References
  1. Bishop, C. M. (2006). Pattern recognition and machine learning. springer.
  2. Schiffman, S. S., Reynolds, M. L., & Young, F. W. (1981). Introduction to multidimensional scaling. Academic press New York.
  3. Jolliffe, I. T. (1986). Principal components in regression analysis. In Principal component analysis (pp. 129–155). Springer.

💬 Commentaires et Discussions