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

Два трека градиентного дообучения

Периодическое градиентное дообучение (periodic GD) меняет веса, но не топологию. Чтобы не потерять «чистую» NEAT-линию, после первого GD-события популяция расширяется и размножается двумя независимыми пулами.

Два пула

Пусть \(P\) — исходный размер, \(\Delta=\) gd_lineage_expand_slots. [ |\mathcal{P}{\mathrm{never}}| = P, \qquad |\mathcal{P}| = \Delta, \qquad |\mathcal{P}| = P + \Delta ] (в script 11 C/D: }\(P=64\), \(\Delta=64\) → 128). Флаг GenomeLineage.gd_lineage наследуется потомками.

Размножение: CnnNeat.evolve_dual_track — без градиентного дообучения (never-GD) родители не скрещиваются с Линия градиентного дообучения (GD-lineage) (отдельные очереди). Приспособленность (fitness) сравнивается в общем ranking, но слоты квотируются.

После GD: кэш Меркла инвалидирует только геномы с реально изменившимися весами (accept/reject по L1). Конус без градиентного дообучения можно восстановить из оперативной памяти после приостановки.

Dual-track

После первого GD популяция расщепляется на без градиентного дообучения и Линия градиентного дообучения.

Классификация: GD lineage.