Index
1. Аннотация и позиционирование¶
CNN-NEAT решает задачу автоматического поиска архитектур (Neural Architecture Search, NAS) для свёрточных нейронных сетей с использованием эволюционного алгоритма NEAT [1]. В отличие от классического NEAT [1], применяемого к полносвязным сетям, каждое ребро DAG является операцией Conv2d. Классификатор (binary head) не входит в геном и не эволюционирует — это осознанное архитектурное решение, обеспечивающее разделение представления и принятия решения.
Задача: CIFAR-10 в постановке «один против всех» (one-vs-rest) — 10 независимых бинарных задач, по одной для каждого из 10 классов. Положительный класс задаётся параметром positive_class ∈ {0,…,9}.
Позиционирование относительно методов NAS:
| Метод | Стратегия поиска | Пространство | GPU-эффективность |
|---|---|---|---|
| CNN-NEAT (данная работа) | Нейроэволюция (NEAT) | DAG свёрток | Адаптивная (VRAM-контроллер) |
| DARTS [2] | Дифференцируемая релаксация | Ячейки | Высокая |
| ENAS [3] | Контроллер (RL) + weight sharing | Ячейки | Высокая |
| Random NAS [4] | Случайный поиск | Произвольная | Средняя |
| AmoebaNet [5] | Регуляризованная эволюция | Ячейки | Средняя |
Ключевые принципы дизайна:
| Принцип | Описание |
|---|---|
| Граф = архитектура | Топология DAG и веса свёрток на рёбрах эволюционируют совместно |
| Классификатор снаружи | Binary head (sum+sigmoid) фиксирован; не входит в геном |
| Детерминированная геометрия | Размеры kernel/padding выводятся из node_sizes, не мутируют произвольно |
| Кэш исполнения | DAG компилируется в ExecutionPlan один раз; форвард — O(|E|) без пересчёта топологии |
| Фиксированные каналы (baseline) | C_in = C_out = 3 на каждом ребре; опционально — переменные каналы |