Изменения

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

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

6673 байта добавлено, 19:19, 4 сентября 2022
м
rollbackEdits.php mass rollback
Neaural Architecture Search (NAS, {{Определение|definition ='''Поиск архитектуры нейронной сети''' (англ. ''Neural Architecture Search, NAS'') - — это процесс автоматизации проектирования архитектурынейронной сети. Другими словами, то есть нахождение нашей это процесс поиска лучшей структуры модели машинного обучения. Системе Система NAS предоставляется получает на вход набор данных, и тип задачи (классификация, регрессия и т.д.), и на основании которого система определяет выходе дает архитектуру нейронной сетимодели. Эта Полученная архитектура будет работать лучше всех других остальных архитектур для данной данного типа задачи при обучении предоставленным набором на предоставленном наборе данных. }} NAS можно рассматривать как часть AutoML ([[Автоматическое машинное обучение|автоматического машинного обучения (англ. ''AutoML'')]]), он имеет значительное совпадение . NAS существенно пересекается с оптимизацией гиперпараметров ([[Настройка гиперпараметров|оптимизацией гиперпараметров]]). NAS находит архитектуру Чтобы из всех возможных архитектурнайти нужную, следуя NAS следует стратегии поиска, которая максимизирует производительность. На следующем рисунке представлен алгоритм NAS.
== Принцип работы ==
Методы для NAS классифицируются по трем категориям: пространство поиска (англ. ''Search Space''), стратегия поиска (англ. ''Search Strategy'') и стратегия оценки эффективности (англ. ''Performance Estimation Strategy''). Схематичный принцип работы NAS отображен на рисунке 1.[[Файл:NAS 1rus.PNGpng|900px|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>. Или это может быть современная сложная ветвистая архитектура с пропущенным соединением (multiпропусками соединений<ref>англ. ''Multi-branch network). Предварительные знания о типичных свойствах архитектур способны уменьшить размер пространства поиска и упростить поиск. Тем не менееneural networks with branch control'', они также могут помешать человеку найти новые архитектурные строительные блоки, которые выходят за рамки современных человеческих знаний.пример: [[Файлhttps:Chain-like-NAS//ieeexplore.ieee.png|thumb|center|Рисунок 2 - A chain-like and org/document/1323611, multi-branch network; каждый узел соответствует уровню в нейронной сети. Различные типы слоев визуализируются разными цветами. Ребро от слоя Li до слоя Lj обозначает, что Lj получает выходные данные Li в качестве входных данных.]]Иногда используют внешнюю архитектуру ручной работы </ref> (макроархитектурурисунок 2, справа) с повторяющимися мотивами или ячейками. В таких случаях внешняя структура является фиксированной, NAS ищет только cell-архитектуры. Этот тип поиска известен как микро-поиск или cell search.[[Файл:Cell-like-NAS.png|thumb|center|Рисунок 3 - слева: сell architecture, две разные ячейки, например normal cell(вверху) и reduction cell (внизу); справа: ячейки помещены во внешнюю структуру ручной работы]]
В некоторых случаях используют спроектированный вручную каркас архитектуры (макроархитектуру), состоящий из повторяющихся ячеек (англ. ''motifs/blocks/cells''). В таких случаях каркас является фиксированным, а задача NAS заключается в поиске архитектуры самих ячеек. Такой тип поиска известен как микро-поиск (англ. ''cell-search'') (рисунок 3).
<div style="text-align: center"><ul> <li style== Стратегия поиска "display: inline-block;"> [[Файл:Chain_like_NAS_rus.png|thumb|400px| Рисунок 2 — цепочечная архитектура (слева) и ветвистая архитектура (Search Strategyсправа). Различные типы слоев визуализируются разными цветами. Ребро от слоя <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>
Для изучения Предварительные знания о типичных свойствах архитектур могут уменьшить размер пространства нейронных поиска и упростить поиск. Тем не менее, они также могут помешать человеку найти новые архитектурные ячейки, которые выходят за рамки современных человеческих знаний. Наиболее часто используемые типы архитектур можно использовать множество различных стратегий поискадля NAS<ref>Источник: [https://arxiv.org/pdf/1908.00709.pdf, "AutoML: A Survey of the State-of-the-Art", включая стр.2]</ref>:* полные архитектуры (англ.''entire structures'случайный поиск') * прогрессивные архитектуры (англ. '', progressive structures'')* архитектуры, основанные на ячейках (англ. 'байесовскую оптимизацию'cell-based structures'')* архитектуры, основанные на [https://ru.wiktionary.org/wiki/%D0%BC%D0%BE%D1%80%D1%84%D0%B8%D0%B7%D0%BC морфизме] (англ. ''morphism-based structures'эволюционные методы') === Стратегия поиска (англ. '', 'Search Strategy'')===Стратегия поиска подробно описывает, как исследовать пространство поиска, которое часто экспоненциально велико или даже неограниченно. Она включает в себя классический компромисс между разведкой и эксплуатацией, поскольку, с одной стороны, желательно найти быстро работающие архитектуры, с другой стороны, следует избегать преждевременного схождения. Для изучения пространства нейронных архитектур можно использовать множество различных стратегий поиска, включая случайный поиск, байесовскую оптимизацию, эволюционные методы, [[обучение с подкреплением]] (reinforcement learning)''' и '''методы на основе градиента'''.
==== Сравнение методов стратегий поиска ====
Лучшие результаты на сегодняшний день показывает NAS с использованием стратегии байесовской оптимизации<ref>[https://arxiv.org/pdf/1910.11858.pdf, Cоответствующее исследование.]</ref> (рисунок 4).[[Файл:NAS-method-comparisoncomparison_rus.PNGpng|700px|thumb|center|Рисунок 4 - слева— Слева: результат экспериментов, минимизирующих функцию потерь и количества параметров модели; справа. Cправа: сравнение основных используемых в NAS алгоритмов. [https://arxiv.org/pdf/1910.11858.pdf, Источник, стр. 8] ]] Байесовская оптимизация (англ. ''Bayes Optimization, BO'') использует алгоритм для построения вероятностной модели целевой функции, а затем использует эту модель, чтобы выбрать наиболее перспективные гиперпараметры и оценивает выбранные гиперпараметры на истинной целевой функции. Таким образом, байесовская оптимизация может итеративно обновлять вероятностную модель, ведя учет оценок прошлых результатов. ====Стратегия оценки эффективности BANANAS (Performance Estimation Strategyангл. ''Bayesian optimization with neural architectures for NAS'')====Целью NAS обычно является поискархитектуры, обеспечивающей высокую точность прогнозов по невидимым данным[[Файл:BANANAS alg_rus.png|400px|thumb|right| Рисунок 5 — Иллюстрация мета-нейронной сети в алгоритме BANANAS. [https://arxiv.org/pdf/1910. Performance Estimation относится к процессу оценки этой производительности11858. Самый простой вариант - выполнить стандартное обучение и проверку архитектуры данныхpdf, но этоИсточник, к сожалениюстр. 2] ]]Сложностью применения байесовской оптимизации в NAS является обязательное наличие функции расстояния между различными архитектурами нейросети. Чтобы обойти этот момент, вычислительно дорого и ограничивает количество архитектурбыл разработан [https://github.com/naszilla/bananas BANANAS] — алгоритм, которые можно изучитьиспользующий специальную кодировку (англ. Поэтому многие недавние исследования направлены ''path encoding'') для кодирования входных архитектур и получающий на разработку методов,способных снизить стоимость этих оценок производительностивыходе вероятностные распределения (рисунок 5).
== Решения NAS ==Алгоритм 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'').##Для архитектуры-кандидата с минимальным значением функции сбора определяется значение целевой вероятностной функции. === === Метод Neural Bayes Optimization Стратегия оценки эффективности (англ. ''Performance Estimation Strategy'')===Байесовская оптимизация (Bayes OptimizationЦелью NAS обычно является поиск архитектуры, обеспечивающей высокую точность прогнозов. Определением этой точности занимается процесс оценки эффективности. Самый простой вариант — выполнить стандартное обучение и проверку архитектуры данных, BO) использует алгоритм для построения вероятностной модели целевой функциино это, а затем использует эту модельк сожалению, чтобы выбрать наиболее перспективные гиперпараметры вычислительно дорого и оценивает выбранные гиперпараметры ограничивает количество архитектур, которые можно изучить. Поэтому многие недавние исследования направлены на истинной целевой функцииразработку методов, способных снизить стоимость оценки эффективности и увеличить скорость. Уже разработанные методы:*Сокращение качества оценки — более высокая скорость достигается сокращением набора данных.*Экстраполяция прямой обучения — функция оценки может быть экстраполирована после всего нескольких обучающих итераций. Следовательно*Наследование / Сетевые морфизмы — параметры модели не ищутся каждый раз, BO может итеративно обновлять вероятностную они наследуются по каким-либо правилам.*Модели ''One-Shot'' / Распределение веса — обучается только одна модель, ведя учет оценок прошлых результатовдалее ее веса/параметры используются остальными моделями== См. также ==* [[Автоматическое машинное обучение]]* [[Настройка гиперпараметров]]* [[Обучение с подкреплением]]* [[Модель алгоритма и её выбор]]* [[Эволюционные алгоритмы]] ==Примечания==<references/>
== Источники информации ==
* [https://arxiv.org/pdf/1910.11858.pdf Bayesian Optimization with Neural Architectures for Neural Architecture Search, Colin White, Willie Neiswanger, Yash Savani]
* [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]
 
[[Категория: Машинное обучение]]
[[Категория: Автоматическое машинное обучение]]
1632
правки

Навигация