Поиск нейронной архитектуры

Материал из MachineLearning.

Перейти к: навигация, поиск
Статья написана с использованием LLM GPT-5.6 Terra High и проверена участником Oleg Batsiev 18:12, 11 июля 2026 (MSD).

Промпт приводится полностью в Обсуждение:Поиск нейронной архитектуры.


Содержание

Поиск нейронной архитектуры (англ. neural architecture search, NAS) — класс методов автоматического машинного обучения, в которых структура нейронной сети выбирается алгоритмически, а не задаётся разработчиком вручную. NAS может искать типы слоёв, связи между ними, размеры блоков, операции, число каналов и другие элементы архитектуры, ориентируясь на качество модели и ограничения по вычислительным ресурсам.

Основная идея NAS состоит в том, чтобы превратить проектирование нейронной сети в задачу оптимизации. Вместо вопроса «какую архитектуру должен придумать инженер?» ставится вопрос «как автоматически найти архитектуру, хорошо решающую данную задачу при заданных ограничениях?».

Мотивация

Архитектура нейронной сети существенно влияет на её качество, скорость работы, объём памяти и стоимость обучения. Для компьютерного зрения, обработки естественного языка и рекомендательных систем разработчики традиционно вручную выбирали глубину сети, типы слоёв, функции активации и схему связей.

Такой процесс требует опыта, большого числа экспериментов и часто зависит от конкретной задачи. Поиск нейронной архитектуры пытается автоматизировать эту работу. Однако NAS сам является сложной задачей: пространство возможных сетей огромно, а обучение каждой отдельной архитектуры может занимать часы или дни.

Формальная постановка

Обычно NAS разделяют на три части:

  • пространство поиска (search space) — множество допустимых архитектур;
  • стратегия поиска (search strategy) — способ выбирать новые архитектуры;
  • оценка качества (performance estimation strategy) — способ измерить, насколько хороша конкретная архитектура.

Пусть a\in\mathcal{A} — архитектура из пространства поиска \mathcal{A}, а w_a — её веса. Тогда задачу можно записать как:

a^*=\arg\min_{a\in\mathcal{A}}\mathcal{L}_{\mathrm{val}}(w_a^*,a),

где

w_a^*=\arg\min_w\mathcal{L}_{\mathrm{train}}(w,a).

Внутренняя оптимизация обучает веса выбранной архитектуры на обучающей выборке. Внешняя оптимизация выбирает саму архитектуру по качеству на валидационной выборке. Такое устройство называют двухуровневой оптимизацией (bi-level optimization).

Пространство поиска

Пространство поиска определяет, что именно алгоритм имеет право менять. Оно может быть очень широким или, наоборот, сильно ограниченным.

Макроархитектура

При поиске макроархитектуры выбираются крупные характеристики сети:

  • число слоёв;
  • типы слоёв;
  • число каналов;
  • точки уменьшения пространственного разрешения;
  • связи между блоками;
  • наличие пропускных соединений.

Такой поиск гибок, но вычислительно дорог: разные кандидаты могут сильно отличаться по размеру и времени обучения.

Поиск ячеек

Во многих NAS-методах ищут не всю сеть, а небольшую повторяемую ячейку (cell). Ячейка описывает операции и связи между несколькими промежуточными тензорами, а затем многократно повторяется в итоговой сети.

Такой подход уменьшает пространство поиска и упрощает перенос найденной структуры с небольшого набора данных на более крупную задачу. Но он также вводит ограничение: часть архитектуры фиксируется человеком ещё до начала автоматического поиска.

Аппаратно-ориентированный поиск

В практических задачах недостаточно максимизировать точность. Мобильное устройство, сервер реального времени или микроконтроллер имеют ограничения по задержке, памяти и энергопотреблению. Поэтому в целевую функцию могут включать несколько критериев:

J(a)=\operatorname{Accuracy}(a)-\lambda_1\operatorname{Latency}(a)-\lambda_2\operatorname{Memory}(a).

Здесь коэффициенты \lambda_1 и \lambda_2 задают, насколько разработчик готов пожертвовать точностью ради скорости и экономии памяти.

Стратегии поиска

Поиск с подкреплением

Один из ранних известных подходов использует обучение с подкреплением. Контроллер, часто рекуррентная нейронная сеть, по шагам генерирует описание новой архитектуры: выбирает тип очередного слоя, число фильтров, связи и другие параметры.

После обучения дочерней сети её качество на валидационной выборке используют как награду. Контроллер обновляется так, чтобы с большей вероятностью предлагать архитектуры с высокой наградой.[1]

Главный недостаток такого подхода — высокая стоимость: множество архитектур приходится обучать почти с нуля.

Эволюционный поиск

В эволюционных методах поддерживается популяция архитектур. Сначала создаются случайные кандидаты, затем более удачные модели получают потомков через мутации: добавление связи, замену операции, изменение числа каналов или глубины сети.

