Training Overview
The training framework is designed to be modular and highly configurable, facilitating the training of hierarchical dynamical systems reconstruction (DSR) models. It allows researchers to move from simple single-subject models to complex, multi-modal, hierarchical architectures that learn shared dynamics across populations.
All experiments are typically configured and executed via the ubermain.py entry point.
Core Architecture
The training pipeline constructs an Autoencoder-like structure with a dynamic bottleneck:
- Encoder: Projects high-dimensional observations (timeseries) into a latent state space.
- Latent Step (DSR): The core dynamical model (e.g., PLRNN, ALRNN) that learns the temporal evolution of the latent states.
- Decoder: Reconstructs the observations from the latent states, supporting various distributions (Gaussian, Categorical, etc.).
Hierarchical Learning
A standout feature is Hierarchisation. The framework can decouple parameters into:
- Group Level: Shared across all subjects/time series.
- Subject Level: Specific to individual entities. This enables the model to capture general dynamical laws (shared dynamics) while adapting to individual variability.
Optimization & Automation
The framework integrates powerful tools for model selection and tuning:
- Hyperparameter Search: Built-in support for:
- Grid Search: For systematic exploration of concepts.
- Optuna (Bayesian Optimization): For efficient, automated tuning of hyperparameters using the Tree-structured Parzen Estimator (TPE).
- Early Stopping: Monitors test metrics to automatically terminate training, preventing overfitting and optimizing resource usage.
Evaluator Configuration
Although strictly not part of the training, the pipeline contains tools to automatically evaluate the model during the course of the training. Before starting the training it is advised to configure the evaluators to receive the most relevant information.
Running a Training Run
After modifying the configuration in ubermain.py, run:
python ubermain.py