Поиск архитектуры нейронной сети — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
м (rollbackEdits.php mass rollback)
 
(не показано 11 промежуточных версий 4 участников)
Строка 1: Строка 1:
Neaural Architecture Search (NAS, Поиск архитектуры нейронной сети) - процесс автоматизации проектирования архитектуры, то есть нахождение нашей модели машинного обучения. Системе NAS предоставляется набор данных, тип задачи (классификация, регрессия и т.д.), на основании которого система определяет архитектуру нейронной сети. Эта архитектура будет работать лучше всех других архитектур для данной задачи при обучении предоставленным набором данных.  
+
{{Определение
NAS можно рассматривать как часть AutoML ([[Автоматическое машинное обучение]]), он имеет значительное совпадение с оптимизацией гиперпараметров ([[Настройка гиперпараметров]]). NAS находит архитектуру из всех возможных архитектур, следуя стратегии поиска, которая максимизирует производительность.
+
|definition =
 +
'''Поиск архитектуры нейронной сети''' (англ. ''Neural Architecture Search, NAS'') — это процесс автоматизации проектирования архитектуры нейронной сети. Другими словами, это процесс поиска лучшей структуры модели машинного обучения. Система NAS получает на вход набор данных и тип задачи (классификация, регрессия и т.д.), и на выходе дает архитектуру модели. Полученная архитектура будет работать лучше остальных архитектур для данного типа задачи при обучении на предоставленном наборе данных.  
 +
}}
 +
 
 +
NAS можно рассматривать как часть [[Автоматическое машинное обучение|автоматического машинного обучения (англ. ''AutoML'')]]. NAS существенно пересекается с [[Настройка гиперпараметров|оптимизацией гиперпараметров]]. Чтобы из всех возможных архитектур найти нужную, NAS следует стратегии поиска, которая максимизирует производительность.
  
 
== Принцип работы ==
 