В регуляризованной эволюции (regularized evolution) при отборе учитывается не только качество, но и возраст архитектуры: более старые кандидаты удаляются, что поддерживает разнообразие популяции и уменьшает риск преждевременной фиксации на одном типе решений.[1]

Эволюционный поиск не требует дифференцируемого пространства архитектур, но, как и поиск с подкреплением, может быть дорогим.

Поиск с разделением параметров

Ключевой способ уменьшить стоимость NAS — разделять параметры между кандидатами. Вместо обучения каждой архитектуры отдельно строят большую сеть, или суперсеть (supernet), содержащую все допустимые операции и связи. Каждая конкретная архитектура является подграфом суперсети и использует часть её весов.

В ENAS контроллер выбирает подграф, а разные дочерние модели используют общие параметры. Это резко сокращает число необходимых обучений, но создаёт новую проблему: качество архитектуры с общими весами не всегда совпадает с качеством той же архитектуры после самостоятельного обучения с нуля.[1]

Дифференцируемый поиск

В DARTS (Differentiable Architecture Search) дискретный выбор операции заменяется непрерывной релаксацией. На ребре вычислительного графа вместо одной операции временно используется смесь операций:

\bar{o}^{(i,j)}(x)=\sum_{o\in\mathcal{O}}\frac{\exp(\alpha_o^{(i,j)})}{\sum_{o'\in\mathcal{O}}\exp(\alpha_{o'}^{(i,j)})}o(x).

Параметры \alpha определяют относительный вес каждой операции. Их можно оптимизировать градиентным спуском одновременно с обычными весами сети. После поиска для каждого ребра выбирают операцию с наибольшим значением \alpha.

DARTS значительно ускорил поиск архитектур по сравнению с методами, которые перебирают отдельные дискретные модели. Однако его результаты могут быть нестабильны: на некоторых пространствах поиска метод выбирает вырожденные архитектуры, хорошо уменьшающие валидационную ошибку во время поиска, но плохо обобщающиеся после окончательного обучения.[1][1]

Оценка архитектур

Самая дорогая часть NAS — оценка кандидатов. Полное обучение каждой сети до сходимости даёт наиболее надёжную оценку, но практически неосуществимо для большого числа архитектур.

Поэтому применяют приближения:

  • обучение на меньшем наборе данных;
  • уменьшение числа эпох;
  • обучение сети меньшего размера;
  • раннюю остановку;
  • использование общих весов суперсети;
  • предсказание качества архитектуры отдельной метамоделью.

Каждое приближение может изменить ранжирование архитектур. Сеть, которая быстро достигает хорошего качества на маленьком наборе данных, не обязательно будет лучшей после полного обучения на целевой задаче. Поэтому сравнение NAS-методов требует аккуратного протокола эксперимента: одинаковых пространств поиска, бюджета вычислений, процедур обучения и независимой финальной оценки.

Связь с AutoML и оптимизацией гиперпараметров

Автоматическое машинное обучение включает более широкий набор задач: выбор признаков, предварительную обработку, подбор гиперпараметров, выбор алгоритма и построение пайплайна. NAS является его частью и занимается именно структурой нейронной сети.

Граница между архитектурой и гиперпараметрами не всегда строгая. Число каналов, ширина слоя, тип нормализации или коэффициент расширения могут рассматриваться как элементы архитектуры либо как гиперпараметры. На практике эти параметры часто оптимизируют совместно.

Ограничения и типичные ошибки

Поиск нейронной архитектуры не гарантирует, что найденная модель лучше сильной ручной архитектуры. Основные проблемы NAS:

  • слишком узкое пространство поиска: алгоритм не может найти то, чего нет среди разрешённых операций;
  • переобучение на валидационной выборке, используемой как награда;
  • несоответствие между быстрой прокси-оценкой и качеством после полного обучения;
  • высокая стоимость вычислений и углеродный след экспериментов;
  • сложность воспроизводимости из-за случайной инициализации, разных бюджетов поиска и различий в коде обучения;
  • несправедливое сравнение с ручными моделями, если NAS-методу разрешено использовать больше вычислительных ресурсов;
  • перенос архитектуры между задачами без проверки, что она сохраняет преимущества в новой среде.

Архитектура, найденная NAS, не должна оцениваться только по точности. Для практического применения важны задержка, память, устойчивость, сложность реализации и стоимость повторного обучения.

Связь с философией искусственного интеллекта

Поиск нейронной архитектуры переносит часть проектирования интеллектуальных систем от человека к алгоритму. Это поднимает вопрос о том, что именно является «творчеством» в инженерии: ручной выбор структуры, постановка пространства поиска или сам процесс оптимизации.

NAS не устраняет роль человека. Разработчик всё равно выбирает данные, целевую функцию, допустимые операции, ограничения и критерий качества. Поэтому автоматически найденная архитектура отражает не только свойства задачи, но и предположения, заложенные в процедуру поиска.

См. также

Примечания

Литература

Личные инструменты