Frozen-encoder personalization: Personalizer. Python streaming / sklearn: Python Streaming Inference, sklearn Integration. Julia streaming: Julia Streaming Inference.
Cross-subject training
Combine calibration data from multiple users, then personalize to a new user with a small labeled set. When a frozen trunk already transfers, preferPersonalizer + per-user calibration over full fine-tuning.
Core workflow:
- Extract the same feature type (or freeze the same encoder) for every subject.
- Normalize using training subjects only.
- Train a conservative baseline (
Personalizer(head="lda")orNimbusLDA). - Evaluate with subject-wise splits, not random trial splits.
- Personalize with a small calibration set for the target subject.
- Python
- Julia
Hybrid BCI
Hybrid BCIs combine evidence from multiple paradigms, such as motor imagery plus P300. Recommended pattern:- Keep one Personalizer / head per paradigm (or one frozen trunk + head).
- Normalize each feature family separately.
- Combine posterior probabilities or confidence-weighted decisions.
- Log disagreement between paradigms for later review.
Continuous control
Continuous control maps repeated predictions into a smoothed command stream.Adaptive learning
Adaptation is useful when signal distributions drift during long sessions or across days.Multi-session experiments
For experiments that span days or weeks:- Use a stable preprocessing / encoder pipeline and save its parameters (
model_id,embedding_dim). - Save normalization parameters with each trained profile (
Personalizer.save/ head artifacts). - Track hardware, montage, impedance, session time, and participant state.
- Evaluate same-session and cross-session performance separately.
- Compare adaptation against a no-adaptation baseline.
Robust deployment
Production systems should separate personalization, control, and safety policy:- Personalizer returns
BrainState(intent, posterior, confidence, gates). - Quality gate accepts, rejects, or asks for more data (
need_more_data). - Control layer maps accepted intents to actions.
- Monitoring logs confidence, latency, rejection rate, and drift.
Next read
Personalizer
Encoder contract, adapt helper, BrainState
Basic Examples
Compact starter recipes
Active Learning
Label-efficient calibration
Streaming configuration
Chunking and aggregation decisions