Le codage parcimonieux (ou sparse coding en anglais) est un type de réseau de neurones à apprentissage non supervisé. Il est basé sur le principe qu'une entrée est approximativement la somme de nombreux petits motifs élémentaires.

Définition

modifier
 
Exemple de dictionnaire obtenu avec un réseau de neurones à codage parcimonieux

Plus rigoureusement, considérons une entrée vectorielle  . Alors, considérant qu'on a à notre disposition un dictionnaire de motifs élémentaires  , matrice contenant dans chaque colonne un motif de la même taille que   (  et  ), il existe   tel que  .

Plus généralement, pour un jeu de données de taille  , le problème revient à décomposer la matrice   en produit de deux autres matrices plus simples : la propriété de parcimonie impose qu'il y ait le plus de   possible dans le vecteur de poids alpha ainsi que dans le dictionnaire. Cette condition se traduit par le fait que l'on veut reproduire l'entrée avec le moins de motif possible[1].

On peut de plus rajouter une condition sur le dictionnaire afin que les valeurs des motifs n'explosent pas lorsque l'on diminue les poids. Pour cela, il est classique après chaque apprentissage de projeter les colonnes du dictionnaire sur la boule unité, à savoir:

  tq  

La pratique courante est de découper l'entrée en petites fenêtres de taille fixe afin d'avoir à traiter des entrées de taille constante, quitte à faire du zéro-padding pour compléter une fenêtre qui dépasse de l'entrée.

Apprentissage

modifier

Pour le codage parcimonieux, on considère souvent la fonction de coût suivante pour une entrée  :

 

Le premier terme correspond à la distance de l'entrée reconstruite par rapport à l'entrée originale tandis que le second terme correspond à la condition de parcimonie.

Toute la difficulté de l'apprentissage pour le codage parcimonieux est d'apprendre à la fois un dictionnaire ainsi que les poids. Pour ce faire, on fixe alternativement un des paramètres pour entrainer l'autre à l'aide d'une descente de gradient stochastique[2].

Les algorithmes les plus utilisés pour faire cela sont LARS et Frank-Wolfe [2]

Amélioration

modifier

Des améliorations peuvent être apportées à la construction précédente en rajoutant des conditions sur le dictionnaire ou sur les poids. On peut notamment montrer que l'ajout de l'invariance par translation via une convolution apporte des résultats meilleurs et permettent d'obtenir un dictionnaire plus complexe car il y a moins d'éléments redondants dans celui-ci[3].

Notes et références

modifier
  1. Wiki de Stanford sur le sparse coding : http://ufldl.stanford.edu/wiki/index.php/Sparse_Coding
  2. a et b Julien Mairal, Francis Bach, Jean Ponce et Guillermo Sapiro, « Online Learning for Matrix Factorization and Sparse Coding », dans Journal of Machine Research 11, 2010 (lire en ligne).
  3. Site pour obtenir l'article: http://www.mitpressjournals.org/doi/abs/10.1162/NECO_a_00670?journalCode=neco#.V34_QbO_1UQ


📚 Artikel Terkait di Wikipedia

Apprentissage profond

 101-102. (en) A. Halpern et J. R. Smith (octobre 2015), « Deep Learning, Sparse Coding, and SVM for Melanoma Recognition in Dermoscopy Images », dans Machine

Codage neuronal

1038/nature03687). (en) Quiroga, Kreiman, Koch et Fried, « Sparse but not 'Grandmother-cell' coding in the medial temporal lobe », Trends in Cognitive Sciences

Représentation mentale

1038/nature03687). (en) Quiroga, Kreiman, Koch et Fried, « Sparse but not 'Grandmother-cell' coding in the medial temporal lobe », Trends in Cognitive Sciences

Anthropic

une technique nécessitant d'importantes ressources informatiques appelée sparse dictionnary learning (« apprentissage de dictionnaire parcimonieux »), Anthropic

Bibliographie sur Brueghel l'Ancien

Rockmore Daniel N. 2009, Quantification of artistic style through sparse coding analysis in the drawings of Pieter Bruegel the Elder Hulin de Loo Georges

Dina Katabi

le 8 novembre 2015). « Nearly Optimal Sparse Fourier Transform » 2012. « Simple and practical algorithm for sparse Fourier transform » 2012. « High-throughput

K-anonymisation

ligne). (en) Narayanan et Shmatikov, « Robust De-anonymization of Large Sparse Datasets » [PDF]. (en) Roberto J. Bayardo et Rakesh Agrawal, « Data Privacy

Perception humaine

(en) R. Quian Quiroga, G. Kreiman, C. Koch et I. Fried, « Sparse but not "Grandmother-cell" coding in the medial temporal lobe », ScienceDirect,‎ 2008 (lire