10
правок
Изменения
Исправлены опечатки, поправлена ссылка MAPE.
== Принцип работы ==
Методы для 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> в стратегию поиска. ]] === Пространство поиска (англ. ''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_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> Предварительные знания о типичных свойствах архитектур могут уменьшить размер пространства поиска и упростить поиск. Тем не менее, они также могут помешать человеку найти новые архитектурные ячейки, которые выходят за рамки современных человеческих знаний. Наиболее часто используемые типы архитектур для NAS<ref>Источник: [https://arxiv.org/pdf/18081908.0537700709.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'')===Стратегия поиска подробно описывает, как исследовать пространство поиска, которое часто экспоненциально велико или даже неограниченно. Она включает в себя классический компромисс между разведкой и эксплуатацией, поскольку, с одной стороны, желательно найти быстро работающие архитектуры, с другой стороны, следует избегать преждевременного схождения.
Для изучения пространства нейронных архитектур можно использовать множество различных стратегий поиска, включая случайный поиск, байесовскую оптимизацию, эволюционные методы, [[обучение с подкреплением]] и методы на основе градиента. == Методы == Сравнение методов стратегий поиска ====Лучшие результаты на сегодняшний день показывает NAS с использованием стратегии байесовской оптимизации<ref>[https://arxiv.org/pdf/1910.11858.pdf, Cоответствующее исследование.]</ref> (рисунок 4).[[Файл:NAS-method-comparison_rus.png|700px|thumb|center| Рисунок 4 — Слева: результат экспериментов, минимизирующих функцию потерь и количества параметров модели. Cправа: сравнение основных используемых в NAS алгоритмов. [https://arxiv.org/pdf/1910.11858.pdf, Источник, стр. 8] ]] Байесовская оптимизация (англ. ''Bayes Optimization, BO'') использует алгоритм для построения вероятностной модели целевой функции, а затем использует эту модель, чтобы выбрать наиболее перспективные гиперпараметры и оценивает выбранные гиперпараметры на истинной целевой функции. Таким образом, байесовская оптимизация может итеративно обновлять вероятностную модель, ведя учет оценок прошлых результатов. ==== BANANAS (англ. ''Bayesian optimization with neural architectures for NAS '') ====[[Файл: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/>
== Источники информации ==
* [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]
[[Категория: Машинное обучение]]
[[Категория: Автоматическое машинное обучение]]