Upload
florent-renucci
View
159
Download
0
Embed Size (px)
DESCRIPTION
Lorsque l'on dispose d'un échantillon de n observations, distribuées sur p features (donc une matrice de design n * p), il est possible qu'il existe un sous-espace, qui "décrive convenablement" (cette notion sera définie dans la suite) les données, en ayant diminué la dimension, donc en ayant simplifié l'analyse. L'Analyse en Composantes Principales consiste en la recherche de ce sous-espace. La connaissance sur les données est quantifiée par la variance empirique. Plus cette variance est importante, plus les points de l'espace sont éloignés, et donc distinguables. On va donc chercher à réduire la dimension du problème, en général pour en simplifier l'étude, sous la contrainte de maximiser la variance obtenue dans l'espace sous-dimensionnel.
Citation preview
Florent Renucci
Table des matières Introduction ...................................................................................................................................... 3 I – Pourquoi généraliser l'ACP ? ................................................................................................. 3
II -‐ Les outils ..................................................................................................................................... 4 II.1 – Famille exponentielle .................................................................................................................... 4 II.2 – Distance de Bregman ..................................................................................................................... 4 II.3 – Lien ...................................................................................................................................................... 4
III – Concept de l'ACP généralisée .............................................................................................. 5
IV – Algorithme ................................................................................................................................. 5 V – Application .................................................................................................................................. 6 V.1 – Traitement des données ............................................................................................................... 6 V.2 – ACP Classique .................................................................................................................................... 6 V.3 – ACP généralisée ............................................................................................................................... 7 V.3.a – Choix de G ...................................................................................................................................................... 7 V.3.b – Calcul des fonctions .................................................................................................................................. 8 V.3.c – Suppression des lignes nulles ............................................................................................................... 8 V.3.d – Algorithme .................................................................................................................................................... 8
Introduction
Lorsque l'on dispose d'un échantillon de n observations, distribuées sur p features (donc une matrice de design n * p), il est possible qu'il existe un sous-‐espace, qui "décrive convenablement" (cette notion sera définie dans la suite) les données, en ayant diminué la dimension, donc en ayant simplifié l'analyse.
L'Analyse en Composantes Principales consiste en la recherche de ce sous-‐espace. La connaissance sur les données est quantifiée par la variance empirique. Plus cette variance est importante, plus les points de l'espace sont éloignés, et donc distinguables. On va donc chercher à réduire la dimension du problème, en général pour en simplifier l'étude, sous la contrainte de maximiser la variance obtenue dans l'espace sous-‐dimensionnel.
Notons X = x!" !!! ,!!! la matrice de design, x! = x!" !!!
un vecteur d'observation. On a donc x! ∈ R!. On
veut trouver les θ! ∈ R! tel qu'il soit le plus proche possible de x! et que d < p, d étant le plus petit possible. Cela se traduit par : min!! x! − θ! , la norme étant euclidienne.
En vertu de : x!!= x! − θ!
!+ θ!
!, minimiser x! − θ! revient à maximiser la variance inter, ce
qui correspond à l'intuition de départ.
Cependant, si l'on adopte une approche opposée, les conclusions se rejoignent :
on considère un ensemble de données θ!, j ≤ n d'un espace R!, elles sont affectées par un bruit gaussien, et l'on observe après bruitage les x!, qui évoluent dans un espace sur-‐dimensionnel R!. On souhaite retrouve les θ! initiaux. Cela revient à un problème de maximisation de vraisemblance, et celle-‐ci s'écrit : − log L θ = x! − θ!
! . Cette approche est donc rigoureusement équivalente à l'ACP.
L'ACP classique consiste donc à se débarrasser d'un bruit gaussien qui a affecté les données, initialement présentes dans un espace sous-‐dimensionnel.
I – Pourquoi généraliser l'ACP ?
Le bruit gaussien ne correspond par à tous types de données. Pour des distributions discrètes (entières ou binaires) par exemple, le bruit suivrait plutôt respectivement une loi de Poisson ou de Bernoulli. Et donc dans ces cas, l'ACP telle qu'elle serait inutilisable, on ne pourrait pas réduire la dimension avec cette méthode.
L'idée est donc de généraliser l'ACP à tous types de bruits appartenant à la famille exponentielle, grâce à l'approche équivalente présentée en introduction. La vision est la suivante : on ne cherche plus à projeter en norme euclidienne pour trouver l'espace sous-‐dimensionnel, mais à débruiter des observations. Et ce bruit est évidemment de n'importe quel type de la famille exponentielle. On verra que cela revient à projeter en distance de Bregman : puisque le résultat est plus complexe, la méthode est plus complexe.
Il est bon de remarquer que l'ACP classique est un cas particulier de l'ACP généralisée : la distance de Bregman, dans le cas d'une distribution gaussienne, coïncide avec la distance euclidienne, donc une ACP généralisée avec un input "classique" (bruit gaussien) donne le même résultat que l'ACP classique. Ce qui est un minimum lorsque l'on généralise une méthode.
Enfin, on impose la famille exponentielle, parce que le problème de maximum de vraisemblance est convexe.
II -‐ Les outils
II.1 – Famille exponentielle
La famille exponentielle est définie par une distribution du type :
log P x θ = log P! x + xθ − G θ , où :
• θ est le paramètre naturel (cherché),
• P0 Est constant en θ (donc n’interviendra pas dans les calculs de minimisation),
• G caractérise le type de distribution.
Le résultat fondamental que nous allons utiliser est : G! θ ≝ g θ = E[x|θ]. Intuitivement, c'est "le x que l'on trouverait, sous le modèle décrit par θ". C'est exactement ce qui nous intéresse : on va chercher à rapprocher au maximum le x observé du θ déduit, donc à rapprocher x et g θ .
En particulier, pour une distribution gaussienne, G θ = θ!/2 , donc on essaye de rapprocher x et θ (on verra en II.3 en quoi cette vision coïncide avec l'ACP classique).
II.2 – Distance de Bregman
La distance de Bregman B! s'applique à une fonction convexe F, entre deux points p et q.
B! p q = F p − F q − F′ q p − q .
Elle mesure "à quel point une fonction est convexe" (c'est la double flèche sur la figure).
II.3 – Lien
On souhaite maximiser la vraisemblance, donc maximiser log P x θ = log P! x + xθ − G θ , ou encore xθ − G θ .
On va montrer que maximiser F: θ → g θ θ − G θ revient à minimiser une distance de Bregman.
G est strictement convexe, donc g est strictement croissante, donc établit une bijection entre l'espace de départ et son image. On peut donc définir g!! sur son espace-‐image.
On définit donc F: g θ → F θ (ie F = Fog!!).
Par ailleurs,
B!(x||g θ ) = F x − F g θ − F! g θ x − g θ
B!(x| g θ = F x − g θ θ + G θ − θ x − g θ
B!(x| g θ − F x = −xθ + G θ
Donc maximiser log P x θ revient à minimiser B!(x| g θ − F x ou encore B!(x| g θ .
Maximiser la vraisemblance revient à minimiser la distance de Bregman entre le x observé et 𝐠 𝛉 = 𝐄 𝐱 𝛉 : le x déduit à partir du modèle sous 𝛉.
On "projette" en distance de Bregman, et plus en norme euclidienne.
Si le bruit est gaussien, comme G θ = θ!/2 (cf II.1), g θ = θ, donc
F θ = θ! − !!
!= !!
!, et B!(x||g θ ) =
!!
!− ! ! !
!− g θ x − g θ = x − θ !/2.
On retombe donc sur une projection en norme euclidienne si le bruit est gaussien.
Par ailleurs, on généralise la distance de Bregman aux matrices et aux vecteurs :
la distance de Bregman entre 2 matrices ou vecteurs est la somme des distances terme à terme.
III – Concept de l'ACP généralisée
On cherche donc Θ = argmin B! X g Θ , avec Θ la matrice des θ! et X la matrice de design (celle des x!).
Toujours en s'appuyant sur la vision de l'ACP classique, on va chercher une base de l'espace sous-‐dimensionnel, et les coordonnées dans cette base des vecteurs θ!.
• La base sera représentée par V, telle que chaque ligne de V est un vecteur de la base v!… v!. • Les coordonnées seront représentées par la matrice 𝐀 = a!" !!!,!!!
• De sorte que 𝚯 = 𝐀𝐕.
IV – Algorithme
On va minimiser la distance de Bregman en jouant successivement sur A et sur V, en gardant l'autre paramètre constant.
Cela signifie que :
• on part d'un V quelconque,
• pour chaque indice c de ligne de A et de colonne de V :
o on minimise B! X g AV sur chaque composante de la ligne de A successivement,
o on minimise B! X g AV sur chaque composante de la colonne de V successivement,
o on répète les étapes 2 et 3 jusqu'à convergence.
• On répète ces étapes jusqu'à convergence.
Le problème est globalement convexe, comme expliqué en I, puisque l'on s'est limités à la famille exponentielle. En revanche, il n'est pas convexe en A et en V. Donc on n'a pas la certitude que l'algorithme de maximisation de la vraisemblance convergera.
V – Application
J'ai implémenté l'ACP généralisée sur un jeu de données textuelles de ce site http://www.cs.nyu.edu/~roweis/data.html, sur les conseils de M. Bach. Les données étaient " Word Counts from Encyclopedia Articles" : le comptage du nombre de mots d'articles de l'encyclopédie Grolier. Le code est joint.
• Les observations sont des titres d'articles (environ 31000) • Les features sont les mots (environ 15000)
La matrice de design est composée d'entiers naturels, donc un bruit gaussien est à exclure. C'est la raison pour laquelle ce type de données est ici intéressant : il s'agit d'un jeu de données pour lequel l'ACP classique montrera de mauvais résultats, contrairement à l'ACP généralisée, et démontrera donc la pertinence de la généralisation.
V.1 – Traitement des données
Matlab était très lent lors du traitement d'une matrice 31000*15000, j'ai donc réduit le nombre d'observations et de features. J'ai supprimé des observations pour n'en garder que 100, et j'ai supprimé les features pour n'en garder que 20. Les observations ont été supprimées au hasard (cf "fil rouge.m"), les variables ont été sélectionnées sur leur norme : j'ai supprimé les mots qui apparaissaient le moins. Cela se traduit par une norme 1 sur un vecteur colonne minimal (cf "reduit.m").
V.2 – ACP Classique
J'ai ensuite effectué l'ACP classique ("fil rouge.m") sur la nouvelle matrice X2 réduite, donc les données ont été centrées réduites ("acp.m"), et les lignes nulles supprimées (supprime0.m), on verra par la suite pourquoi. Voici les valeurs propres cumulées :
Ce graphique représente le gain en information lorsque l'on augmente la dimension du sous-‐espace de projection, pour une ACP classique. On retrouve bien ∑𝑣𝑝 = 91 (100 observations – 9 lignes nulles).
V.3 – ACP généralisée
Dans l'ordre, il faut :
• Choisir G • Calculer G, g, f, et F • Supprimer les lignes nulles (on verra pourquoi) • Effectuer l'algorithme expliqué en IV
V.3.a – Choix de G
On a choisi G de la loi de Poisson, puisqu'il est adapté aux données. Mais la modification de la définition de G dans le code est possible ("fil rouge.m"), pour un autre jeu de données par exemple, puisque le reste du code s'y adapte.
V.3.b – Calcul des fonctions
Il est intéressant de noter que l'on peut facilement passer de g à f : f = g!!
En effet, on a F g θ = θg θ − G θ donc en dérivant par rapport à θ,
g! θ f g θ = θg! θ + g θ − g θ ie f g θ = θ.
Cette astuce est utilisée pour le calcul des fonctions ("fil rouge.m").
V.3.c – Suppression des lignes nulles
Si une ligne est nulle, ie une observation voit toutes ses variables égales à 0 (ce qui est tout à fait possible dans un jeu de données), la distance de Bregman ne peut pas forcément être minimisée sur R. En l'occurrence, B! p q = p log !
!+ q − p pour notre distribution. Si p = 0,B! p q = q, qui n'a pas
de minimum sur R, ce qui fait planter l'algorithme.
Si l'on tente d'interpréter ce cas particulier : la donnée observée x, que l'on essaie d'approcher, est à 0. Donc on cherche a tel que g av! est proche de x en distance de Bregman. Mais G est strictement convexe, donc g est strictement croissante, et souvent strictement positive (sauf pour la loi normale), en l'occurrence pour nous g θ = e!. Donc une telle fonction g n'approchera jamais convenablement x.
C'est peut-‐être une lacune de l'ACP généralisée : si g est strictement positive, elle pourra difficilement approcher des observations proches de 0.
Dans notre cas, cela n'a pas de sens : un article a forcément au moins un mot dans son titre.
Cela provient de la simplification en début d'étude : on a supprimé des variables-‐mots, donc après suppression, certaines observations sont peut-‐être toutes à 0 (il fallait de toutes façons faire un choix sur la suppression).
Or ça n'est pas un cas rare pour des applications réelles, par exemple pour la distribution de Bernoulli, donc la fonction g est aussi strictement positive, rien n'empêche une observation d'être à 0 sur toutes ses features, et d'être néanmoins une observation valide !
Il faut donc gérer les vecteurs-‐observations identiquement nuls pour certaines distributions. C'est une question qui reste ouverte
V.3.d – Algorithme
La distance de Bregman entre 2 réels est codée dans "Br.m", celle entre 2 matrices ou vecteurs dans "B.m".
Le minimum de la fonction "distance de Bregman" se fait par une descente de gradient ("minimumA.m" et "minimumV.m"). En s'arrêtant lorsque le minimum est en moins l'infini (sinon la descente durerait longtemps).
Un inconvénient de l'algorithme est le temps de convergence : on ne sait pas à l'avance combien de boucles effectuer, et on n'a pas d'idée sur l'ordre de grandeur de la complexité de l'algorithme. Puisqu'il n'est pas encore démontré qu'il converge (le problème est globalement convexe, mais pas convexe suivant les 2 variables), on sait encore moins en combien de temps il converge. C'est aussi une question qui reste ouverte. A priori, comme l'ACP classique est un cas particulier de l'ACP généralisée, la complexité de l'ACP
généralisée devrait être équivalente ou plus importante que celle de l'ACP classique, qui est de l'ordre de O(dn!).
Il y a certainement une manière de l'implémenter plus rapide que celle que je propose, puisqu'il me faut plusieurs heures pour obtenir chaque vecteur 𝑣! . Le code est expliqué très rapidement, faute d'espace : en suivant "fil rouge.m", dans l'ordre, on :
-‐ allège les données en supprimant des observations, puis les features les moins représentées, -‐ effectue l'ACP pour observer le gain en information en fonction de la dimension du sous-espace. -‐ On définit les fonctions à utiliser (F, G, g, f) -‐ On effectue l'ACP généralisée, avec eacp(X2,F,f,g,1,1,3), où les 3 derniers arguments sont
respectivement : o Le nombre d'itérations (on ne sait pas à priori combien de fois il faut itérer pour converger
raisonnablement), o le nombre de vecteurs attendus, o le nombre d'ajustements entre A et V.
-‐ dans eacp, les observations dont les lignes sont nulles (pour la raison expliquée auparavant) sont supprimées.
On remarque que le temps de calcul pour calculer approximativement (avec une seule itération et 3 ajustements entre A et V) un seul vecteur est énorme, donc même en laissant l'algorithme tourner pendant 48h, je n'ai pas réussi à avoir 3 vecteurs avec une précision supérieure. On peut donc s'intéresser au 1er vecteur délivré par l'algorithme (le résultat est déjà sauvegardé, vous n'avez pas à relancer l'algorithme, cela prendrait trop de temps). Il ne ressemble absolument pas au vecteur de l'ACP classique, mais un petit test (cellule "comparaison de vecteurs" dans fil rouge.m) montre qu'il y a de fortes chances pour que ce soit bien l'argument minimum de la distance de Bregman (ce que l'on voulait). Donc l'algorithme ainsi implémenté converge, au prix de quelques adaptations : on a supprimé les lignes nulles. On peut éventuellement les rajouter à la fin, comme 0 appartient à tout espace vectoriel, et qu'une ligne complètement nulle correspond à une observation du 0 de l'espace, cela correspond aussi à une observation du 0 de l'espace sous-‐dimensionnel, donc ça ne changera pas l'interprétation de l'ACP généralisée.