Elite refinement
5.3 Elite Refinement (градиентная дообучка элиты)¶
Опциональный двухстадийный отбор (cnn_neat/elite_refinement.py):
flowchart TD
all[Все геномы популяции P]
all --> valfit[Val fitness → top 2ρ·P геномов]
valfit --> clones[Клонирование top 2ρP]
clones --> finetune["Adam fine-tune клонов\n(E эпох на train)"]
valfit --> testOrig[Оценка оригиналов на test]
finetune --> testFT[Оценка клонов на test]
testOrig --> pool[Объединённый pool: 2·(2ρP) геномов]
testFT --> pool
pool --> elite[Top ρP по test fitness → элита]
elite --> evolve[evolve_from_elites → следующее поколение]
Параметры:
| Параметр | Default | Описание |
|---|---|---|
elite_refinement_enabled |
False |
Включить двухстадийный отбор |
elite_refinement_every |
1 |
Каждые N поколений (всегда + последнее) |
elite_refinement_pre_multiplier |
2.0 |
Pre-filter: \(2\rho\) от популяции |
elite_refinement_train_epochs |
10 |
Эпох Adam на train |
elite_refinement_train_batch_size |
128 |
Размер батча fine-tune |
elite_refinement_lr |
1e-3 |
Learning rate Adam |
Особенность: fine-tune применяется к клонам — оригинальные геномы не изменяются; итоговый отбор выбирает из объединённого пула (оригинал vs клон).