Paper
https://doi.org/10.1038/s41467-025-64978-8
Vector/matrix E–I reservoir
Let
-
$\mathbf{v}(t)\in\mathbb{R}^N$ (state), $\mathbf{r}(t)\in[0,1]^N$ (rates), $\mathbf{u}(t)\in\mathbb{R}^d$ (input)
-
$\mathbf{A}^E,\mathbf{A}^I\in\mathbb{R}^{N\times N}$ (exc./inh. recurrent weights)
-
$\mathbf{W}^{in}\in\mathbb{R}^{N\times d}$ (input weights)
-
$\boldsymbol{\Lambda}=\mathrm{diag}(\boldsymbol{\lambda})\in\mathbb{R}^{N\times N}$ (leak), $\boldsymbol{\theta}(t)\in\mathbb{R}^N$ (thresholds)
-
$\mathbf{1}\in\mathbb{R}^N$ is the all-ones vector.
Dynamics
$$\mathbf{v}(t+\Delta t)
=
\boldsymbol{\Lambda}\mathbf{v}(t)
+
(\mathbf{A}^E-\mathbf{A}^I)\mathbf{r}(t)
+
\mathbf{W}^{in}\mathbf{u}(t)$$
$$\mathbf{r}(t)=\boldsymbol{\phi}\!\big(\mathbf{v}(t)-\boldsymbol{\theta}(t)\big)$$
Elementwise sigmoid:
$$\phi(x)=\frac{1}{1+e^{-cx}}$$
Elementwise inverse (logit):
$$\phi^{-1}(\rho)=\frac{1}{c}\log\!\left(\frac{\rho}{1-\rho}\right)$$
Global E–I balance
$$\boldsymbol{\beta}=(\mathbf{A}^E-\mathbf{A}^I)\mathbf{1}$$
$$\beta=\frac{1}{N}\mathbf{1}^\top\boldsymbol{\beta}
=\frac{1}{N}\mathbf{1}^\top(\mathbf{A}^E-\mathbf{A}^I)\mathbf{1}$$
Inhibitory plasticity
Componentwise: $A^I_{ij}\leftarrow A^I_{ij}+\delta,(r_i-\rho_i)$
Matrix form:
$$\mathbf{A}^I(t+1)=\mathbf{A}^I(t)+\delta\,(\mathbf{r}(t)-\boldsymbol{\rho})\mathbf{1}^\top$$
Optional fixed sparsity mask $\mathbf{M}^I\in{0,1}^{N\times N}$:
$$\mathbf{A}^I(t+1)=\mathbf{A}^I(t)+\mathbf{M}^I\odot\Big(\delta\,(\mathbf{r}(t)-\boldsymbol{\rho})\mathbf{1}^\top\Big)$$
One-shot inhibitory rescaling (row-wise)
$$\mathbf{A}^{I,\text{new}}=\boldsymbol{\Omega}\mathbf{A}^I,
\qquad
\boldsymbol{\Omega}=\mathrm{diag}(\boldsymbol{\omega})$$
Elementwise (vector) expression:
$$\boldsymbol{\omega}
=
\frac{
\boldsymbol{\phi}^{-1}(\boldsymbol{\rho})
+\boldsymbol{\theta}
-\mathbf{W}^{in}\langle \mathbf{u}\rangle
-\mathbf{A}^E\boldsymbol{\rho}
}{
\mathbf{A}^I\boldsymbol{\rho}
}$$
Official implementation
https://codeocean.com/capsule/2278576/tree/v1