== Принцип работы ==
[[Файл:NAS 1.PNG|900px|thumb|center|Рисунок 1 - Абстрактная иллюстрация методов NAS. Стратегия поиска
+
Методы для NAS классифицируются по трем категориям: пространство поиска (англ. ''Search Space''), стратегия поиска (англ. ''Search Strategy'') и стратегия оценки эффективности (англ. ''Performance Estimation Strategy''). Схематичный принцип работы NAS отображен на рисунке 1.
выбирает архитектуру A из предопределенного пространства поиска A. Архитектура
+
[[Файл:NAS 1 rus.png|900px|thumb|center|Рисунок 1 — Обобщающая иллюстрация методов NAS. Стратегия поиска выбирает архитектуру <tex>A</tex> из предопределенного пространства поиска <math>A</math>. Архитектура передается в стратегию оценки производительности, которая возвращает оценку эффективности <tex>A</tex> в стратегию поиска.]]
передается в стратегию оценки производительности, которая возвращает оценку эффективности A в стратегию поиска. ([https://arxiv.org/pdf/1808.05377.pdf Источник])]]
 
  
=== Пространство поиска (Search Space) ===
+
=== Пространство поиска (англ. ''Search Space'') ===
Пространство поиска определяет, какую нейронную архитектуру в принципе может обнаружить подход NAS. Это может быть цепочечная архитектура, в которой выход уровня (n-1) подается как вход уровня (n). Или это может быть современная сложная архитектура с пропущенным соединением (multi-branch network). Предварительные знания о типичных свойствах архитектур способны уменьшить размер пространства поиска и упростить поиск. Тем не менее, они также могут помешать человеку найти новые архитектурные строительные блоки, которые выходят за рамки современных человеческих знаний.
+
Пространство поиска определяет, какую нейронную архитектуру в принципе может обнаружить система NAS. Это может быть цепочечная архитектура (рисунок 2, слева), в которой выход уровня <tex>(n-1)</tex> подается как вход уровня <tex>(n)</tex>. Или это может быть сложная ветвистая архитектура с пропусками соединений<ref>англ. ''Multi-branch neural networks with branch control'', пример: [https://ieeexplore.ieee.org/document/1323611, multi-branch network]</ref> (рисунок 2, справа).
Наиболее часто используемые типы архитектур для NAS - это entire structures, cell-based structures,
 
progressive structures and morphism-based structures.
 
[[Файл:Chain-like-NAS.png|thumb|center|Рисунок 2 - A chain-like and multi-branch network; каждый узел соответствует уровню в нейронной сети. Различные типы слоев визуализируются разными цветами. Ребро от слоя Li до слоя Lj обозначает, что Lj получает выходные данные Li в качестве входных данных.]]
 
Иногда используют внешнюю архитектуру ручной работы (макроархитектуру) с повторяющимися мотивами или ячейками. В таких случаях внешняя структура является фиксированной, NAS ищет только cell-архитектуры. Этот тип поиска известен как микро-поиск или cell search.
 
[[Файл:Cell-like-NAS.png|thumb|center|Рисунок 3 - слева: сell architecture, две разные ячейки, например normal cell
 
(вверху) и reduction cell (внизу); справа: ячейки помещены во внешнюю структуру ручной работы]]
 
  
 +
В некоторых случаях используют спроектированный вручную каркас архитектуры (макроархитектуру), состоящий из повторяющихся ячеек (англ. ''motifs/blocks/cells''). В таких случаях каркас является фиксированным, а задача NAS заключается в поиске архитектуры самих ячеек. Такой тип поиска известен как микро-поиск (англ. ''cell-search'') (рисунок 3).
  
=== Стратегия поиска (Search Strategy)===
+
<div style="text-align: center"><ul>
Стратегия поиска подробно описывает, как исследовать пространство поиска, которое часто экспоненциально велико или даже неограниченно. Она включает в себя классический компромисс между разведкой и эксплуатацией, поскольку, с одной стороны, желательно найти
+
<li style="display: inline-block;"> [[Файл:Chain_like_NAS_rus.png|thumb|400px| Рисунок 2 — цепочечная архитектура (слева) и ветвистая архитектура (справа). Различные типы слоев визуализируются разными цветами. Ребро от слоя <tex>C_i</tex> до слоя <tex>C_j</tex> означает, что <tex>C_j</tex> в качестве входных данных получает выходные данные <tex>C_i</tex>.]] </li>
быстро работающие архитектуры, с другой стороны, следует избегать преждевременного схождения.
+
<li style="display: inline-block;"> [[Файл:Cell_like_NAS_rus.png|thumb|450px| Рисунок 3 — Слева: архитектуры ячеек. Например, обычная (англ. ''normal cell'') вверху и редуцированная (англ. ''reduction cell'') внизу. Cправа: каркас архитектуры состоит из 3 ячеек, конкретные архитектуры ячеек помещены в каркас.]] </li>
 +
</ul></div>
  
Для изучения пространства нейронных архитектур можно использовать множество различных стратегий поиска, включая '''случайный поиск''', '''байесовскую оптимизацию''', '''эволюционные методы''', '''[[обучение с подкреплением]] (reinforcement learning)''' и '''методы на основе градиента'''.  
+
Предварительные знания о типичных свойствах архитектур могут уменьшить размер пространства поиска и упростить поиск. Тем не менее, они также могут помешать человеку найти новые архитектурные ячейки, которые выходят за рамки современных человеческих знаний.
  
=== BANANAS (Bayesian optimization with neural architectures for NAS) ===
+
Наиболее часто используемые типы архитектур для NAS<ref>Источник: [https://arxiv.org/pdf/1908.00709.pdf, "AutoML: A Survey of the State-of-the-Art", стр.2]</ref>:
[[Файл:BANANAS alg.PNG|400px|thumb|right|Иллюстрация мета-нейронной сети в алгоритме BANANAS]]
+
* полные архитектуры (англ.''entire structures'')
Сложностью применения байесовской оптимизации в NAS является обязательное наличии функции расстояния между слоями нейросети. Чтобы обойти этот момент, был разработан алгоритм [https://github.com/naszilla/bananas BANANAS (Bayesian optimization with neural architectures for NAS)] - алгоритм, использующий специальную кодировку path encoding для кодирования входных архитектур и получающий на выходе вероятностные распределения (см. рисунок).
+
* прогрессивные архитектуры (англ. ''progressive structures'')
Алгоритм BANANAS:
+
* архитектуры, основанные на ячейках (англ. ''cell-based structures'')
1. Выбираются t0 случайных алгоритмов из пространства поиска (Search Space)
+
* архитектуры, основанные на [https://ru.wiktionary.org/wiki/%D0%BC%D0%BE%D1%80%D1%84%D0%B8%D0%B7%D0%BC морфизме] (англ. ''morphism-based structures'')
2. Итерационно проводится обучение ансамбля мета-нейронный сетей на выбранных архитектурах. Каждая сеть ансамбля является сетью прямой связи с полностью связанными слоями, каждому слою дается случайная инициализация весов и случайный порядок обучающего набора.
+
 
3.  
+
=== Стратегия поиска (англ. ''Search Strategy'')===
 +
Стратегия поиска подробно описывает, как исследовать пространство поиска, которое часто экспоненциально велико или даже неограниченно. Она включает в себя классический компромисс между разведкой и эксплуатацией, поскольку, с одной стороны, желательно найти быстро работающие архитектуры, с другой стороны, следует избегать преждевременного схождения.
 +
 
 +
Для изучения пространства нейронных архитектур можно использовать множество различных стратегий поиска, включая случайный поиск, байесовскую оптимизацию, эволюционные методы, [[обучение с подкреплением]] и методы на основе градиента.  
  
 
==== Сравнение методов стратегий поиска ====
 
==== Сравнение методов стратегий поиска ====
[[Файл:NAS-method-comparison.PNG|800px|thumb|center|слева: результат экспериментов, минимизирующих функцию потерь и количества параметров модели; справа: сравнение основных используемых в NAS алгоритмов]]
+
Лучшие результаты на сегодняшний день показывает NAS с использованием стратегии байесовской оптимизации<ref>[https://arxiv.org/pdf/1910.11858.pdf, Cоответствующее исследование.]</ref> (рисунок 4).
===Стратегия оценки эффективности (Performance Estimation Strategy)===
+
[[Файл:NAS-method-comparison_rus.png|700px|thumb|center| Рисунок 4 — Слева: результат экспериментов, минимизирующих функцию потерь и количества параметров модели. Cправа: сравнение основных используемых в NAS алгоритмов. [https://arxiv.org/pdf/1910.11858.pdf, Источник, стр. 8] ]]
Целью NAS обычно является поиск
 
архитектуры, обеспечивающей высокую точность прогнозов по невидимым данным. Performance Estimation относится к процессу оценки этой производительности. Самый простой вариант - выполнить стандартное обучение и проверку архитектуры данных, но это, к сожалению, вычислительно дорого и ограничивает количество архитектур, которые можно изучить. Поэтому многие недавние исследования направлены на разработку методов,
 
способных снизить стоимость этих оценок производительности.
 
  
== Решения NAS ==
+
Байесовская оптимизация (англ. ''Bayes Optimization, BO'') использует алгоритм для построения вероятностной модели целевой функции, а затем использует эту модель, чтобы выбрать наиболее перспективные гиперпараметры и оценивает выбранные гиперпараметры на истинной целевой функции. Таким образом, байесовская оптимизация может итеративно обновлять вероятностную модель, ведя учет оценок прошлых результатов.
=== Метод .. ===
+
 
=== Метод Neural Bayes Optimization ===
+
==== BANANAS (англ. ''Bayesian optimization with neural architectures for NAS'') ====
Байесовская оптимизация (Bayes Optimization, BO) использует алгоритм для построения вероятностной модели целевой функции, а затем использует эту модель, чтобы выбрать наиболее перспективные гиперпараметры и оценивает выбранные гиперпараметры на истинной целевой функции. Следовательно, BO может итеративно обновлять вероятностную модель, ведя учет оценок прошлых результатов.
+
[[Файл:BANANAS alg_rus.png|400px|thumb|right| Рисунок 5 — Иллюстрация мета-нейронной сети в алгоритме BANANAS. [https://arxiv.org/pdf/1910.11858.pdf, Источник, стр. 2] ]]
 +
Сложностью применения байесовской оптимизации в NAS является обязательное наличие функции расстояния между различными архитектурами нейросети. Чтобы обойти этот момент, был разработан [https://github.com/naszilla/bananas BANANAS] — алгоритм, использующий специальную кодировку (англ. ''path encoding'') для кодирования входных архитектур и получающий на выходе вероятностные распределения (рисунок 5).
 +
 
 +
Алгоритм BANANAS:
 +
#Выбираются <tex>t_0</tex> случайных архитектур из пространства поиска.
 +
#Итерационно проводится обучение ансамбля мета-нейронных сетей на выбранных архитектурах. Каждая сеть ансамбля является сетью прямой связи с полностью связанными слоями, каждому слою дается случайная инициализация весов и случайный порядок обучающего набора. Используемая функция ошибки {{---}} вариация [[%D0%9E%D1%86%D0%B5%D0%BD%D0%BA%D0%B0_%D0%BA%D0%B0%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%B0_%D0%B2_%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B0%D1%85_%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D0%B8_%D0%B8_%D1%80%D0%B5%D0%B3%D1%80%D0%B5%D1%81%D1%81%D0%B8%D0%B8#.D0.A1.D1.80.D0.B5.D0.B4.D0.BD.D1.8F.D1.8F_.D0.B0.D0.B1.D1.81.D0.BE.D0.BB.D1.8E.D1.82.D0.BD.D0.B0.D1.8F_.D0.BF.D1.80.D0.BE.D1.86.D0.B5.D0.BD.D1.82.D0.BD.D0.B0.D1.8F_.D0.BE.D1.88.D0.B8.D0.B1.D0.BA.D0.B0_.28.D0.B0.D0.BD.D0.B3.D0.BB._Mean_Absolute_Percentage_Error.2C_MAPE.29 | MAPE (англ. ''Mean Absolute Percentage Error'')]].
 +
##Далее формируется набор архитектур-кандидатов посредством случайных изменений лучших архитектур после обучения.
 +
##Для каждой архитектуры-кандидата определяется значение переданной на вход функции сбора [https://en.wikipedia.org/wiki/Thompson_sampling независимой выборки Томпсона] (англ. ''ITS acquisition function'').
 +
##Для архитектуры-кандидата с минимальным значением функции сбора определяется значение целевой вероятностной функции.
 +
 
 +
===Стратегия оценки эффективности (англ. ''Performance Estimation Strategy'')===
 +
Целью NAS обычно является поиск архитектуры, обеспечивающей высокую точность прогнозов. Определением этой точности занимается процесс оценки эффективности. Самый простой вариант — выполнить стандартное обучение и проверку архитектуры данных, но это, к сожалению, вычислительно дорого и ограничивает количество архитектур, которые можно изучить. Поэтому многие недавние исследования направлены на разработку методов, способных снизить стоимость оценки эффективности и увеличить скорость. Уже разработанные методы:
 +
*Сокращение качества оценки — более высокая скорость достигается сокращением набора данных.
 +
*Экстраполяция прямой обучения — функция оценки может быть экстраполирована после всего нескольких обучающих итераций.
 +
*Наследование / Сетевые морфизмы — параметры модели не ищутся каждый раз, они наследуются по каким-либо правилам.
 +
*Модели ''One-Shot'' / Распределение веса — обучается только одна модель, далее ее веса/параметры используются остальными моделями.
 +
 
 +
== См. также ==
 +
* [[Автоматическое машинное обучение]]
 +
* [[Настройка гиперпараметров]]
 +
* [[Обучение с подкреплением]]
 +
* [[Модель алгоритма и её выбор]]
 +
* [[Эволюционные алгоритмы]]
 +
 
 +
==Примечания==
 +
<references/>
  
 
== Источники информации ==
 
== Источники информации ==
Строка 49: Строка 73:
 
* [https://towardsdatascience.com/neural-architecture-search-nas-the-future-of-deep-learning-c99356351136 Medium Towards Data Science - Neural Architecture Search (NAS) - The Future Of Deep Learning]
 
* [https://towardsdatascience.com/neural-architecture-search-nas-the-future-of-deep-learning-c99356351136 Medium Towards Data Science - Neural Architecture Search (NAS) - The Future Of Deep Learning]
 
*[https://arxiv.org/pdf/1808.05377.pdf Neural Architecture Search: A Survey]
 
*[https://arxiv.org/pdf/1808.05377.pdf Neural Architecture Search: A Survey]
 +
 +
[[Категория: Машинное обучение]]
 +
[[Категория: Автоматическое машинное обучение]]

Текущая версия на 19:19, 4 сентября 2022

Определение:
Поиск архитектуры нейронной сети (англ. Neural Architecture Search, NAS) — это процесс автоматизации проектирования архитектуры нейронной сети. Другими словами, это процесс поиска лучшей структуры модели машинного обучения. Система NAS получает на вход набор данных и тип задачи (классификация, регрессия и т.д.), и на выходе дает архитектуру модели. Полученная архитектура будет работать лучше остальных архитектур для данного типа задачи при обучении на предоставленном наборе данных.


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

Принцип работы

Методы для NAS классифицируются по трем категориям: пространство поиска (англ. Search Space), стратегия поиска (англ. Search Strategy) и стратегия оценки эффективности (англ. Performance Estimation Strategy). Схематичный принцип работы NAS отображен на рисунке 1.

Рисунок 1 — Обобщающая иллюстрация методов NAS. Стратегия поиска выбирает архитектуру [math]A[/math] из предопределенного пространства поиска [math]A[/math]. Архитектура передается в стратегию оценки производительности, которая возвращает оценку эффективности [math]A[/math] в стратегию поиска.

Пространство поиска (англ. Search Space)

Пространство поиска определяет, какую нейронную архитектуру в принципе может обнаружить система NAS. Это может быть цепочечная архитектура (рисунок 2, слева), в которой выход уровня [math](n-1)[/math] подается как вход уровня [math](n)[/math]. Или это может быть сложная ветвистая архитектура с пропусками соединений[1] (рисунок 2, справа).

В некоторых случаях используют спроектированный вручную каркас архитектуры (макроархитектуру), состоящий из повторяющихся ячеек (англ. motifs/blocks/cells). В таких случаях каркас является фиксированным, а задача NAS заключается в поиске архитектуры самих ячеек. Такой тип поиска известен как микро-поиск (англ. cell-search) (рисунок 3).

  • Рисунок 2 — цепочечная архитектура (слева) и ветвистая архитектура (справа). Различные типы слоев визуализируются разными цветами. Ребро от слоя [math]C_i[/math] до слоя [math]C_j[/math] означает, что [math]C_j[/math] в качестве входных данных получает выходные данные [math]C_i[/math].
  • Рисунок 3 — Слева: архитектуры ячеек. Например, обычная (англ. normal cell) вверху и редуцированная (англ. reduction cell) внизу. Cправа: каркас архитектуры состоит из 3 ячеек, конкретные архитектуры ячеек помещены в каркас.

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

Наиболее часто используемые типы архитектур для NAS[2]:

  • полные архитектуры (англ.entire structures)
  • прогрессивные архитектуры (англ. progressive structures)
  • архитектуры, основанные на ячейках (англ. cell-based structures)
  • архитектуры, основанные на морфизме (англ. morphism-based structures)

Стратегия поиска (англ. Search Strategy)

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

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

Сравнение методов стратегий поиска

Лучшие результаты на сегодняшний день показывает NAS с использованием стратегии байесовской оптимизации[3] (рисунок 4).

Рисунок 4 — Слева: результат экспериментов, минимизирующих функцию потерь и количества параметров модели. Cправа: сравнение основных используемых в NAS алгоритмов. Источник, стр. 8

Байесовская оптимизация (англ. Bayes Optimization, BO) использует алгоритм для построения вероятностной модели целевой функции, а затем использует эту модель, чтобы выбрать наиболее перспективные гиперпараметры и оценивает выбранные гиперпараметры на истинной целевой функции. Таким образом, байесовская оптимизация может итеративно обновлять вероятностную модель, ведя учет оценок прошлых результатов.

BANANAS (англ. Bayesian optimization with neural architectures for NAS)

Рисунок 5 — Иллюстрация мета-нейронной сети в алгоритме BANANAS. Источник, стр. 2

Сложностью применения байесовской оптимизации в NAS является обязательное наличие функции расстояния между различными архитектурами нейросети. Чтобы обойти этот момент, был разработан BANANAS — алгоритм, использующий специальную кодировку (англ. path encoding) для кодирования входных архитектур и получающий на выходе вероятностные распределения (рисунок 5).

Алгоритм BANANAS:

  1. Выбираются [math]t_0[/math] случайных архитектур из пространства поиска.
  2. Итерационно проводится обучение ансамбля мета-нейронных сетей на выбранных архитектурах. Каждая сеть ансамбля является сетью прямой связи с полностью связанными слоями, каждому слою дается случайная инициализация весов и случайный порядок обучающего набора. Используемая функция ошибки — вариация MAPE (англ. Mean Absolute Percentage Error).
    1. Далее формируется набор архитектур-кандидатов посредством случайных изменений лучших архитектур после обучения.
    2. Для каждой архитектуры-кандидата определяется значение переданной на вход функции сбора независимой выборки Томпсона (англ. ITS acquisition function).
    3. Для архитектуры-кандидата с минимальным значением функции сбора определяется значение целевой вероятностной функции.

Стратегия оценки эффективности (англ. Performance Estimation Strategy)

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

  • Сокращение качества оценки — более высокая скорость достигается сокращением набора данных.
  • Экстраполяция прямой обучения — функция оценки может быть экстраполирована после всего нескольких обучающих итераций.
  • Наследование / Сетевые морфизмы — параметры модели не ищутся каждый раз, они наследуются по каким-либо правилам.
  • Модели One-Shot / Распределение веса — обучается только одна модель, далее ее веса/параметры используются остальными моделями.

См. также

Примечания

  1. англ. Multi-branch neural networks with branch control, пример: multi-branch network
  2. Источник: "AutoML: A Survey of the State-of-the-Art", стр.2
  3. Cоответствующее исследование.

Источники информации