Reservoir Computing

(IN FRENCH, English version coming soon)

Présentation du concept et intérêt pour la modélisation en neurosciences

Le Reservoir Computing (RC) est un paradigme relativement nouveau pour entraîner des Réseaux de Neurones Récurrents (RNN en anglais) qui tient ses origines aussi bien du domaine de l’Apprentissage Artificiel [Jae01, JH04, Ste04] que des Neurosciences Computationelles [BM95, Dom95, MNM02]. Ce concept est lié à celui des Support Vector Machines [Vap95] : les entrées sont projetées dans un espace de haute dimension afin d’obtenir une représentation non-linéaire "riche" des entrées (recombinées), puis un appariement (e.g. régression) linaire* entre l’espace de haute dimension et les unités de sortie (read-out units) est créé (i.e. appris). Les dynamiques spontanées de la couche cachée récurrente (appelée reservoir) permettent l’encodage temporel et contextuel de l’information. C’est pour ces raisons que le RC est souvent assimilé à un "SVM temporel". Pour une revue théorique et pratique sur les Echo State Networks** se référer à [Jae01, Jae02], et en particulier à [JLPS07] pour plus de détails sur la version que j’emploie avec des neurones leaky-integrator*** (voir les équations ci-dessous).

Récemment Rigotti et al. [RBWW+13] ont utilisé des méthodes du RC pour analyser des enregistrements électrophysiologiques du PFC chez le singe ; ils parlent de "sélectivité distribuée" pour décrire cette activité. Ils ont montré que plus l’activité neuronale était de grande dimension, plus le singe produisait des réponses correctes : une activité avec une dimension faible prédisait une erreur de la part du singe. On peut supposer qu’un tel mécanisme composé d’une multitude de décodeurs linéaires (e.g. les ganglions de la base) s’appuyant sur une activité de haute dimension (e.g. PFC) soit implémenté dans le cerveau, car un décodage linéaire peut se faire avec un simple apprentissage de type hebbien.

C’est justement cet aspect multidimensionnel non-linéaire et cette "sélectivité distribuée" que je cherche à modéliser : je veux insister sur l’importance de telles dynamiques et la richesse des informations qu’elles portent.

* L’utilisation de méthodes linéaires est peu coûteuse computationnellement et suffisante puisque les représentations non-linéaires de haute dimension sont déjà présentes dans le réservoir.

** Les Echo State Networks (ESN) sont le type d’implémentation du concept de Reservoir Computing que j’utilise dans mes recherches.

*** Le leaking rate correspond à l’inverse de la constance de temps (τ) des neurones du réservoir : α = 1 / τ.

Equations du réservoir (ici un ESN):

Les équations décrivant les états du réservoir (ici un ESN avec neurones leaky) et de la couche de sortie (read-out) sont les suivantes :

x(t + 1) = (1 − α)x(t) + α f(Win.u(t) + W.x(t))

y(t) = Wout.[1 ; x(t)]

avec

    • x le vecteur d’état du réservoir,

    • y le vecteur de sortie,

    • u le vecteur des entrées,

    • Win la matrice de connexion des entrées vers le réservoir,

    • W la matrice des connexions récurrentes du réservoir,

    • Wout la matrice des connexions du réservoir à la couche de sortie,

    • α le "taux de fuite ou leaking rate,

    • f est la fonction de transfert des neurones du réservoir (on utilise la fonction tangente hyperbolique en général)

    • et [ ; ] la concaténation verticale de vecteurs.

Contrairement à d’autres approches, il n’est pas nécessaire d’entraîner tout le réseau de neurones : les matrices W in et W sont éparses et générées aléatoirement, seule la matrice W out est calculée à partir des activations du réservoir enregistrées pour tous les stimulus de la base d’apprentissage en utilisant une régression ridge (i.e. régression linéaire avec régularisation de Tikhonov).

Pour en savoir plus, en Anglais (par ordre croissant de "subtilité")

Pour en savoir plus, en Français

    • Voir le chapitre 3 de ma thèse intitulé "Reservoir Computing".

