Skip to content

Optimizers

Vladimir Omelyusik edited this page May 17, 2023 · 3 revisions

ACT optimizers are divided into two classes, naive and non-naive.

Naive Optimizers

naive

At each epoch naive optimizers

  1. Generate a random conductance sample $g = [g_1, \ldots, g_{N_g}]^T$ within specified bounds. $g_i$ is conductance of channel $i$, e.g., $g = [g_{Na}, g_{K}]$.
  2. Pass $g$ to NEURON to generate a voltage trace for each current injection. The resulting traces are collected in the matrix $V$ of size (number of current injections $\times$ length of a voltage trace).
  3. Train a model to predict $g$ from $V$.

Naive optimizers use external data only for predictions; it is not used for training. Thus, naive optimizers are trained to restore conductance values from voltage traces on any data, i.e., in the most general setting. This results in high variance of predictions and high chance of convergence to local minima. Multistart is advised.

Default ACT optimizers:

  • NaiveLinearOptimizer

Non-Naive Optimizers

Training:

nonnaive_train

Predicting:

nonnaive_pred

At each training epoch non-naive optimizers

  1. Generate a random conductance sample $g = [g_1, \ldots, g_{N_g}]^T$ within specified bounds. $g_i$ is conductance of channel $i$, e.g., $g = [g_{Na}, g_{K}]$.
  2. Pass $g$ to NEURON to generate a voltage trace for each current injection. The resulting traces are collected in the matrix $V$ of size (number of current injections $\times$ length of a voltage trace).
  3. Train a model to predict $V_{tar}$, external voltage data of size (number of current injections $\times$ length of an external voltage trace) from $V$.

Lengths of external and simulated voltage traces are not required to match; length readjustment is done by the model.

Predictions are obtained by running random search for $K$ rounds. At each round

  1. A random conductance sample $g_i = [g_1, \ldots, g_{N_g}]^T$ within specified bounds is generated.
  2. The sample is passed through NEURON and the trained model to obtain predictions $\hat{V}_i$.
  3. The final prediction is the one which gives the smallest loss value, $$\hat{g} = \arg\min_{i=1,\ldots, K}\ell(V_{tar}, \hat{V}_i)$$.

Given a large $K$, non-naive optimizers are expected to produce a high-quality solution; convergence to the global minimum is not guaranteed.

Default ACT optimizers:

  • SBIOptimizer
  • RandomSearchLinearOptimizer
  • RandomSearchTreeOptimizer

Clone this wiki locally