9
Florent Renucci

Generalization of Principal Component Analysis, report, 2012

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

Page 1: Generalization of Principal Component Analysis, report, 2012

 

Florent  Renucci  

 

   

Page 2: Generalization of Principal Component Analysis, report, 2012

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  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Page 3: Generalization of Principal Component Analysis, report, 2012

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.  

Page 4: Generalization of Principal Component Analysis, report, 2012

 

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    

Page 5: Generalization of Principal Component Analysis, report, 2012

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    

Page 6: Generalization of Principal Component Analysis, report, 2012

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    

Page 7: Generalization of Principal Component Analysis, report, 2012

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.    

Page 8: Generalization of Principal Component Analysis, report, 2012

 

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  

Page 9: Generalization of Principal Component Analysis, report, 2012

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.