Перейти к содержанию

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 клон).