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

Введение

Раздел задаёт задачу, цели и место метода среди других способов поиска архитектур. Формулы — во вкладке «Модель», запуск и числа — во вкладке «Исследования».

Разделы

1. Аннотация и позиционирование

CNN-NEAT решает задачу автоматического поиска архитектур (NAS) свёрточных нейронных сетей эволюционным алгоритмом NEAT [1]. В отличие от классического NEAT [1] для полносвязных сетей, каждое ребро ориентированного ациклического графа — операция Conv2d. Бинарный классификатор не входит в геном и не эволюционирует: представление и решение разделены намеренно.

Задача: CIFAR-10 в постановке «один против остальных» — 10 независимых бинарных задач, по одной на каждый класс. Положительный класс задаётся параметром positive_class ∈ {0,…,9}.

Позиционирование относительно методов NAS:

Метод Стратегия поиска Пространство GPU-эффективность
CNN-NEAT (данная работа) Нейроэволюция (NEAT) Граф свёрток Адаптивная (контроллер видеопамяти)
DARTS [2] Дифференцируемая релаксация Ячейки Высокая
ENAS [3] Контроллер (обучение с подкреплением) и общие веса Ячейки Высокая
Random NAS [4] Случайный поиск Произвольная Средняя
AmoebaNet [5] Регуляризованная эволюция Ячейки Средняя

Ключевые принципы дизайна:

Принцип Описание
Граф = архитектура Топология графа и веса свёрток на рёбрах эволюционируют совместно
Классификатор снаружи Бинарный классификатор (сумма и сигмоида) фиксирован и не входит в геном
Детерминированная геометрия Размеры kernel и padding выводятся из node_sizes и не мутируют произвольно
Кэш исполнения Граф превращается в ExecutionPlan; дополнительно кэш Меркла активаций и кэш отсева
Фиксированные каналы (базовый режим) C_in = C_out = 3; по желанию каналы из множества {3,8,16}
Спекулятивное размножение Конус размножения в оперативной памяти, оценка на GPU идёт с перекрытием
Два трека дообучения После первого периодического дообучения: пул без дообучения и линия дообучения