Изменения

Перейти к: навигация, поиск

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

1197 байт добавлено, 22:10, 2 октября 2020
Исправлены картинки. Добавлены разделы. Переписаны корявые предложения.
{{Определение
|definition =
'''Поиск архитектуры нейронной сети''' (англ. ''Neural Architecture Search, NAS'') — это процесс автоматизации проектирования архитектурынейронной сети. Другими словами, то есть нахождение самой это процесс поиска лучшей структуры модели машинного обучения. Системе Система NAS предоставляется получает на вход набор данных, и тип задачи (классификация, регрессия и т.д.), и на основании которого система определяет выходе дает архитектуру нейронной сетимодели. Эта Полученная архитектура будет работать лучше всех других остальных архитектур для данной данного типа задачи при обучении предоставленным набором на предоставленном наборе данных.
}}
NAS можно рассматривать как часть AutoML ([[Автоматическое машинное обучение|автоматического машинного обучения (англ. ''AutoML'')]]), он имеет значительное совпадение . NAS существенно пересекается с оптимизацией гиперпараметров ([[Настройка гиперпараметров|оптимизацией гиперпараметров]]). NAS находит архитектуру Чтобы из всех возможных архитектурнайти нужную, следуя NAS следует стратегии поиска, которая максимизирует производительность.
== Принцип работы ==
Методы для NAS классифицируются по трем измерениямкатегориям: пространство поиска (англ. ''Search Space''), стратегия поиска (англ. ''Search Strategy'') и стратегия оценки эффективности (англ. ''Performance Estimation Strategy''). Схематичный принцип работы NAS отображен на рисунке 1.[[Файл:NAS 1rus.PNGpng|800px900px|thumb|center|Рисунок 1 — Обобщающая иллюстрация методов NAS. Стратегия поискавыбирает архитектуру <tex>A</tex> из предопределенного пространства поиска <math>A</math>. Архитектурапередается в стратегию оценки производительности, которая возвращает оценку эффективности <tex>A</tex> в стратегию поиска. ([https://arxiv.org/pdf/1808.05377.pdf Источник])]]
=== Пространство поиска (англ. ''Search Space'') ===
Пространство поиска определяет, какую нейронную архитектуру в принципе может обнаружить подход система 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, справа). В некоторых случаях используют спроектированный вручную каркас архитектуры (макроархитектуру), состоящий из повторяющихся ячеек (англ. ''motifs/blocks/cells''). В таких случаях каркас является фиксированным, а задача NAS заключается в поиске архитектуры самих ячеек. Такой тип поиска известен как микро-поиск (англ. ''cell-search'') (рисунок 3). 
<div style="text-align: center"><ul>
<li style="display: inline-block;"> [[Файл:Chain-like-NASChain_like_NAS_rus.png|thumb|330px400px| Рисунок 2 — ''Chain-like'' цепочечная архитектура (слева) и ''multi-branch'' сеть; ветвистая архитектура (справа). Различные типы слоев визуализируются разными цветами. Ребро от слоя <tex>L_iC_i</tex> до слоя <tex>L_jC_j</tex> обозначаетозначает, что <tex>L_jC_j</tex> в качестве входных данных получает выходные данные <tex>L_iC_i</tex> в качестве входных данных.]] </li><li style="display: inline-block;"> [[Файл:Cell-like-NASCell_like_NAS_rus.png|thumb|410px450px| Рисунок 3 — Слева: ''сell architecture''архитектуры ячеек. Например, две разные ячейки, например обычная (англ. ''normal cell'' () вверху) и редуцированная (англ. ''reduction cell'' () внизу); . Cправа: ячейки каркас архитектуры состоит из 3 ячеек, конкретные архитектуры ячеек помещены во внешнюю структуру ручной работыв каркас.]] </li>
</ul></div>
Предварительные знания о типичных свойствах архитектур способны уменьшить размер пространства поиска и упростить поиск. Тем не менее, они также могут помешать человеку найти новые архитектурные строительные блоки, которые выходят за рамки современных человеческих знаний.
Наиболее часто используемые типы Предварительные знания о типичных свойствах архитектур для NAS — это ''entire structures'' ([https://arxiv.org/pdf/1908.00709могут уменьшить размер пространства поиска и упростить поиск.pdfТем не менее, Источник 4.1.1 стр.6])они также могут помешать человеку найти новые архитектурные ячейки, ''cell-based structures'' ([https://arxiv.org/pdf/1908.00709.pdf, Источник 4.1.2 стр.6]), ''progressive structures'' ([https://arxiv.org/pdf/1908.00709.pdf, Источник 4.1.3 стр.7]) и ''morphism-based structures'' ([https://arxiv.org/pdf/1908.00709.pdf, Источник 4.1.4 стр.8])которые выходят за рамки современных человеческих знаний.
Иногда используют внешнюю архитектуру ручной работы Наиболее часто используемые типы архитектур для NAS<ref>Источник: [https://arxiv.org/pdf/1908.00709.pdf, "AutoML: A Survey of the State-of-the-Art", стр.2]</ref>:* полные архитектуры (макроархитектуру) с повторяющимися мотивами или ячейкамиангл. В таких случаях внешняя структура является фиксированной, NAS ищет только ''cellentire structures''-) * прогрессивные архитектуры(англ. ''progressive structures'')* архитектуры, основанные на ячейках (англ. Этот тип поиска известен как микро-поиск или ''cell search-based structures'' )* архитектуры, основанные на [https://ru.wiktionary.org/wiki/%D0%BC%D0%BE%D1%80%D1%84%D0%B8%D0%B7%D0%BC, морфизме] (смангл. рисунок 3''morphism-based structures'').
=== Стратегия поиска (англ. ''Search Strategy'')===
Стратегия поиска подробно описывает, как исследовать пространство поиска, которое часто экспоненциально велико или даже неограниченно. Она включает в себя классический компромисс между разведкой и эксплуатацией, поскольку, с одной стороны, желательно найтибыстро работающие архитектуры, с другой стороны, следует избегать преждевременного схождения.
Для изучения пространства нейронных архитектур можно использовать множество различных стратегий поиска, включая случайный поиск, байесовскую оптимизацию, эволюционные методы, [[обучение с подкреплением]] и методы на основе градиента.
==== Сравнение методов стратегий поиска ====
Лучшие результаты на сегодняшний день показывает NAS с использованием стратегии байесовской оптимизации (согласно исследованию <ref>[https://arxiv.org/pdf/1910.11858.pdf Bayesian Optimization with Neural Architectures for Neural Architecture Search, Colin White, Willie Neiswanger, Yash SavaniCоответствующее исследование.], </ref> (рисунок 4).[[Файл:NAS-method-comparison.PNG|700px|thumb|center| Рисунок 4 — Слева: результат экспериментов, минимизирующих функцию потерь и количества параметров модели; справа. Cправа: сравнение основных используемых в NAS алгоритмов. [https://arxiv.org/pdf/1910.11858.pdf, Источник, стр. 8] ]]
Байесовская оптимизация (англ. ''Bayes Optimization, BO'') использует алгоритм для построения вероятностной модели целевой функции, а затем использует эту модель, чтобы выбрать наиболее перспективные гиперпараметры и оценивает выбранные гиперпараметры на истинной целевой функции. СледовательноТаким образом, ''BO'' байесовская оптимизация может итеративно обновлять вероятностную модель, ведя учет оценок прошлых результатов.
==== BANANAS (англ. ''Bayesian optimization with neural architectures for NAS'') ====
[[Файл:BANANAS alg.PNG|400px|thumb|right| Рисунок 5 — Иллюстрация мета-нейронной сети в алгоритме BANANAS. [https://arxiv.org/pdf/1910.11858.pdf, Источник, стр. 2] ]]Сложностью применения байесовской оптимизации в NAS является обязательное наличие функции расстояния между слоями нейросети. Чтобы обойти этот момент, был разработан алгоритм [https://github.com/naszilla/bananas BANANAS (Bayesian optimization with neural architectures for NAS)] — алгоритм, использующий специальную кодировку (англ. ''path encoding'' ) для кодирования входных архитектур и получающий на выходе вероятностные распределения (см. рисунок 5).
Алгоритм ''BANANAS'':#Выбираются <tex>t_0</tex> случайных архитектур из пространства поиска (''Search Space'').#Итерационно проводится обучение ансамбля мета-нейронный нейронных сетей на выбранных архитектурах. Каждая сеть ансамбля является сетью прямой связи с полностью связанными слоями, каждому слою дается случайная инициализация весов и случайный порядок обучающего набора. Используемая функция ошибки - вариация [https://en.wikipedia.org/wiki/Mean_absolute_percentage_error, MAPE ] (англ. ''Mean Absolute Percentage Error'').##Далее формируется набор архитектур-кандидатов посредством случайных изменений лучших архитектур после обучения.##Для каждой архитектуры-кандидата определяется значение переданной на вход ''ITS acquisition function'' (''[функции сбора [https://en.wikipedia.org/wiki/Thompson_sampling independent Thompson sampling], независимой выборки Томпсона](англ. ''ITS acquisition function'').##Для архитектуры-кандидата с минимальным значением ''acquisition function'' функции сбора определяется значение целевой вероятностной функции.
===Стратегия оценки эффективности (англ. ''Performance Estimation Strategy'')===
Целью NAS обычно является поиск архитектуры, обеспечивающей высокую точность прогнозов. ''Performance Estimation'' относится к процессу Определением этой точности занимается процесс оценки этой производительностиэффективности. Самый простой вариант — выполнить стандартное обучение и проверку архитектуры данных, но это, к сожалению, вычислительно дорого и ограничивает количество архитектур, которые можно изучить. Поэтому многие недавние исследования направлены на разработку методов, способных снизить стоимость этих оценок производительностиэффективности.
Способы снижения стоимости ''Performance Estimation'' процесса оценки эффективности и увеличения скорости:
*Сокращение качества оценки — более высокая скорость достигается сокращением датасета
*Экстраполяция прямой обучения — функция оценки может быть экстраполирована после всего нескольких обучающих итераций
*Модели ''One-Shot'' / Распределение веса — обучается только одна модель, далее ее веса/параметры используются остальными моделями
== См. также ==
* [[Автоматическое машинное обучение]]
* [[Настройка гиперпараметров]]
* [[Обучение с подкреплением]]
* [[Модель алгоритма и её выбор]]
* [[Эволюционные алгоритмы]]
 
==Примечания==
<references/>
== Источники информации ==
* [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]
 
[[Категория: Машинное обучение]]
[[Категория: Автоматическое машинное обучение]]
10
правок

Навигация