Ограничения
16. Преимущества и ограничения¶
Преимущества¶
| Преимущество | Описание | Обоснование |
|---|---|---|
| Детерминированная геометрия | kernel/padding выводятся из node_sizes — нет «зависших» форм |
Гарантирует корректность форварда после любой мутации |
| Кэш ExecutionPlan | DAG компилируется один раз → $O( | E |
| VRAM-контроллер | Адаптивное деление batch → устойчивость к OOM на любом GPU | Позволяет запускать эволюцию на GPU с 4–8 ГБ VRAM |
| Archive mixing | Половина следующей популяции из исторического архива | Сохраняет топологическое разнообразие при сходимости |
| Инкрементальная сложность | Начинает с минимальных топологий, NEAT-стиль | Избегает катастрофически сложных начальных архитектур |
| Два уровня оптимизации | Эволюция (топология) + GD (веса) | NAS + fine-tune в едином framework |
| Гибкое API | fitness вычисляется снаружи → легко интегрировать в любой pipeline |
Расширяемость без изменения ядра |
| Воспроизводимость | Seed + JSON val-индексы | Точное повторение экспериментов |
Ограничения¶
| Ограничение | Описание | Возможное улучшение |
|---|---|---|
| Линейное тело (baseline) | Без активаций тело — аффинная функция от входа | Включить activation=relu (уже поддержан) |
| Фиксированные C=3 каналы | Малая ёмкость feature extraction | allow_variable_channels=True с [8,16,32] |
| Нет weight sharing | Каждый геном обучается независимо → \(P \times\) вычислительная стоимость | Supernet / one-shot NAS |
| Union crossover | Не учитывает относительный fitness родителей | Weighted crossover по fitness ratio |
| Нет speciation | Нет механизма видов из оригинального NEAT | Ниши по fitness или топологическому расстоянию |
| Binary head не обучается | Порог принятия решения фиксирован (soft: sweep) | Обучаемый head с BCE в genome |
| Нет ранней остановки | Все поколения выполняются независимо от сходимости | Convergence detection + early stop |
| Нет регуляризации | L2/dropout не применяются к conv-весам | Weight decay в Adam (finetune, periodic_gd) |