Avant-Propos
Je tiens à remercier chaleureusement Boris ALBAR, Pierre BEDU et Nicolas PREVOT d’avoir accepté de monter un groupe de travail sur le sujet des SSM et de m’avoir ainsi accompagné dans la découverte de ce type de modèle. Un remerciement supplémentaire au premier pour avoir pris le temps de relire cet article de blog.
Introduction
Les States Spaces Models (ou Modèles en Espace d’Etat en français) sont utilisés traditionnellement en théorie du contrôle afin de modéliser un système dynamique via des variables d’état.
Aaron R. VOELKER et Chris ELIASMITH se sont penchés sur la question de savoir comment le cerveau représente efficacement les informations temporelles. Ils ont découvert en 2018 dans « Improving Spiking Dynamical Networks: Accurate Delays, Higher-Order Synapses, and Time Cells » qu’un SSM est un excellent modèle pour décrire les « cellules temporelles » présentes dans le cerveau (hippocampe et cortex notamment).
Des neurosciences, ils ont appliqué leur travail au domaine de l’apprentissage profond et ont ainsi été (à notre connaissance) les premiers à utiliser des SSM en apprentissage profond. Pour plus de détails sur ces travaux, nous invitons le lecteur à se référer à la section « Histoire des SSM » disponible en fin de cet article de blog.
Dans cet article, nous allons définir les bases d’un SSM en apprentissage profond. Pour cela nous allons nous appuyer notamment sur le S4 introduit dans « Efficiently Modeling Long Sequences with Structured State Spaces » d’Albert GU et al. (2021).
Celui-ci n’est pas un modèle qui est utilisé tel quel en pratique (d’autres SSM plus performants ou plus faciles à implémenter étant maintenant disponibles). Nous l’utilisons ici à une vocation pédagogique. Sorti une semaine plus tôt que le S4, le LSSL, par les mêmes auteurs, est également une source importante d’informations sur le sujet. Nous verrons les différentes évolutions qui découlent du S4 dans un prochain article de blog. Plongeons-nous auparavant dans les bases des SSM.
Définition d’un SSM en apprentissage profond
Utilisons l’image ci-dessous afin de définir un SSM :
Figure 1 : Vue d’un SSM continu et invariant dans le temps (Source : https://en.wikipedia.org/wiki/State-space_representation) |
On peut observer qu’un SSM repose sur trois variables dépendant du temps \(t\) :
- \(x(t) \in \mathbb {C}^{n}\) représente les \(n\) variables d’état,
- \(u(t) \in \mathbb {C}^{m}\) représente les \(m\) entrées d’état,
- \(y(t) \in \mathbb {C}^{p}\) représente les \(p\) sorties,
On peut aussi observer qu’il est composé de quatre matrices pouvant être apprises : \(\mathbf A, \mathbf B, \mathbf C\) et \(\mathbf D\).
- \(\mathbf A \in \mathbb {C}^{n \times n}\) est la matrice d’état (contrôlant l’état lattent \(x\)),
- \(\mathbf B \in \mathbb {C}^{n \times m}\) est la matrice de contrôle,
- \(\mathbf C \in \mathbb {C}^{p \times n}\) est la matrice de sortie,
- \(\mathbf D \in \mathbb {C}^{p \times m}\) est la matrice de commande,
Il est possible de ramener l’image ci-dessus au système d’équations suivant :
\[\begin{aligned} x'(t) &= \mathbf{A}x(t) + \mathbf{B}u(t) \\ y(t) &= \mathbf{C}x(t) + \mathbf{D}u(t) \end{aligned}\]Note : nous utilisons ici la notation \(x'\) pour désigner la dérivée de \(x\). Il n’est pas exclu de rencontrer à la place la notation \(ẋ\) dans la littérature.
De même, puisqu’il est implicite que les variables dépendent du temps, l’équation précédente est généralement écrite sous la forme suivante par souci d’allègement :
\[\begin{aligned} x' &= \mathbf{A}x + \mathbf{B}u \\ y &= \mathbf{C}x + \mathbf{D}u \end{aligned}\]Ce système peut s’alléger même davantage, car dans les SSM en apprentissage profond, \(\mathbf{D}u = 0\) est vue comme une skip connexion facilement calculable.
\[\begin{aligned} x' &= \mathbf{A}x + \mathbf{B}u \\ y &= \mathbf{C}x \end{aligned}\]Ce système est continu. Il doit donc d’abord être discrétisé afin de pouvoir être fourni à un ordinateur.
Discrétisation
La discrétisation est l’un, voire le point le plus important dans les SSM. Toute l’efficacité de cette architecture réside dans cette étape puisqu’elle permet de passer de la vue continue du SSM à ses deux autres vues : la vue récursive et la vue convolutive.
S’il n’y a qu’une chose à retenir de cet article, c’est bien celle-ci.
Figure 2 : Image provenant de l’article de blog « Structured State Spaces: Combining Continuous-Time, Recurrent, and Convolutional Models » d’Albert GU et al. (2022) |
Nous verrons dans les prochains articles qu’il existe plusieurs discrétisations possibles. Ce point forme l’une des différences principales entre les diverses architectures de SSM existantes.
Pour ce premier article, appliquons la discrétisation « originale » proposée dans le S4 afin d’illustrer les deux vues supplémentaires d’un SSM.
Vue récursive d’un SSM
Pour discrétiser le cas continu, utilisons la méthode des trapèzes où le principe est d’assimiler la région sous la courbe représentative d’une fonction \(f\) définie sur un segment \([t_n , t_{n+1}]\) à un trapèze et d’en calculer l’aire \(T\) : \(T=(t_{n+1} - t_n){\frac {f(t_n)+f(t_{n+1})}{2}}\).
On a alors : \(x_{n+1} - x_n = \frac{1}{2}\Delta(f(t_n) + f(t_{n+1}))\) avec \(\Delta = t_{n+1} - t_n\).
Si \(x'_n = \mathbf{A}x_n + \mathbf{B} u_n\) (première ligne de l’équation d’un SSM), correspond à \(f\), alors :
(*) \(u_{n+1} \overset{\Delta}{\simeq} u_n\) (le vecteur de contrôle est supposé constant sur un petit \(\Delta\)).
Nous venons d’obtenir notre SSM discrétisé !
Pour que cela soit complètement explicite, posons :
On a alors
\[\begin{aligned} x_k &= \mathbf{\bar{A}}x_{k-1} + \mathbf{\bar{B}}u_k \\ y_k &= \mathbf{\bar{C}}x_k \end{aligned}\]La notation des matrices avec une barre a été introduite dans le S4 pour désigner les matrices dans le cas discret et est devenue depuis une convention dans le domaine des SSM appliqués à l’apprentissage profond.
Vue convolutive d’un SSM
Cette récurrence peut s’écrire sous la forme d’une convolution. Pour cela, il suffit d’itérer les équations du système
\[\begin{aligned} x_k &= \mathbf{\bar{A}}x_{k-1} + \mathbf{\bar{B}}u_k \\ y_k &= \mathbf{\bar{C}}x_k \end{aligned}\]Commençons par la première ligne du système :
Etape 0 : \(x_0 = \mathbf{\bar{B}} u_0\)
Etape 1 : \(x_1 = \mathbf{\bar{A}}x_{0} + \mathbf{\bar{B}}u_1 = \mathbf{\bar{A}} \mathbf{\bar{B}} u_0 + \mathbf{\bar{B}}u_1\)
Etape 2 : \(x_2 = \mathbf{\bar{A}}x_{1} + \mathbf{\bar{B}}u_2 = \mathbf{\bar{A}} (\mathbf{\bar{A}} \mathbf{\bar{B}} u_0 + \mathbf{\bar{B}}u_1) + \mathbf{\bar{B}}u_2 = \mathbf{\bar{A}}^{2} \mathbf{\bar{B}} u_0 + \mathbf{\bar{A}} \mathbf{\bar{B}} u_1 + \mathbf{\bar{B}}u_2\)
Nous avons \(x_k\) qui peut s’écrire sous la forme d’une fonction \(f\) paramétrée par \(u_0, u_1, … u_k\).
Passons ensuite à la seconde ligne du système où il est à présent possible d’injecter les valeurs \(x_k\) calculées à l’instant :
Etape 0 : \(y_0 = \mathbf{\bar{C}} x_0 = \mathbf{\bar{C}} \mathbf{\bar{B}} u_0\)
Etape 1 : \(y_1 = \mathbf{\bar{C}} x_1 = \mathbf{\bar{C}} ( \mathbf{\bar{A}} \mathbf{\bar{B}} u_0 + \mathbf{\bar{B}}u_1) = \mathbf{\bar{C}} \mathbf{\bar{A}} \mathbf{\bar{B}} u_0 + \mathbf{\bar{C}} \mathbf{\bar{B}}u_1\)
Etape 2 : \(y_2 = \mathbf{\bar{C}} x_2 = \mathbf{\bar{C}}(\mathbf{\bar{A}}^{2} \mathbf{\bar{B}} u_0 + \mathbf{\bar{A}} \mathbf{\bar{B}} u_1 + \mathbf{\bar{B}}u_2 ) = \mathbf{\bar{C}}\mathbf{\bar{A}}^{2} \mathbf{\bar{B}} u_0 + \mathbf{\bar{C}}\mathbf{\bar{A}} \mathbf{\bar{B}} u_1 + \mathbf{\bar{C}}\mathbf{\bar{B}}u_2\)
On peut observer le noyau de convolution \(\mathbf{\bar{K}} _k = (\mathbf{\bar{C}} \mathbf{\bar{B}}, \mathbf{\bar{C}} \mathbf{\bar{A}} \mathbf{\bar{B}}, …, \mathbf{\bar{C}} \mathbf{\bar{A}}^{k} \mathbf{\bar{B}})\) applicable aux \(u_k\), d’où \(K \ast u\).
Comme pour les matrices, nous appliquons une barre sur le \(\mathbf{\bar{K}}\) pour spécifier qu’il s’agit du noyau de convolution obtenu après discrétisation. Il est généralement appelé noyau de convolution SSM dans la littérature et sa taille est équivalente à l’entièreté de la séquence d’entrée.
Ce noyau de convolution est calculé par Transformation de Fourier Rapide (FFT) et sera explicité dans les prochains articles (vous aimez la Flash Attention des transformers ? Vous adorerez la Flash FFT Convolution que nous verrons dans le troisième article de blog).
Avantages et limites de chacune des trois vues
Figure 3 : Image provenant du papier « Combining Recurrent, Convolutional, and Continuous-time Models with Linear State-Space Layers » d’Albert GU et al., sorti à une semaine d’intervalle du S4 |
Les vues différentes du SSM ont chacunes des avantages et des inconvénients, détaillons-les.
Pour la vue continue, les avantages et inconvénients sont les suivants :
✓ Gère automatiquement les données continues (signaux audio, séries temporelles, par exemple). Cela représente énorme avantage pratique pour traiter des données à échantillonnage irrégulier ou décalé dans le temps.
✓ Analyse mathématiquement réalisable, par exemple en calculant des trajectoires exactes ou en construisant des systèmes de mémorisation (HiPPO).
✗ Extrêmement lent à la fois pour la formation et l’inférence.
Pour la vue récursive, il s’agit ici des avantages et inconvénients bien connus des réseaux de neurones récurrents (voir l’article qui leur est consacré sur le blog) à savoir :
✓ Un biais inductif naturel pour les données séquentielles, et en principe un contexte non borné.
✓ Une inférence efficace (mises à jour d’état en temps constant).
✗ Un apprentissage lent (manque de parallélisme).
✗ Une disparition ou explosion du gradient lors de l’entraînement de séquence trop longues.
Pour la vue convolutive, il s’agit ici des avantages et inconvénients bien connus des réseaux de neurones convolutifs (nous sommes ici dans le cadre de leur version unidimensionnelle), à savoir :
✓ Caractéristiques locales et interprétables.
✓ Entraînement efficace (parallélisable).
✗ Lenteur dans les contextes en ligne ou autorégressifs (doit recalculer l’ensemble de l’entrée pour chaque nouveau point de données).
✗ Taille de contexte fixe.
Ainsi, en fonction de l’étape du processus (entraînement ou inférence) ou du type de données à notre disposition, il est possible de passer d’une vue à une autre afin de retomber sur un cadre favorable permettant de tirer le meilleur parti du modèle.
Nous priviliègierons la vue convolutive pour l’entraînement pour un entraînement rapide via la parallélisation, la vue récursive pour une inférence efficace, et la vue continue pour traiter des données continues.
Apprentissage des matrices
Dans le noyau de convolution développé plus haut, \(\mathbf{\bar{C}}\) et \(\mathbf{\bar{B}}\), sont des scalaires apprenables.
Concernant \(\mathbf{\bar{A}}\), nous avons vu que dans notre noyau de convolution, elle s’exprime comme une puissance de \(k\) au temps \(k\). Cela peut être très long à calculer c’est pourquoi, on cherche à avoir \(\mathbf{\bar{A}}\) fixe. Pour cela, la meilleure option est de l’avoir diagonale :
Par le théorème spectral de l’algèbre linéaire, il s’agit exactement de la classe des matrices normales.
En plus du choix de la discrétisation citée ci-dessus, la manière de définir et initier \(\mathbf{\bar{A}}\) est l’un des points qui différencient les diverses architectures de SSM développées dans la littérature que nous développerons dans le prochain article de blog. En effet, empiriquement, il apparait qu’un SSM initialisé avec une matrice \(\mathbf{A}\) aléatoire conduit à de mauvais résultats alors qu’une initialisation effectuée à partir de la matrice \(HiPPO\) (pour High-Order Polynomial Projection Operator) donne des résultats très bons (passage de de 60% à 98% sur le benchmark MNIST sequential).
La matrice \(HiPPO\) a été introduite par les auteurs du S4 dans un précédent papier (2020). Elle est reprise dans le papier LSSL (2021), aussi par les auteurs du S4, ainsi que dans l’appendix du S4. Sa formule est la suivante :
\[\mathbf{A} = \begin{bmatrix} 1 \\ -1 & 2 \\ 1 & -3 & 3 \\ -1 & 3 & -5 & 4 \\ 1 & -3 & 5 & -7 & 5 \\ -1 & 3 & -5 & 7 & -9 & 6 \\ 1 & -3 & 5 & -7 & 9 & -11 & 7 \\ -1 & 3 & -5 & 7 & -9 & 11 & -13 & 8 \\ \vdots & & & & & & & & \ddots \\ \end{bmatrix} \\ \Rightarrow \mathbf{A}_{nk} = \begin{cases}% (-1)^{n-k} (2k+1) & n > k \\ k+1 & n=k \\ 0 & n<k \end{cases}\]Cette matrice n’est pas normale mais elle peut être décomposée sous la forme d’une matrice normale plus une matrice de rang inférieur (résumé dans le papier par NPLR pour Normal Plus Low Rank). Les auteurs prouvent dans leur papier que ce type de matrice peut être calculé efficacement via trois techniques (voir l’algorithme 1 dans le papier) : série génératrice tronquée, noyaux de Cauchy et identité de Woodbury.
Les détails de la démonstration montrant qu’une matrice NPLR peut être calculée efficacement comme une matrice diagonale peuvent être consultés dans l’appendix (voir la partie B et C) du papier.
Les auteurs du S4 ont par la suite apporté des modifications à la matrice \(HiPPO\) (sur la manière de l’initier) dans leur papier « How to Train Your HiPPO » (2022). Le modèle résultant de ce papier est généralement appelé « S4 V2 » ou « S4 updated » dans la littérature à opposer au « S4 original » ou « S4 V1 ».
Nous verrons dans le prochain article, que d’autres auteurs (notamment Ankit GUPTA) ont proposé d’utiliser une matrice diagonale au lieu d’une matrice NPRL, approche qui est à présent privilégiée car plus simple à implémenter.
Résultats des expérimentations
Terminons cet article de blog en analysant une sélection des résultats du S4 sur diverses tâches et benchmarks afin de nous rendre compte du potentiel des SSM.
Commençons avec une tâche d’audio et le benchmark Speech Commands de WARDEN (2018).
Figure 4 : Image provenant du papier « On the Parameterization and Initialization of Diagonal State Space Models » d’Albert GU et al. (2022), aussi connu sous le nom de S4D parru après le S4 mais qui reprend sous une forme plus structurée les résultats du S4 pour ce benchmark (les résultats du S4D ayant été supprimés de l’image pour ne pas spoiler le prochain article ;) |
On peut observer plusieurs choses sur ce tableau.
Premièrement qu’à nombre de paramètres plus ou moins équivalent, le S4 fait beaucoup mieux (au moins + 13%) que les autres modèles, ici de type ConvNet.
Deuxièmement, pour obtenir des performances équivalentes, un ConvNet nécessite 85 fois plus de paramètres.
Troisièmement, un ConvNet entraîné sur du 16K Hz donne de très mauvais résultats quand il est ensuite appliqué sur des données 8K Hz. A contrario, le S4 conserve 95% de sa performance sur ce ré-échantillonage. Cela s’explique par la vue continue du SSM où il a suffit de diviser par deux la valeur de \(\Delta\) au moment de la phase de test.
Continuons avec une tâche de séries temporelles (introduite dans une révision du S4).
Figure 5 : Image provenant de l’appendix du S4 |
Les auteurs du papier reprennent la méthodologie du modèle « Informer » de ZHOU et al. (2020) et montrent que leur modèle surpasse ce transformer sur 40 des 50 configurations. Les résultats du tableau sont montrés dans un cadre univarié mais la même chose est observable pour un cadre multivarié (table 14 dans l’appendix).
Poursuivons avec une tâche de vision et le benchmark sCIFAR-10 de KRIZHESKY (2009).
Figure 6 : Image provenant de l’appendix du S4 |
Le S4 établit le SoTA sur sCIFAR-10 avec seulement 100 000 paramètres (les auteurs ne précisant pas leur nombre pour les autres méthodes).
Concluons avec une tâche textuelle et le benchmark Long Range Arena (LRA) de TAY et al. (2020).
Figure 7 : Image provenant de l’appendix du S4 |
Le LRA est composé de 6 tâches dont Path-X d’une longueur de 16K tokens pour laquelle le S4 est le premier modèle à la réussir démontrant ses performances sur des tâches de très longues séquences.
Il faudra plus de 2 ans pour qu’AMOS et al. montre dans leur papier « Never Train from Scratch: Fair Comparison of Long-Sequence Models Requires Data-Driven Priors » (2023) que les transformers (introduits par Ashish VASWANI et al. (2017)) (non hybridés avec un SSM) peuvent aussi résoudre cette tâche. Ils n’arrivent cependant pas à passer le PathX-256 d’une longueur de 65K tokens contrairement aux SSM.
A noter néanmoins un point négatif concernant le texte pour le S4 : il obtient une perplexité plus élevée par rapport à celle d’un transformer (standard, des versions plus optimisées ayant une perplexité encore plus faible) sur WikiText-103 de MERITY et al. (2016).
Figure 8 : Image provenant de l’appendix du S4 |
Cela s’explique probablement par la nature non continue du texte (il n’a pas été échantillonné à partir d’un processus physique sous-jacent comme la parole ou les séries temporelles). Nous verrons dans l’article consacré aux évolutions des SSM en 2023 que ce point a fait l’objet de beaucoup de travaux et que les SSM ont aujourd’hui réussi à combler cet écart.
Conclusion
Les SSM sont des modèles possédant trois vues. Une vue continue, et lorsque nous la discrétisons, une vue récurrente ainsi que convolutive.
Tout l’enjeu de ce type d’architecture consiste à savoir quand privilégier une vue plutôt qu’une autre en fonction de l’étape du processus (entraînement ou inférence) et du type de données traitées.
Ce type de modèle est très versatile puisqu’il est applicable pour les tâches de texte, de vision, d’audio, de séries temporelles (ou encore aux graphes).
Un de ses atouts est d’être capable de gérer de très longues séquences pour généralement un nombre de paramètres inférieurs aux autres modèles (ConvNet ou transformers) tout en étant très rapide.
Nous verrons dans les prochains articles que les principales différences entre les diverses architectures de SSM existantes viennent principalement de la façon de discrétiser l’équation de base des SSM ou encore de définir la matrice \(\mathbf A\).
Pour aller plus loin
Histoire des SSM
Publié deux ans avant le S4, en décembre 2019, le LMU de VOELKER, KAJIĆ et ELIASMITH peut être considéré comme l’ancêtre du S4. Dans cet article, les auteurs initient la vue récurrente en proposant une alternative à la LSTM de HOCHREITER et SCHMIDHUBER, qui souffre d’un problème de disparition du gradient lorsque le nombre d’étapes traitées devient trop élevé (limité entre 100 et 5000 selon les variantes). Dans ce papier, ils montrent que leur modèle est capable de traiter plus de 100 000 pas (VOELKER est même allé jusqu’à plus de 1 000 000 000 de pas dans la section 6.1 de sa thèse). Pour ce faire, ils utilisent l’EDO x′(t) = Ax(t) + Bu(t) (dans l’article, x est noté m), qu’ils discrétisent via la méthode d’Euler. Les matrices A et B sont obtenues par l’approximant de Padé, qui a fortement inspiré le cadre HiPPO. La propriété clé de ce système dynamique est que x représente des fenêtres glissantes de u via des polynômes de Legendre jusqu’au degré d - 1. Nous invitons le lecteur à consulter la section 2 de l’article pour plus de détails.
Comme indiqué dans l’introduction, ce papier est une application à l’apprentissage profond d’un modèle davantage orienté neuroscience publié en 2018 par les mêmes auteurs.
Concluons en mentionnant une suite du LMU datant de février 2021 par CHILKURI et ELIASMITH. Dans cet article, ils montrent comment calculer efficacement leur modèle. Pour ce faire, ils parallélisent l’apprentissage en réécrivant leur EDO de manière non séquentielle (voir la page 3 de l’article en particulier), ce qui permet d’utiliser des outils classiques de théorie du contrôle (voir l’équation 22 de l’article et ÅSTRÖM et MURRAY pour plus de détails) et de faire apparaitre la vue convolutive. Ils obtiennent de meilleurs résultats que DistillBERT par SANH et al. (2019) avec moitié moins de paramètres et en effectuant une modélisation au niveau des caractères sur le jeu de données text8. Notons également que les auteurs discrétisent leur SSM via ZOH (Zero Order Hold ; bloqueur d’ordre zéro en français), sur lequel nous reviendrons plus en détail dans le prochain article de blog.
Ressources sur les SSM
Concernant les SSM, vous pouvez regarder :
- le cours (en français) sur les systèmes dynamiques d’Ion HAZYUK, Maitre de Conferences à l’INSA de Toulouse (la partie les modèles en espace d’état débutent à partie de la section 5.2)
- la thèse de doctorat (en anglais) d’Albert GU
Ressources sur le S4
Concernant le S4, vous pouvez consulter les ressources suivantes (toutes en anglais) :
- Vidéos :
- Efficiently Modeling Long Sequences with Structured State Spaces - Albert Gu - Stanford MLSys #46 par Albert GU
- MedAI #41: Efficiently Modeling Long Sequences with Structured State Spaces par Albert GU (un peu plus longue car montre plus d’exemples traités)
- JAX Talk: Generating Extremely Long Sequences with S4 par Sasha RUSH + les slides utilisées dans la vidéo
- Codes :
- The Annotated S4 (en Jax) par Sasha RUSH et Sidd KARAMCHETI
- Le GitHub de l’implémentation officielle du S4 (en PyTorch)
- Articles de blog :
Ressources sur HiPPO
Concernant la matrice \(HiPPO\), vous pouvez consulter les ressources suivantes (toutes en anglais) :
- L’article du blog Hazy Research consacré au sujet
- Le papier How to Train Your HiPPO: State Space Models with Generalized Orthogonal Basis Projections d’Albert GU et al. (2022)
Références
- Long short-term memory de Sepp HOCHREITER, Jürgen SCHMIDHUBER (1997)
- Feedback Systems de Karl Johan ÅSTRÖM, Richard M. MURRAY (2012 version)
- Learning Multiple Layers of Features from Tiny Images d’Alex KRIZHESKY (2009)
- Pointer Sentinel Mixture Models de Stephen MERITY, Caiming XIONG, James BRADBURY, Richard SOCHER (2016)
- Attention is all you need d’Ashish VASWANI, Noam SHAZEER, Niki PARMAR, Jakob USZKOREIT, Llion JONES, Aidan N. GOMEZ, Lukasz KAISER, Illia POLOSUKHIN (2017)
- Speech Commands: A Dataset for Limited-Vocabulary Speech Recognition de Pete WARDEN (2018)
- Improving Spiking Dynamical Networks: Accurate Delays, Higher-Order Synapses, and Time Cells d’Aaron R. VOELKER, Chris ELIASMITH (2018)
- Legendre Memory Units: Continuous-Time Representation in Recurrent Neural Networks d’Aaron R. VOELKER, Ivana KAJIĆ, Chris ELIASMITH (2019)
- Dynamical Systems in Spiking Neuromorphic Hardware d’Aaron R. VOELKER (2019)
- DistilBERT, a distilled version of BERT: smaller, faster, cheaper and lighter de Victor SANH, Lysandre DEBUT, Julien CHAUMOND, Thomas WOLF (2019)
- Long Range Arena: A Benchmark for Efficient Transformers de Yi TAY, Mostafa DEHGHANI, Samira ABNAR, Yikang SHEN, Dara BAHRI, Philip PHAM, Jinfeng RAO, Liu YANG, Sebastian RUDER, Donald METZLER (2020)
- Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting de Haoyi ZHOU, Shanghang ZHANG, Jieqi peng, Shuai ZHANG, Jianxin LI, Hui XIONG, Wancai ZHANG (2020)
- HiPPO: Recurrent Memory with Optimal Polynomial Projections d’Albert GU, Tri DAO, Stefano ERMON, Atri RUDRA, Christopher RÉ (2020)
- Parallelizing Legendre Memory Unit Training de Narsimha CHILKURI, Chris ELIASMITH (2021)
- Combining Recurrent, Convolutional, and Continuous-time Models with Linear State-Space Layers d’Albert GU, Isys JOHNSON, Karan GOEL, Khaled SAAB, Tri DAO, Atri RUDRA, Christopher RÉ (2021)
- Efficiently Modeling Long Sequences with Structured State Spaces d’Albert GU, Karan GOEL, Christopher RÉ (2021)
- How to Train Your HiPPO: State Space Models with Generalized Orthogonal Basis Projections d’Albert GU, Isys JOHNSON, Aman TIMALSINA, Atri RUDRA, Christopher RÉ (2022)
- On the Parameterization and Initialization of Diagonal State Space Models d’Albert GU, Ankit GUPTA, Karan GOEL, Christopher RÉ (2022)
- Modeling sequences with structured state spaces d’Albert GU (2023)
- Never Train from Scratch: Fair Comparison of Long-Sequence Models Requires Data-Driven Priors d’Ido AMOS, Jonathan BERANT, Ankit GUPTA (2023)
Citation
@inproceedings{ssm_introduction_blog_post,
author = {Loïck BOURDOIS},
title = {Introduction aux State Space Models (SSM) et au S4},
year = {2023},
url = {https://lbourdois.github.io/blog/ssm/introduction_ssm}
}