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

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

(Различия между версиями)
Перейти к: навигация, поиск
(Новая: {{well|Статья написана с использованием LLM '''GPT-5.6 Terra High''' и проверена участником ~~~~. Промпт приводится по...)
 
Строка 1: Строка 1:
{{well|Статья написана с использованием LLM '''GPT-5.6 Terra High''' и проверена участником [[Участник:Oleg Batsiev|Oleg Batsiev]] 18:12, 11 июля 2026 (MSD).
{{well|Статья написана с использованием LLM '''GPT-5.6 Terra High''' и проверена участником [[Участник:Oleg Batsiev|Oleg Batsiev]] 18:12, 11 июля 2026 (MSD).
-
Промпт приводится полностью в [[Обсуждение:Поиск нейронной архитектуры]].
+
Промпты и описание редакторской проверки приведены в [[Обсуждение:Поиск нейронной архитектуры]].
}}
}}
{{TOCright}}
{{TOCright}}
-
'''Поиск нейронной архитектуры''' (англ. ''neural architecture search'', NAS) — класс методов [[автоматическое машинное обучение|автоматического машинного обучения]], в которых структура [[нейронная сеть|нейронной сети]] выбирается алгоритмически, а не задаётся разработчиком вручную. NAS может искать типы слоёв, связи между ними, размеры блоков, операции, число каналов и другие элементы архитектуры, ориентируясь на качество модели и ограничения по вычислительным ресурсам.
+
'''Поиск нейронной архитектуры''' (англ. ''neural architecture search'', NAS; также ''нейроархитектурный поиск'') — направление [[автоматическое машинное обучение|автоматического машинного обучения]], в котором структуру [[нейронная сеть|нейронной сети]] выбирают с помощью алгоритма оптимизации. Предметом поиска могут быть операции, связи между ними, число и ширина блоков, способы объединения признаков и другие элементы архитектуры. В аппаратно-ориентированном NAS дополнительно учитывают задержку, потребление памяти, энергии или иные свойства модели на целевом устройстве.
-
Основная идея NAS состоит в том, чтобы превратить проектирование нейронной сети в задачу оптимизации. Вместо вопроса «какую архитектуру должен придумать инженер?» ставится вопрос «как автоматически найти архитектуру, хорошо решающую данную задачу при заданных ограничениях?».
+
NAS не является способом автоматически получить «лучшую возможную сеть». Результат определяется пространством допустимых архитектур, способом поиска, методом приближённой оценки кандидатов, вычислительным бюджетом и протоколом окончательного сравнения.<ref name="survey">{{статья |автор=Elsken T., Metzen J. H., Hutter F. |заглавие=Neural Architecture Search: A Survey |издание=Journal of Machine Learning Research |год=2019 |том=20 |номер=55 |страницы=1–21 |ссылка=https://jmlr.org/papers/v20/18-598.html}}</ref>
== Мотивация ==
== Мотивация ==
-
Архитектура нейронной сети существенно влияет на её качество, скорость работы, объём памяти и стоимость обучения. Для [[компьютерное зрение|компьютерного зрения]], [[обработка естественного языка|обработки естественного языка]] и [[рекомендательные системы|рекомендательных систем]] разработчики традиционно вручную выбирали глубину сети, типы слоёв, функции активации и схему связей.
+
Архитектура сети влияет на точность, скорость обучения и вывода, объём памяти и пригодность модели для конкретного оборудования. При ручном проектировании разработчик выбирает глубину сети, виды операций, ширину слоёв и схему связей, после чего многократно обучает и сравнивает варианты. NAS переносит часть этого перебора в формальную процедуру оптимизации.
-
Такой процесс требует опыта, большого числа экспериментов и часто зависит от конкретной задачи. Поиск нейронной архитектуры пытается автоматизировать эту работу. Однако NAS сам является сложной задачей: пространство возможных сетей огромно, а обучение каждой отдельной архитектуры может занимать часы или дни.
+
Автоматизация не устраняет работу человека. До начала поиска необходимо определить данные, метрику, допустимые операции, ограничения и бюджет. Поэтому NAS автоматизирует выбор внутри заданного пространства, но не постановку всей инженерной задачи.
-
== Формальная постановка ==
+
== Основные составляющие ==
-
Обычно NAS разделяют на три части:
+
Обычно систему NAS описывают тремя взаимосвязанными составляющими:<ref name="survey" />
-
* '''пространство поиска''' (search space) множество допустимых архитектур;
+
* '''пространство поиска''' (''search space'') задаёт множество допустимых архитектур;
-
* '''стратегия поиска''' (search strategy) — способ выбирать новые архитектуры;
+
* '''стратегия поиска''' (''search strategy'') определяет, как выбирать очередных кандидатов;
-
* '''оценка качества''' (performance estimation strategy) — способ измерить, насколько хороша конкретная архитектура.
+
* '''стратегия оценки качества''' (''performance estimation strategy'') позволяет сравнивать кандидатов, не обязательно полностью обучая каждый из них.
 +
 
 +
Увеличение пространства поиска даёт больше свободы, но затрудняет оптимизацию. Ускоренная оценка позволяет проверить больше кандидатов, однако может исказить их ранжирование. Поэтому эти три части нельзя корректно сравнивать по отдельности.
 +
 
 +
== Формальная постановка ==
-
Пусть <tex>a\in\mathcal{A}</tex> — архитектура из пространства поиска <tex>\mathcal{A}</tex>, а <tex>w_a</tex> — её веса. Тогда задачу можно записать как:
+
Пусть <tex>a\in\mathcal{A}</tex> — архитектура из пространства <tex>\mathcal{A}</tex>, <tex>w</tex> — её обучаемые веса, а <tex>\mathcal{L}_{\mathrm{train}}</tex> и <tex>\mathcal{L}_{\mathrm{val}}</tex> — функции потерь на обучающей и валидационной выборках. Общую постановку можно записать как двухуровневую оптимизацию:
::<tex>a^*=\arg\min_{a\in\mathcal{A}}\mathcal{L}_{\mathrm{val}}(w_a^*,a),</tex>
::<tex>a^*=\arg\min_{a\in\mathcal{A}}\mathcal{L}_{\mathrm{val}}(w_a^*,a),</tex>
Строка 30: Строка 34:
::<tex>w_a^*=\arg\min_w\mathcal{L}_{\mathrm{train}}(w,a).</tex>
::<tex>w_a^*=\arg\min_w\mathcal{L}_{\mathrm{train}}(w,a).</tex>
-
Внутренняя оптимизация обучает веса выбранной архитектуры на обучающей выборке. Внешняя оптимизация выбирает саму архитектуру по качеству на валидационной выборке. Такое устройство называют двухуровневой оптимизацией (bi-level optimization).
+
На внутреннем уровне для данной архитектуры обучаются веса, а на внешнем архитектура выбирается по валидационному качеству. Эта запись является общей моделью задачи, а не буквальным описанием каждого алгоритма NAS. Например, обучение с подкреплением и эволюционный поиск решают внешнюю задачу дискретными методами, а DARTS заменяет дискретный выбор непрерывной релаксацией.
-
== Пространство поиска ==
+
Тестовая выборка не должна участвовать ни в обучении весов, ни в выборе архитектуры. Иначе оценка найденной модели оказывается оптимистически смещённой.
-
Пространство поиска определяет, что именно алгоритм имеет право менять. Оно может быть очень широким или, наоборот, сильно ограниченным.
+
== Пространства поиска ==
-
=== Макроархитектура ===
+
=== Макроархитектурный поиск ===
-
При поиске макроархитектуры выбираются крупные характеристики сети:
+
При поиске макроархитектуры алгоритм может изменять всю структуру сети: число и типы слоёв, ширину блоков, места уменьшения разрешения, пропускные соединения и взаимное расположение операций. Такой поиск гибок, но пространство быстро становится комбинаторным, а кандидаты могут существенно различаться по стоимости обучения.
-
* число слоёв;
+
=== Поиск повторяемых ячеек ===
-
* типы слоёв;
+
-
* число каналов;
+
-
* точки уменьшения пространственного разрешения;
+
-
* связи между блоками;
+
-
* наличие пропускных соединений.
+
-
Такой поиск гибок, но вычислительно дорог: разные кандидаты могут сильно отличаться по размеру и времени обучения.
+
Во многих работах ищется не вся сеть, а небольшая ячейка (''cell'') — ориентированный ациклический граф операций над промежуточными тензорами. Итоговая модель строится повторением найденной ячейки по заранее заданной макросхеме.
-
=== Поиск ячеек ===
+
Поиск ячеек уменьшает число вариантов и позволяет переносить найденный блок в более крупную сеть. Одновременно он сужает задачу: число повторений, правила изменения разрешения и общая схема сети задаются человеком. Поэтому результат такого NAS нельзя интерпретировать как полностью автоматическое проектирование модели.
-
Во многих NAS-методах ищут не всю сеть, а небольшую повторяемую ячейку (cell). Ячейка описывает операции и связи между несколькими промежуточными тензорами, а затем многократно повторяется в итоговой сети.
+
=== Аппаратно-ориентированный поиск ===
-
Такой подход уменьшает пространство поиска и упрощает перенос найденной структуры с небольшого набора данных на более крупную задачу. Но он также вводит ограничение: часть архитектуры фиксируется человеком ещё до начала автоматического поиска.
+
Для мобильных устройств, микроконтроллеров и систем реального времени одной точности недостаточно. Ограничения можно задать явно, например:
-
=== Аппаратно-ориентированный поиск ===
+
::<tex>\min_{a\in\mathcal{A}}\mathcal{L}_{\mathrm{val}}(w_a^*,a)</tex>
 +
 
 +
при условиях
-
В практических задачах недостаточно максимизировать точность. Мобильное устройство, сервер реального времени или микроконтроллер имеют ограничения по задержке, памяти и энергопотреблению. Поэтому в целевую функцию могут включать несколько критериев:
+
::<tex>\operatorname{Latency}(a;h)\leq B_L,\qquad \operatorname{Memory}(a;h)\leq B_M,</tex>
-
::<tex>J(a)=\operatorname{Accuracy}(a)-\lambda_1\operatorname{Latency}(a)-\lambda_2\operatorname{Memory}(a).</tex>
+
где <tex>h</tex> — целевая аппаратная платформа, а <tex>B_L</tex> и <tex>B_M</tex> — допустимые задержка и память. Другой вариант — многокритериальная оптимизация или свёртка нескольких нормированных показателей в одну функцию. Непосредственно складывать точность, миллисекунды и байты без нормировки и интерпретации коэффициентов некорректно.
-
Здесь коэффициенты <tex>\lambda_1</tex> и <tex>\lambda_2</tex> задают, насколько разработчик готов пожертвовать точностью ради скорости и экономии памяти.
+
Задержку желательно измерять на целевом оборудовании: число операций и реальное время выполнения могут ранжировать архитектуры по-разному из-за особенностей компилятора, памяти и параллелизма.
== Стратегии поиска ==
== Стратегии поиска ==
-
=== Поиск с подкреплением ===
+
=== Случайный поиск и модели качества ===
-
Один из ранних известных подходов использует [[обучение с подкреплением]]. Контроллер, часто рекуррентная нейронная сеть, по шагам генерирует описание новой архитектуры: выбирает тип очередного слоя, число фильтров, связи и другие параметры.
+
Случайный поиск служит важной базовой линией: он равномерно или по заданному распределению выбирает архитектуры и оставляет лучшие по результатам оценки. Более сложные методы могут обучать модель качества (''performance predictor'', ''surrogate model''), которая по описанию уже проверенных архитектур предсказывает перспективность новых кандидатов. К этой группе близки методы байесовской оптимизации.
-
После обучения дочерней сети её качество на валидационной выборке используют как награду. Контроллер обновляется так, чтобы с большей вероятностью предлагать архитектуры с высокой наградой.<ref name="zoph">{{статья |автор=Zoph B., Le Q. V. |заглавие=Neural Architecture Search with Reinforcement Learning |издание=International Conference on Learning Representations |год=2017 |ссылка=https://research.google/pubs/neural-architecture-search-with-reinforcement-learning/}}</ref>
+
Сложный алгоритм поиска имеет смысл только тогда, когда он при одинаковом пространстве и бюджете устойчиво превосходит простую базовую линию.
-
Главный недостаток такого подхода — высокая стоимость: множество архитектур приходится обучать почти с нуля.
+
=== Поиск с подкреплением ===
-
=== Эволюционный поиск ===
+
В одном из ранних подходов контроллер, например рекуррентная сеть, последовательно генерирует описание архитектуры. Валидационное качество обученной дочерней модели используется как награда, а параметры контроллера обновляются так, чтобы повышать вероятность удачных решений.<ref name="zoph">{{статья |автор=Zoph B., Le Q. V. |заглавие=Neural Architecture Search with Reinforcement Learning |издание=International Conference on Learning Representations |год=2017 |ссылка=https://research.google/pubs/neural-architecture-search-with-reinforcement-learning/}}</ref>
-
В эволюционных методах поддерживается популяция архитектур. Сначала создаются случайные кандидаты, затем более удачные модели получают потомков через мутации: добавление связи, замену операции, изменение числа каналов или глубины сети.
+
Если каждую дочернюю модель обучать отдельно, метод требует значительных вычислений. Кроме того, награда шумна, поскольку зависит не только от архитектуры, но и от инициализации, порядка объектов и процедуры обучения.
-
В регуляризованной эволюции (regularized evolution) при отборе учитывается не только качество, но и возраст архитектуры: более старые кандидаты удаляются, что поддерживает разнообразие популяции и уменьшает риск преждевременной фиксации на одном типе решений.<ref name="real">{{статья |автор=Real E., Aggarwal A., Huang Y., Le Q. V. |заглавие=Regularized Evolution for Image Classifier Architecture Search |издание=Proceedings of the AAAI Conference on Artificial Intelligence |год=2019 |том=33 |номер=1 |страницы=4780–4789 |doi=10.1609/aaai.v33i01.33014780}}</ref>
+
=== Эволюционный поиск ===
-
Эволюционный поиск не требует дифференцируемого пространства архитектур, но, как и поиск с подкреплением, может быть дорогим.
+
Эволюционные методы поддерживают популяцию архитектур. Родитель может выбираться турниром, а потомок создаётся мутацией: заменой операции, добавлением или удалением связи, изменением ширины либо глубины.
-
=== Поиск с разделением параметров ===
+
В ''aging evolution'', или регуляризованной эволюции, из случайной выборки популяции выбирают лучшего родителя, но после добавления потомка удаляют самый старый элемент всей популяции независимо от его качества.<ref name="real">{{статья |автор=Real E., Aggarwal A., Huang Y., Le Q. V. |заглавие=Regularized Evolution for Image Classifier Architecture Search |издание=Proceedings of the AAAI Conference on Artificial Intelligence |год=2019 |том=33 |номер=1 |страницы=4780–4789 |doi=10.1609/aaai.v33i01.33014780 |ссылка=https://ojs.aaai.org/index.php/AAAI/article/view/4405}}</ref> Такое правило заставляет архитектуры подтверждать качество через потомков и не позволяет одному удачно обученному кандидату оставаться в популяции неограниченно долго.
-
Ключевой способ уменьшить стоимость NAS — разделять параметры между кандидатами. Вместо обучения каждой архитектуры отдельно строят большую сеть, или ''суперсеть'' (supernet), содержащую все допустимые операции и связи. Каждая конкретная архитектура является подграфом суперсети и использует часть её весов.
+
=== Разделение весов ===
-
В ENAS контроллер выбирает подграф, а разные дочерние модели используют общие параметры. Это резко сокращает число необходимых обучений, но создаёт новую проблему: качество архитектуры с общими весами не всегда совпадает с качеством той же архитектуры после самостоятельного обучения с нуля.<ref name="enas">{{статья |автор=Pham H., Guan M. Y., Zoph B., Le Q. V., Dean J. |заглавие=Efficient Neural Architecture Search via Parameter Sharing |издание=Proceedings of the 35th International Conference on Machine Learning |год=2018 |страницы=4092–4101 |ссылка=https://proceedings.mlr.press/v80/pham18a.html}}</ref>
+
Вместо независимого обучения каждой архитектуры можно построить суперсеть (''supernet''), содержащую множество допустимых операций и связей. Кандидат представляется её подграфом и наследует соответствующие веса. В ENAS контроллер выбирает подграфы, а их параметры разделяются между разными дочерними моделями.<ref name="enas">{{статья |автор=Pham H., Guan M. Y., Zoph B., Le Q. V., Dean J. |заглавие=Efficient Neural Architecture Search via Parameter Sharing |издание=Proceedings of the 35th International Conference on Machine Learning |год=2018 |том=80 |страницы=4092–4101 |ссылка=https://proceedings.mlr.press/v80/pham18a.html}}</ref>
 +
 
 +
Разделение весов резко уменьшает стоимость поиска, но оценка подграфа становится зависимой от того, как часто и вместе с какими конкурентами обучались его операции. Ранжирование с общими весами может не совпасть с ранжированием тех же архитектур после независимого обучения с нуля.
=== Дифференцируемый поиск ===
=== Дифференцируемый поиск ===
-
В DARTS (Differentiable Architecture Search) дискретный выбор операции заменяется непрерывной релаксацией. На ребре вычислительного графа вместо одной операции временно используется смесь операций:
+
В DARTS (''Differentiable Architecture Search'') дискретный выбор операции временно заменяется непрерывной смесью. Для ребра <tex>(i,j)</tex> вычислительного графа она имеет вид
 +
 
 +
::<tex>\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),</tex>
 +
 
 +
где <tex>\mathcal{O}</tex> — набор операций, а <tex>\alpha</tex> — параметры архитектуры. Обычные веса суперсети обновляют по обучающим данным, а параметры <tex>\alpha</tex> — по валидационным; на практике эти шаги чередуют, используя приближение двухуровневой задачи.<ref name="darts">{{статья |автор=Liu H., Simonyan K., Yang Y. |заглавие=DARTS: Differentiable Architecture Search |издание=International Conference on Learning Representations |год=2019 |ссылка=https://openreview.net/forum?id=S1eYHoC5FX}}</ref>
 +
 
 +
После поиска непрерывную суперсеть дискретизируют. В исходном варианте для свёрточной ячейки на каждом промежуточном узле оставляют заданное число наиболее сильных входящих рёбер и по одной операции с наибольшим архитектурным весом на каждом оставленном ребре; операция без связи при выборе не учитывается. Поэтому описание «взять максимум на каждом ребре» недостаточно точно.
 +
 
 +
DARTS ускоряет поиск, но непрерывная задача не полностью эквивалентна исходной дискретной. Результат зависит от динамики оптимизации и момента остановки; в некоторых пространствах метод склонен выбирать вырожденные структуры, например с чрезмерным числом пропускных связей.<ref name="zela">{{статья |автор=Zela A., Elsken T., Saikia T., Marrakchi Y., Brox T., Hutter F. |заглавие=Understanding and Robustifying Differentiable Architecture Search |издание=International Conference on Learning Representations |год=2020 |ссылка=https://openreview.net/forum?id=H1gDNyrKDS}}</ref>
 +
 
 +
== Оценка кандидатов ==
 +
 
 +
=== Полное обучение ===
 +
 
 +
Наиболее прямой способ — независимо обучить каждый кандидат до сходимости с тем же режимом, который предполагается использовать для итоговой модели. Такая оценка дорога, поэтому доступна лишь для небольшого числа архитектур.
 +
 
 +
=== Приближённые оценки ===
-
::<tex>\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).</tex>
+
Для сокращения стоимости применяют:
-
Параметры <tex>\alpha</tex> определяют относительный вес каждой операции. Их можно оптимизировать градиентным спуском одновременно с обычными весами сети. После поиска для каждого ребра выбирают операцию с наибольшим значением <tex>\alpha</tex>.
+
* меньшее число эпох или раннюю остановку;
 +
* уменьшенные данные, входное разрешение или ширину сети;
 +
* разделение весов в суперсети;
 +
* модель, предсказывающую итоговое качество;
 +
* низкозатратные показатели, вычисляемые до полноценного обучения (''zero-cost proxies'').
-
DARTS значительно ускорил поиск архитектур по сравнению с методами, которые перебирают отдельные дискретные модели. Однако его результаты могут быть нестабильны: на некоторых пространствах поиска метод выбирает вырожденные архитектуры, хорошо уменьшающие валидационную ошибку во время поиска, но плохо обобщающиеся после окончательного обучения.<ref name="darts">{{статья |автор=Liu H., Simonyan K., Yang Y. |заглавие=DARTS: Differentiable Architecture Search |издание=International Conference on Learning Representations |год=2019 |ссылка=https://arxiv.org/abs/1806.09055}}</ref><ref name="zela">{{статья |автор=Zela A., Elsken T., Saikia T., Marrakchi Y., Brox T., Hutter F. |заглавие=Understanding and Robustifying Differentiable Architecture Search |издание=International Conference on Learning Representations |год=2020 |ссылка=https://arxiv.org/abs/1909.09656}}</ref>
+
Любая прокси-оценка полезна лишь настолько, насколько она сохраняет ранжирование на целевой задаче. Архитектура, быстро обучающаяся на уменьшенной задаче, не обязательно окажется лучшей после полного обучения.
-
== Оценка архитектур ==
+
=== Окончательная проверка ===
-
Самая дорогая часть NAS — оценка кандидатов. Полное обучение каждой сети до сходимости даёт наиболее надёжную оценку, но практически неосуществимо для большого числа архитектур.
+
После завершения поиска выбранную дискретную архитектуру следует обучить с нуля, желательно несколько раз с разными случайными инициализациями. В отчёте необходимо отделять стоимость самого поиска от стоимости окончательного обучения. Для справедливого сравнения фиксируют пространство архитектур, бюджет, данные, режим обучения, число запусков и аппаратную среду; итоговое качество измеряют на тестовой выборке, не участвовавшей в поиске.
-
Поэтому применяют приближения:
+
== Табличные тестовые среды и воспроизводимость ==
-
* обучение на меньшем наборе данных;
+
Табличные тестовые среды NAS заранее содержат результаты обучения большого числа архитектур. Алгоритм обращается к таблице вместо повторного дорогостоящего обучения, что позволяет воспроизводимо сравнивать стратегии поиска при одинаковом пространстве и бюджете. Например, NAS-Bench-101 содержит результаты для фиксированного пространства свёрточных ячеек на CIFAR-10.<ref name="nasbench101">{{статья |автор=Ying C., Klein A., Christiansen E., Real E., Murphy K., Hutter F. |заглавие=NAS-Bench-101: Towards Reproducible Neural Architecture Search |издание=Proceedings of the 36th International Conference on Machine Learning |год=2019 |том=97 |страницы=7105–7114 |ссылка=https://proceedings.mlr.press/v97/ying19a.html}}</ref>
-
* уменьшение числа эпох;
+
-
* обучение сети меньшего размера;
+
-
* раннюю остановку;
+
-
* использование общих весов суперсети;
+
-
* предсказание качества архитектуры отдельной метамоделью.
+
-
Каждое приближение может изменить ранжирование архитектур. Сеть, которая быстро достигает хорошего качества на маленьком наборе данных, не обязательно будет лучшей после полного обучения на целевой задаче. Поэтому сравнение NAS-методов требует аккуратного протокола эксперимента: одинаковых пространств поиска, бюджета вычислений, процедур обучения и независимой финальной оценки.
+
Такие среды не заменяют эксперименты на реальной задаче: вывод справедлив только для зафиксированных операций, данных и процедуры обучения. Их основное назначение — контролируемое сравнение алгоритмов и исследование вариативности результатов.
-
== Связь с AutoML и оптимизацией гиперпараметров ==
+
== Связь с AutoML и подбором гиперпараметров ==
-
[[Автоматическое машинное обучение]] включает более широкий набор задач: выбор признаков, предварительную обработку, подбор [[гиперпараметр (машинное обучение)|гиперпараметров]], выбор алгоритма и построение пайплайна. NAS является его частью и занимается именно структурой нейронной сети.
+
[[Автоматическое машинное обучение]] охватывает выбор признаков, предварительную обработку, алгоритмы, гиперпараметры и целые вычислительные конвейеры. NAS сосредоточен на структуре нейронной сети и является одной из задач AutoML.
-
Граница между архитектурой и гиперпараметрами не всегда строгая. Число каналов, ширина слоя, тип нормализации или коэффициент расширения могут рассматриваться как элементы архитектуры либо как гиперпараметры. На практике эти параметры часто оптимизируют совместно.
+
Граница между архитектурой и гиперпараметрами условна. Число каналов, коэффициент расширения блока или тип нормализации можно считать как элементами архитектуры, так и гиперпараметрами. В практических системах структурные и обучающие параметры нередко оптимизируют совместно, но это увеличивает пространство поиска и усложняет честное распределение бюджета.
== Ограничения и типичные ошибки ==
== Ограничения и типичные ошибки ==
-
Поиск нейронной архитектуры не гарантирует, что найденная модель лучше сильной ручной архитектуры. Основные проблемы NAS:
+
К основным ограничениям NAS относятся:
-
* слишком узкое пространство поиска: алгоритм не может найти то, чего нет среди разрешённых операций;
+
* '''зависимость от пространства поиска''': алгоритм не может выбрать операцию или структуру, которая заранее не была разрешена;
-
* переобучение на валидационной выборке, используемой как награда;
+
* '''высокая вычислительная и энергетическая стоимость''', особенно при независимом обучении множества кандидатов;
-
* несоответствие между быстрой прокси-оценкой и качеством после полного обучения;
+
* '''смещение прокси-оценки''': качество при ранней остановке или с общими весами может плохо предсказывать окончательный результат;
-
* высокая стоимость вычислений и углеродный след экспериментов;
+
* '''переобучение на валидационной выборке''', которая многократно используется стратегией поиска;
-
* сложность воспроизводимости из-за случайной инициализации, разных бюджетов поиска и различий в коде обучения;
+
* '''нестабильность''': результат зависит от инициализации, выборок, гиперпараметров поиска и реализации;
-
* несправедливое сравнение с ручными моделями, если NAS-методу разрешено использовать больше вычислительных ресурсов;
+
* '''неравное сравнение''': преимущество может объясняться большим бюджетом, иным режимом обучения или дополнительными данными, а не самой найденной архитектурой;
-
* перенос архитектуры между задачами без проверки, что она сохраняет преимущества в новой среде.
+
* '''ограниченный перенос''': архитектура, найденная на одном наборе данных или устройстве, не обязана сохранять преимущество на другом.
-
Архитектура, найденная NAS, не должна оцениваться только по точности. Для практического применения важны задержка, память, устойчивость, сложность реализации и стоимость повторного обучения.
+
Сообщать только точность итоговой сети недостаточно. Нужны бюджет поиска, число оценённых кандидатов, время и оборудование, стоимость окончательного обучения, разброс по независимым запускам и результаты сильных ручных и случайных базовых линий.
== Связь с философией искусственного интеллекта ==
== Связь с философией искусственного интеллекта ==
-
Поиск нейронной архитектуры переносит часть проектирования интеллектуальных систем от человека к алгоритму. Это поднимает вопрос о том, что именно является «творчеством» в инженерии: ручной выбор структуры, постановка пространства поиска или сам процесс оптимизации.
+
NAS переносит часть проектирования интеллектуальной системы от инженера к алгоритму, но не устраняет человеческий выбор. Разработчик задаёт язык, на котором могут быть описаны архитектуры, определяет цель и решает, какие затраты считать допустимыми. В этом смысле найденная сеть отражает не только свойства данных, но и предпосылки, встроенные в пространство и критерий поиска.
-
NAS не устраняет роль человека. Разработчик всё равно выбирает данные, целевую функцию, допустимые операции, ограничения и критерий качества. Поэтому автоматически найденная архитектура отражает не только свойства задачи, но и предположения, заложенные в процедуру поиска.
+
Поэтому вопрос об «автоматическом изобретении» архитектуры зависит от уровня описания. Алгоритм может обнаружить нетривиальную комбинацию разрешённых операций, однако сами операции, ограничения и способ оценки остаются результатом предварительного проектирования.
== См. также ==
== См. также ==
Строка 143: Строка 161:
* [[Глубокое обучение]]
* [[Глубокое обучение]]
* [[Автоматическое машинное обучение]]
* [[Автоматическое машинное обучение]]
-
* [[Гиперпараметр (машинное обучение)]]
 
* [[Обучение с подкреплением]]
* [[Обучение с подкреплением]]
-
* [[Эволюционный алгоритм]]
 
* [[Градиентный спуск]]
* [[Градиентный спуск]]
* [[Квантование нейронных сетей]]
* [[Квантование нейронных сетей]]
Строка 151: Строка 167:
== Примечания ==
== Примечания ==
-
{{примечания}}
+
<references />
== Литература ==
== Литература ==
 +
* {{статья |автор=Elsken T., Metzen J. H., Hutter F. |заглавие=Neural Architecture Search: A Survey |издание=Journal of Machine Learning Research |год=2019 |том=20 |номер=55 |страницы=1–21 |ссылка=https://jmlr.org/papers/v20/18-598.html}}
* {{статья |автор=Zoph B., Le Q. V. |заглавие=Neural Architecture Search with Reinforcement Learning |издание=International Conference on Learning Representations |год=2017 |ссылка=https://research.google/pubs/neural-architecture-search-with-reinforcement-learning/}}
* {{статья |автор=Zoph B., Le Q. V. |заглавие=Neural Architecture Search with Reinforcement Learning |издание=International Conference on Learning Representations |год=2017 |ссылка=https://research.google/pubs/neural-architecture-search-with-reinforcement-learning/}}
-
* {{статья |автор=Pham H., Guan M. Y., Zoph B., Le Q. V., Dean J. |заглавие=Efficient Neural Architecture Search via Parameter Sharing |издание=Proceedings of the 35th International Conference on Machine Learning |год=2018 |страницы=4092–4101 |ссылка=https://proceedings.mlr.press/v80/pham18a.html}}
+
* {{статья |автор=Pham H., Guan M. Y., Zoph B., Le Q. V., Dean J. |заглавие=Efficient Neural Architecture Search via Parameter Sharing |издание=Proceedings of the 35th International Conference on Machine Learning |год=2018 |том=80 |страницы=4092–4101 |ссылка=https://proceedings.mlr.press/v80/pham18a.html}}
-
* {{статья |автор=Real E., Aggarwal A., Huang Y., Le Q. V. |заглавие=Regularized Evolution for Image Classifier Architecture Search |издание=Proceedings of the AAAI Conference on Artificial Intelligence |год=2019 |том=33 |номер=1 |страницы=4780–4789 |doi=10.1609/aaai.v33i01.33014780}}
+
* {{статья |автор=Real E., Aggarwal A., Huang Y., Le Q. V. |заглавие=Regularized Evolution for Image Classifier Architecture Search |издание=Proceedings of the AAAI Conference on Artificial Intelligence |год=2019 |том=33 |номер=1 |страницы=4780–4789 |doi=10.1609/aaai.v33i01.33014780 |ссылка=https://ojs.aaai.org/index.php/AAAI/article/view/4405}}
-
* {{статья |автор=Liu H., Simonyan K., Yang Y. |заглавие=DARTS: Differentiable Architecture Search |издание=International Conference on Learning Representations |год=2019 |ссылка=https://arxiv.org/abs/1806.09055}}
+
* {{статья |автор=Liu H., Simonyan K., Yang Y. |заглавие=DARTS: Differentiable Architecture Search |издание=International Conference on Learning Representations |год=2019 |ссылка=https://openreview.net/forum?id=S1eYHoC5FX}}
-
* {{статья |автор=Zela A., Elsken T., Saikia T., Marrakchi Y., Brox T., Hutter F. |заглавие=Understanding and Robustifying Differentiable Architecture Search |издание=International Conference on Learning Representations |год=2020 |ссылка=https://arxiv.org/abs/1909.09656}}
+
* {{статья |автор=Zela A., Elsken T., Saikia T., Marrakchi Y., Brox T., Hutter F. |заглавие=Understanding and Robustifying Differentiable Architecture Search |издание=International Conference on Learning Representations |год=2020 |ссылка=https://openreview.net/forum?id=H1gDNyrKDS}}
 +
* {{статья |автор=Ying C., Klein A., Christiansen E., Real E., Murphy K., Hutter F. |заглавие=NAS-Bench-101: Towards Reproducible Neural Architecture Search |издание=Proceedings of the 36th International Conference on Machine Learning |год=2019 |том=97 |страницы=7105–7114 |ссылка=https://proceedings.mlr.press/v97/ying19a.html}}
-
[[Категория:Искусственный интеллект]]
+
[[Категория:Машинное обучение]]
 +
[[Категория:Нейронные сети]]

Текущая версия

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

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


Содержание

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

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

Мотивация

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

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

Основные составляющие

Обычно систему NAS описывают тремя взаимосвязанными составляющими:[1]

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

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

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

Пусть a\in\mathcal{A} — архитектура из пространства \mathcal{A}, w — её обучаемые веса, а \mathcal{L}_{\mathrm{train}} и \mathcal{L}_{\mathrm{val}} — функции потерь на обучающей и валидационной выборках. Общую постановку можно записать как двухуровневую оптимизацию:

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).

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

Тестовая выборка не должна участвовать ни в обучении весов, ни в выборе архитектуры. Иначе оценка найденной модели оказывается оптимистически смещённой.

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

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

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

Поиск повторяемых ячеек

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

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

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

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

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

при условиях

\operatorname{Latency}(a;h)\leq B_L,\qquad \operatorname{Memory}(a;h)\leq B_M,

где h — целевая аппаратная платформа, а B_L и B_M — допустимые задержка и память. Другой вариант — многокритериальная оптимизация или свёртка нескольких нормированных показателей в одну функцию. Непосредственно складывать точность, миллисекунды и байты без нормировки и интерпретации коэффициентов некорректно.

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

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

Случайный поиск и модели качества

Случайный поиск служит важной базовой линией: он равномерно или по заданному распределению выбирает архитектуры и оставляет лучшие по результатам оценки. Более сложные методы могут обучать модель качества (performance predictor, surrogate model), которая по описанию уже проверенных архитектур предсказывает перспективность новых кандидатов. К этой группе близки методы байесовской оптимизации.

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

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

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

Если каждую дочернюю модель обучать отдельно, метод требует значительных вычислений. Кроме того, награда шумна, поскольку зависит не только от архитектуры, но и от инициализации, порядка объектов и процедуры обучения.

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

Эволюционные методы поддерживают популяцию архитектур. Родитель может выбираться турниром, а потомок создаётся мутацией: заменой операции, добавлением или удалением связи, изменением ширины либо глубины.

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

Разделение весов

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

Разделение весов резко уменьшает стоимость поиска, но оценка подграфа становится зависимой от того, как часто и вместе с какими конкурентами обучались его операции. Ранжирование с общими весами может не совпасть с ранжированием тех же архитектур после независимого обучения с нуля.

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

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

\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),

где \mathcal{O} — набор операций, а \alpha — параметры архитектуры. Обычные веса суперсети обновляют по обучающим данным, а параметры \alpha — по валидационным; на практике эти шаги чередуют, используя приближение двухуровневой задачи.[1]

После поиска непрерывную суперсеть дискретизируют. В исходном варианте для свёрточной ячейки на каждом промежуточном узле оставляют заданное число наиболее сильных входящих рёбер и по одной операции с наибольшим архитектурным весом на каждом оставленном ребре; операция без связи при выборе не учитывается. Поэтому описание «взять максимум на каждом ребре» недостаточно точно.

DARTS ускоряет поиск, но непрерывная задача не полностью эквивалентна исходной дискретной. Результат зависит от динамики оптимизации и момента остановки; в некоторых пространствах метод склонен выбирать вырожденные структуры, например с чрезмерным числом пропускных связей.[1]

Оценка кандидатов

Полное обучение

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

Приближённые оценки

Для сокращения стоимости применяют:

  • меньшее число эпох или раннюю остановку;
  • уменьшенные данные, входное разрешение или ширину сети;
  • разделение весов в суперсети;
  • модель, предсказывающую итоговое качество;
  • низкозатратные показатели, вычисляемые до полноценного обучения (zero-cost proxies).

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

Окончательная проверка

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

Табличные тестовые среды и воспроизводимость

Табличные тестовые среды NAS заранее содержат результаты обучения большого числа архитектур. Алгоритм обращается к таблице вместо повторного дорогостоящего обучения, что позволяет воспроизводимо сравнивать стратегии поиска при одинаковом пространстве и бюджете. Например, NAS-Bench-101 содержит результаты для фиксированного пространства свёрточных ячеек на CIFAR-10.[1]

Такие среды не заменяют эксперименты на реальной задаче: вывод справедлив только для зафиксированных операций, данных и процедуры обучения. Их основное назначение — контролируемое сравнение алгоритмов и исследование вариативности результатов.

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

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

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

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

К основным ограничениям NAS относятся:

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

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

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

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

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

См. также

Примечания


Литература

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