MH-FLOCKE MH-FLOCKE
HomeDocsGitHubBlogPaperYouTubeReddit𝕏

Skills & Meta-Learning

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