Références

    • [BM95] Buonomano D V, Merzenich M (1995) Temporal information transformed into a spatial code by a neural network with realistic properties. Science 267: 1028–1030.

    • [Dom95] Dominey PF (1995) Complex sensory-motor sequence learning based on recurrent state representation and reinforcement learning. Biological Cybernetics 73: 265–274.

    • [Jae01] Jaeger, H. (2001) The echo state approach to analysing and training recurrent neural networks. Bonn, Germany: German National Research Center for Information Technology GMD Technical Report, 148, 34.

    • [Jae02] Jaeger H. (2002) A tutorial on training recurrent neural networks, covering BPPT, RTRL, EKF and the "echo state network" approach. GDM Technical Report 159.

    • [JH04] Jaeger H, Haas H (2004) Harnessing nonlinearity: predicting chaotic systems and saving energy in wireless communication. Science, 304, 78–80.

    • [JLPS07] Jaeger, H., Lukosevicius, M., Popovici, D., Siewert, U. (2007) Optimization and applications of echo state networks with leaky-integrator neurons. Neural Networks, 20(3), 335-352.

    • [MNM02] Maass W, Natschläger T, Markram H (2002) Real-time computing without stable states: a new framework for neural computation based on perturbations. Neural computation 14: 2531–2560.

    • [RBWW+13] Rigotti M, Barak O, Warden MR, Wang X-J, Daw ND, et al. (2013) The importance of mixed selectivity in complex cognitive tasks. Nature. doi: 10.1038/nature12160

    • [Ste04] Steil JJ (2004) Backpropagation-decorrelation: online recurrent learning with O(N) complexity. IEEE International Joint Conference on Neural Networks, Vol. 2. pp. 843–848.

    • [Vap95] Vapnik, V. (1995) The Nature of Statistical Learning Theory. New York: Springer.

FAQ (Frequently Asked Questions)

    • Leaky or non-leaky neurons

Je n'arrive pas à comprendre l'utilité de la partie "leaky-integration" (1 − α)x(t) dans l'équation x(t + 1) = (1 − α)x(t) + α f(Win.u(t) + W.x(t)). Pour moi, son seul but est que l'état t influe sur l'état t+1 mais on tient déjà compte de l'état t lorsqu'on ajoute W.x(t).

      • Réponse

Pour info, "leaky neuron" en français se traduit par "neurone à fuite". Ces neurones fonctionnent en quelques sorte comme des condensateurs, c'est à dire que si l'on applique une entrée totale importante (supérieure ou égale à 1 par exemple) à un neurone leaky qui a un état égal à zéro, son activité à l'état suivant ne sera pas égale à 1, car il va mettre du temps à se "charger". Et à l'inverse, un neurone qui a un état proche de 1 qui ne reçoit plus aucune entrée, verra son activité diminuer peu à peu, mais pas d'un seul coup.

Un neurone "non-leaky" aura son état qui dépendra uniquement des entrées qu'il reçoit à un instant donné, et pas de "son propre état" à l'instant précédent.

C'est ça la différence entre W.x(t) dont le résultat est le vecteur pondéré des entrées pour chaque neurone, et (1-alpha)x(t) qui indique que l'état des neurones va aussi dépendre de leur état précédent. Si le terme (1-alpha)x(t) n'est pas inclus, alors les neurones eux-même n'ont pas de mémoire.

Le réservoir (ou ESN) va de lui-même avoir une certaine mémoire dynamique, même si les neurones ne sont pas leaky. Mais utiliser des leaky permet

au réservoir d'être plus sensibles aux variations "lentes" dans les entrées, et ainsi avoir une mémoire qui "remonte plus loin dans le temps" (des entrées) ce qui est utile pour beaucoup d'applications.

Le paramètre alpha va déterminer la "lenteur" des neurones à se "charger" ou "décharger". Plus c'est proche de 1, plus le chargement/déchargement sera rapide (donc mémoire des entrées à court terme), plus c'est proche de 0, plus le chargement/déchargement sera lent (donc mémoire des entrées à plus long terme).

Ce gain de "mémoire à plus long terme" n'est pas gratuit, car la pratique montre qu'il y a un "trade-off" entre la mémoire et la capacité du réservoir à "faire des calculs". Pour aller plus loin, on pourra se reporter à cet article par exemple: Information Processing Capacity of Dynamical Systems.