Изменения

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

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

4711 байт добавлено, 06:59, 20 апреля 2020
Нет описания правки
Neaural Architecture Search (NAS, {{Определение|definition ='''Поиск архитектуры нейронной сети''' (англ. ''Neural Architecture Search, NAS'') - процесс автоматизации проектирования архитектуры, то есть нахождение нашей самой модели машинного обучения. Системе NAS предоставляется набор данных, тип задачи (классификация, регрессия и т.д.), на основании которого система определяет архитектуру нейронной сети. Эта архитектура будет работать лучше всех других архитектур для данной задачи при обучении предоставленным набором данных. }} 
NAS можно рассматривать как часть AutoML ([[Автоматическое машинное обучение]]), он имеет значительное совпадение с оптимизацией гиперпараметров ([[Настройка гиперпараметров]]). NAS находит архитектуру из всех возможных архитектур, следуя стратегии поиска, которая максимизирует производительность.
== Принцип работы ==
Методы для NAS классифицируются по трем измерениям: пространство поиска (англ. ''Search Space''), стратегия поиска (англ. ''Search Strategy'') и стратегия оценки эффективности (англ. ''Performance Estimation Strategy''). Схематичный принцип работы NAS отображен на рисунке 1.[[Файл:NAS 1.PNG|900px800px|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>. Или это может быть современная сложная архитектура с пропущенным соединением (англ. ''[https://ieeexplore.ieee.org/document/1323611 multi-branch network]'').<div style="text-align: center"><ul> <li style="display: inline-block;"> [[Файл:Chain-like-NAS.png|thumb|330px| Рисунок 2 — ''Chain-like'' и ''multi-branch'' сеть; Различные типы слоев визуализируются разными цветами. Ребро от слоя <tex>L_i</tex> до слоя <tex>L_j</tex> обозначает, что <tex>L_j</tex> получает выходные данные <tex>L_i</tex> в качестве входных данных.]] </li><li style="display: inline-block;"> [[Файл:Cell-like-NAS.png|thumb|410px| Рисунок 3 — Слева: ''сell architecture'', две разные ячейки, например ''normal cell'' (вверху) и ''reduction cell'' (внизу); Cправа: ячейки помещены во внешнюю структуру ручной работы]] </li></ul></div>Предварительные знания о типичных свойствах архитектур способны уменьшить размер пространства поиска и упростить поиск. Тем не менее, они также могут помешать человеку найти новые архитектурные строительные блоки, которые выходят за рамки современных человеческих знаний.
=== Пространство поиска (Search Space) ===Пространство поиска определяет, какую нейронную архитектуру в принципе может обнаружить подход NAS. Это может быть цепочечная архитектура, в которой выход уровня (n-1) подается как вход уровня (n). Или это может быть современная сложная архитектура с пропущенным соединением (multi-branch network). Предварительные знания о типичных свойствах архитектур способны уменьшить размер пространства поиска и упростить поиск. Тем не менее, они также могут помешать человеку найти новые архитектурные строительные блоки, которые выходят за рамки современных человеческих знаний.Наиболее часто используемые типы архитектур для NAS - это ''entire structures'' ([https://arxiv.org/pdf/1908.00709.pdf, Источник 4.1.1 стр.6]), ''cell-based structures,progressive structures and morphism-based structures. '' ([[Файлhttps:Chain-like-NAS//arxiv.png|thumb|center|Рисунок 2 - A chain-like and multi-branch network; каждый узел соответствует уровню в нейронной сетиorg/pdf/1908. Различные типы слоев визуализируются разными цветами00709. Ребро от слоя Li до слоя Lj обозначаетpdf, что Lj получает выходные данные Li в качестве входных данныхИсточник 4.1.2 стр.6]]Иногда используют внешнюю архитектуру ручной работы ), ''progressive structures'' (макроархитектуру) с повторяющимися мотивами или ячейками[https://arxiv.org/pdf/1908.00709. В таких случаях внешняя структура является фиксированнойpdf, NAS ищет только cell-архитектурыИсточник 4. Этот тип поиска известен как микро-поиск или cell search1.[[Файл:Cell-like-NAS3 стр.png|thumb|center|Рисунок 3 - слева: сell architecture, две разные ячейки, например normal cell(вверху7]) и reduction cell ''morphism-based structures'' (внизу); справа[https: ячейки помещены во внешнюю структуру ручной работы]//arxiv.org/pdf/1908.00709.pdf, Источник 4.1.4 стр.8]).
Иногда используют внешнюю архитектуру ручной работы (макроархитектуру) с повторяющимися мотивами или ячейками. В таких случаях внешняя структура является фиксированной, NAS ищет только ''cell''-архитектуры''. Этот тип поиска известен как микро-поиск или ''cell search'' (см. рисунок 3).
=== Стратегия поиска (англ. ''Search Strategy'')===
Стратегия поиска подробно описывает, как исследовать пространство поиска, которое часто экспоненциально велико или даже неограниченно. Она включает в себя классический компромисс между разведкой и эксплуатацией, поскольку, с одной стороны, желательно найти
быстро работающие архитектуры, с другой стороны, следует избегать преждевременного схождения.
Для изучения пространства нейронных архитектур можно использовать множество различных стратегий поиска, включая '''случайный поиск''', '''байесовскую оптимизацию''', '''эволюционные методы''', '''[[обучение с подкреплением]] (reinforcement learning)''' и '''методы на основе градиента'''.  ==== Сравнение методов стратегий поиска ====Лучшие результаты на сегодняшний день показывает NAS с использованием стратегии байесовской оптимизации (согласно исследованию [https://arxiv.org/pdf/1910.11858.pdf Bayesian Optimization with Neural Architectures for Neural Architecture Search, Colin White, Willie Neiswanger, Yash Savani], рисунок 4).[[Файл:NAS-method-comparison.PNG|700px|thumb|center| Рисунок 4 — Слева: результат экспериментов, минимизирующих функцию потерь и количества параметров модели; справа: сравнение основных используемых в NAS алгоритмов]]
=== BANANAS Байесовская оптимизация (Bayesian optimization with neural architectures for NASангл. ''Bayes Optimization, BO'') ===использует алгоритм для построения вероятностной модели целевой функции, а затем использует эту модель, чтобы выбрать наиболее перспективные гиперпараметры и оценивает выбранные гиперпараметры на истинной целевой функции. Следовательно, ''BO'' может итеративно обновлять вероятностную модель, ведя учет оценок прошлых результатов.
==== BANANAS (англ. ''Bayesian optimization with neural architectures for NAS'') ====
[[Файл:BANANAS alg.PNG|400px|thumb|right| Рисунок 5 — Иллюстрация мета-нейронной сети в алгоритме BANANAS]]
Сложностью применения байесовской оптимизации в NAS является обязательное наличие функции расстояния между слоями нейросети. Чтобы обойти этот момент, был разработан алгоритм [https://github.com/naszilla/bananas BANANAS (Bayesian optimization with neural architectures for NAS)] — алгоритм, использующий специальную кодировку ''path encoding'' для кодирования входных архитектур и получающий на выходе вероятностные распределения (см. рисунок 5).
==== Сравнение методов стратегий Алгоритм ''BANANAS'':#Выбираются <tex>t_0</tex> случайных архитектур из пространства поиска ====(''Search Space'')[[Файл:NAS#Итерационно проводится обучение ансамбля мета-methodнейронный сетей на выбранных архитектурах. Каждая сеть ансамбля является сетью прямой связи с полностью связанными слоями, каждому слою дается случайная инициализация весов и случайный порядок обучающего набора. Используемая функция ошибки -comparisonвариация MAPE (англ. ''Mean Absolute Percentage Error'').PNG|800px|thumb|center|Рисунок 4 ##Далее формируется набор архитектур- слевакандидатов посредством случайных изменений лучших архитектур после обучения##Для каждой архитектуры-кандидата определяется значение переданной на вход ''ITS acquisition function'' (''[[https: результат экспериментов, минимизирующих функцию потерь и количества параметров модели; справа: сравнение основных используемых в NAS алгоритмов//en.wikipedia.org/wiki/Thompson_sampling independent Thompson sampling]]'')##Для архитектуры-кандидата с минимальным значением ''acquisition function'' определяется значение целевой вероятностной функции ===Стратегия оценки эффективности (англ. ''Performance Estimation Strategy'')===Целью NAS обычно является поискархитектуры, обеспечивающей высокую точность прогнозов по невидимым данным. ''Performance Estimation '' относится к процессу оценки этой производительности. Самый простой вариант - выполнить стандартное обучение и проверку архитектуры данных, но это, к сожалению, вычислительно дорого и ограничивает количество архитектур, которые можно изучить. Поэтому многие недавние исследования направлены на разработку методов,способных снизить стоимость этих оценок производительности. Способы снижения стоимости ''Performance Estimation'' и увеличения скорости:*Сокращение качества оценки — более высокая скорость достигается сокращением датасета*Экстраполяция прямой обучения — функция оценки может быть экстраполирована после всего нескольких обучающих итераций*Наследование / Сетевые морфизмы — параметры модели не ищутся каждый раз, они наследуются по каким-либо правилам*Модели ''One-Shot'' / Распределение веса — обучается только одна модель, далее ее веса/параметры используются остальными моделями
== Решения NAS ==
=== Метод .. ===
=== Метод Neural Bayes Optimization ===
Байесовская оптимизация (Bayes Optimization, BO) использует алгоритм для построения вероятностной модели целевой функции, а затем использует эту модель, чтобы выбрать наиболее перспективные гиперпараметры и оценивает выбранные гиперпараметры на истинной целевой функции. Следовательно, BO может итеративно обновлять вероятностную модель, ведя учет оценок прошлых результатов.
== Источники информации ==
* [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])]
30
правок

Навигация