Modular Skills & Evolved Plasticity
Two systems for managing learned capabilities: modular skills with EWC protection, and evolved plasticity rules that let evolution discover optimal learning parameters.
Modular Skills (EWC)
When the creature masters a behavior (e.g., walking), the relevant SNN weights can be “frozen” using Elastic Weight Consolidation (Kirkpatrick 2017). This prevents catastrophic forgetting when learning new skills:
loss = task_loss + λ × Σ F_i × (θ_i - θ*_i)² F_i = Fisher Information (importance of weight i for old task) θ*_i = weight value when skill was frozen λ = protection strength
Evolved Plasticity
Instead of hand-tuning learning rates and decay constants, these parameters can be evolved. A PlasticityGenome encodes: STDP learning rate, eligibility decay, neuromodulator sensitivities, homeostatic target rates. Evolution finds optimal settings for the creature’s morphology.
References
- Kirkpatrick et al. (2017). Overcoming catastrophic forgetting. PNAS
- Soltoggio et al. (2018). Born to learn: the inspiration, progress, and future of evolved plasticity. Neural Networks
API Reference
SkillRegistry(snn)
freeze_skill(name, weight_snapshot)
Protect current weights as a named skill.
get_frozen_skills() → list[str]
on_training_step()
Apply EWC penalty to protect frozen skills during training.
EvolvedPlasticityRule(genome: PlasticityGenome)
apply(snn, reward)
Apply evolved learning rule instead of default R-STDP.
PlasticityGenome
stdp_lr: float eligibility_decay: float ne_sensitivity: float da_sensitivity: float homeostatic_target: float