Поиск архитектуры нейронной сети — различия между версиями
Строка 1: | Строка 1: | ||
− | + | {{Определение | |
+ | |definition = | ||
+ | '''Поиск архитектуры нейронной сети''' (англ. ''Neural Architecture Search, NAS'') — процесс автоматизации проектирования архитектуры, то есть нахождение самой модели машинного обучения. Системе NAS предоставляется набор данных, тип задачи (классификация, регрессия и т.д.), на основании которого система определяет архитектуру нейронной сети. Эта архитектура будет работать лучше всех других архитектур для данной задачи при обучении предоставленным набором данных. | ||
+ | }} | ||
+ | |||
NAS можно рассматривать как часть AutoML ([[Автоматическое машинное обучение]]), он имеет значительное совпадение с оптимизацией гиперпараметров ([[Настройка гиперпараметров]]). NAS находит архитектуру из всех возможных архитектур, следуя стратегии поиска, которая максимизирует производительность. | NAS можно рассматривать как часть AutoML ([[Автоматическое машинное обучение]]), он имеет значительное совпадение с оптимизацией гиперпараметров ([[Настройка гиперпараметров]]). NAS находит архитектуру из всех возможных архитектур, следуя стратегии поиска, которая максимизирует производительность. | ||
== Принцип работы == | == Принцип работы == | ||
− | [[Файл:NAS 1.PNG|900px|thumb|center| | + | Методы для NAS классифицируются по трем измерениям: пространство поиска (англ. ''Search Space''), стратегия поиска (англ. ''Search Strategy'') и стратегия оценки эффективности (англ. ''Performance Estimation Strategy''). Схематичный принцип работы NAS отображен на рисунке 1. |
− | выбирает архитектуру A из предопределенного пространства поиска A. Архитектура | + | [[Файл:NAS 1.PNG|900px|thumb|center|Рисунок 1 — Обобщающая иллюстрация методов NAS. Стратегия поиска |
− | передается в стратегию оценки производительности, которая возвращает оценку эффективности A в стратегию поиска. ([https://arxiv.org/pdf/1808.05377.pdf Источник])]] | + | выбирает архитектуру <tex>A</tex> из предопределенного пространства поиска <tex>A</tex>. Архитектура |
− | + | передается в стратегию оценки производительности, которая возвращает оценку эффективности <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> | ||
Предварительные знания о типичных свойствах архитектур способны уменьшить размер пространства поиска и упростить поиск. Тем не менее, они также могут помешать человеку найти новые архитектурные строительные блоки, которые выходят за рамки современных человеческих знаний. | Предварительные знания о типичных свойствах архитектур способны уменьшить размер пространства поиска и упростить поиск. Тем не менее, они также могут помешать человеку найти новые архитектурные строительные блоки, которые выходят за рамки современных человеческих знаний. | ||
− | Наиболее часто используемые типы архитектур для NAS | + | Наиболее часто используемые типы архитектур для 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 ищет только cell-архитектуры. Этот тип поиска известен как микро-поиск или cell search. | + | Иногда используют внешнюю архитектуру ручной работы (макроархитектуру) с повторяющимися мотивами или ячейками. В таких случаях внешняя структура является фиксированной, NAS ищет только ''cell''-архитектуры''. Этот тип поиска известен как микро-поиск или ''cell search'' (см. рисунок 3). |
− | + | === Стратегия поиска (англ. ''Search Strategy'')=== | |
− | === Стратегия поиска (Search Strategy)=== | ||
Стратегия поиска подробно описывает, как исследовать пространство поиска, которое часто экспоненциально велико или даже неограниченно. Она включает в себя классический компромисс между разведкой и эксплуатацией, поскольку, с одной стороны, желательно найти | Стратегия поиска подробно описывает, как исследовать пространство поиска, которое часто экспоненциально велико или даже неограниченно. Она включает в себя классический компромисс между разведкой и эксплуатацией, поскольку, с одной стороны, желательно найти | ||
быстро работающие архитектуры, с другой стороны, следует избегать преждевременного схождения. | быстро работающие архитектуры, с другой стороны, следует избегать преждевременного схождения. | ||
− | Для изучения пространства нейронных архитектур можно использовать множество различных стратегий поиска, включая | + | Для изучения пространства нейронных архитектур можно использовать множество различных стратегий поиска, включая случайный поиск, байесовскую оптимизацию, эволюционные методы, [[обучение с подкреплением]] и методы на основе градиента. |
==== Сравнение методов стратегий поиска ==== | ==== Сравнение методов стратегий поиска ==== | ||
− | + | Лучшие результаты на сегодняшний день показывает 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 с использованием стратегии байесовской оптимизации (согласно исследованию [https://arxiv.org/pdf/1910.11858.pdf Bayesian Optimization with Neural Architectures for Neural Architecture Search, Colin White, Willie Neiswanger, Yash Savani]). | + | [[Файл:NAS-method-comparison.PNG|800px|thumb|center| Рисунок 4 — Слева: результат экспериментов, минимизирующих функцию потерь и количества параметров модели; справа: сравнение основных используемых в NAS алгоритмов]] |
Байесовская оптимизация (Bayes Optimization, BO) использует алгоритм для построения вероятностной модели целевой функции, а затем использует эту модель, чтобы выбрать наиболее перспективные гиперпараметры и оценивает выбранные гиперпараметры на истинной целевой функции. Следовательно, BO может итеративно обновлять вероятностную модель, ведя учет оценок прошлых результатов. | Байесовская оптимизация (Bayes Optimization, BO) использует алгоритм для построения вероятностной модели целевой функции, а затем использует эту модель, чтобы выбрать наиболее перспективные гиперпараметры и оценивает выбранные гиперпараметры на истинной целевой функции. Следовательно, BO может итеративно обновлять вероятностную модель, ведя учет оценок прошлых результатов. | ||
− | ==== BANANAS (Bayesian optimization with neural architectures for NAS) ==== | + | ==== BANANAS (англ. ''Bayesian optimization with neural architectures for NAS'') ==== |
− | [[Файл:BANANAS alg.PNG|400px|thumb|right|Иллюстрация мета-нейронной сети в алгоритме BANANAS]] | + | [[Файл:BANANAS alg.PNG|400px|thumb|right| Рисунок 5 — Иллюстрация мета-нейронной сети в алгоритме BANANAS]] |
− | Сложностью применения байесовской оптимизации в NAS является обязательное наличие функции расстояния между слоями нейросети. Чтобы обойти этот момент, был разработан алгоритм [https://github.com/naszilla/bananas BANANAS (Bayesian optimization with neural architectures for NAS)] | + | Сложностью применения байесовской оптимизации в NAS является обязательное наличие функции расстояния между слоями нейросети. Чтобы обойти этот момент, был разработан алгоритм [https://github.com/naszilla/bananas BANANAS (Bayesian optimization with neural architectures for NAS)] — алгоритм, использующий специальную кодировку ''path encoding'' для кодирования входных архитектур и получающий на выходе вероятностные распределения (см. рисунок 5). |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
+ | Алгоритм ''BANANAS'': | ||
+ | #Выбираются <tex>t_0</tex> случайных архитектур из пространства поиска (''Search Space'') | ||
+ | #Итерационно проводится обучение ансамбля мета-нейронный сетей на выбранных архитектурах. Каждая сеть ансамбля является сетью прямой связи с полностью связанными слоями, каждому слою дается случайная инициализация весов и случайный порядок обучающего набора. Используемая функция ошибки - вариация MAPE (англ. ''Mean Absolute Percentage Error''). | ||
+ | ##Далее формируется набор архитектур-кандидатов посредством случайных изменений лучших архитектур после обучения | ||
+ | ##Для каждой архитектуры-кандидата определяется значение переданной на вход ''ITS acquisition function'' (''[[https://en.wikipedia.org/wiki/Thompson_sampling independent Thompson sampling]]'') | ||
+ | ##Для архитектуры-кандидата с минимальным значением ''acquisition function'' определяется значение целевой вероятностной функции | ||
− | ===Стратегия оценки эффективности (Performance Estimation Strategy)=== | + | ===Стратегия оценки эффективности (англ. ''Performance Estimation Strategy'')=== |
− | Целью NAS обычно является поиск архитектуры, обеспечивающей высокую точность прогнозов. Performance Estimation относится к процессу оценки этой производительности. Самый простой вариант | + | Целью NAS обычно является поиск архитектуры, обеспечивающей высокую точность прогнозов. ''Performance Estimation'' относится к процессу оценки этой производительности. Самый простой вариант — выполнить стандартное обучение и проверку архитектуры данных, но это, к сожалению, вычислительно дорого и ограничивает количество архитектур, которые можно изучить. Поэтому многие недавние исследования направлены на разработку методов, способных снизить стоимость этих оценок производительности. |
− | Способы снижения стоимости Performance Estimation и увеличения скорости: | + | Способы снижения стоимости ''Performance Estimation'' и увеличения скорости: |
− | *Сокращение качества оценки | + | *Сокращение качества оценки — более высокая скорость достигается сокращением датасета |
− | *Экстраполяция прямой обучения | + | *Экстраполяция прямой обучения — функция оценки может быть экстраполирована после всего нескольких обучающих итераций |
− | *Наследование / Сетевые морфизмы | + | *Наследование / Сетевые морфизмы — параметры модели не ищутся каждый раз, они наследуются по каким-либо правилам |
− | *Модели One-Shot / Распределение веса | + | *Модели ''One-Shot'' / Распределение веса — обучается только одна модель, далее ее веса/параметры используются остальными моделями |
Версия 06:40, 20 апреля 2020
Определение: |
Поиск архитектуры нейронной сети (англ. Neural Architecture Search, NAS) — процесс автоматизации проектирования архитектуры, то есть нахождение самой модели машинного обучения. Системе NAS предоставляется набор данных, тип задачи (классификация, регрессия и т.д.), на основании которого система определяет архитектуру нейронной сети. Эта архитектура будет работать лучше всех других архитектур для данной задачи при обучении предоставленным набором данных. |
NAS можно рассматривать как часть AutoML (Автоматическое машинное обучение), он имеет значительное совпадение с оптимизацией гиперпараметров (Настройка гиперпараметров). NAS находит архитектуру из всех возможных архитектур, следуя стратегии поиска, которая максимизирует производительность.
Содержание
Принцип работы
Методы для NAS классифицируются по трем измерениям: пространство поиска (англ. Search Space), стратегия поиска (англ. Search Strategy) и стратегия оценки эффективности (англ. Performance Estimation Strategy). Схематичный принцип работы NAS отображен на рисунке 1.
Пространство поиска (англ. Search Space)
Пространство поиска определяет, какую нейронную архитектуру в принципе может обнаружить подход NAS. Это может быть цепочечная архитектура (см. рисунок 2), в которой выход уровня multi-branch network).
подается как вход уровня . Или это может быть современная сложная архитектура с пропущенным соединением (англ.Предварительные знания о типичных свойствах архитектур способны уменьшить размер пространства поиска и упростить поиск. Тем не менее, они также могут помешать человеку найти новые архитектурные строительные блоки, которые выходят за рамки современных человеческих знаний.
Наиболее часто используемые типы архитектур для NAS — это entire structures (Источник 4.1.1 стр.6), cell-based structures (Источник 4.1.2 стр.6), progressive structures (Источник 4.1.3 стр.7) и morphism-based structures (Источник 4.1.4 стр.8).
Иногда используют внешнюю архитектуру ручной работы (макроархитектуру) с повторяющимися мотивами или ячейками. В таких случаях внешняя структура является фиксированной, NAS ищет только cell-архитектуры. Этот тип поиска известен как микро-поиск или cell search (см. рисунок 3).
Стратегия поиска (англ. Search Strategy)
Стратегия поиска подробно описывает, как исследовать пространство поиска, которое часто экспоненциально велико или даже неограниченно. Она включает в себя классический компромисс между разведкой и эксплуатацией, поскольку, с одной стороны, желательно найти быстро работающие архитектуры, с другой стороны, следует избегать преждевременного схождения.
Для изучения пространства нейронных архитектур можно использовать множество различных стратегий поиска, включая случайный поиск, байесовскую оптимизацию, эволюционные методы, обучение с подкреплением и методы на основе градиента.
Сравнение методов стратегий поиска
Лучшие результаты на сегодняшний день показывает NAS с использованием стратегии байесовской оптимизации (согласно исследованию Bayesian Optimization with Neural Architectures for Neural Architecture Search, Colin White, Willie Neiswanger, Yash Savani, рисунок 4).
Байесовская оптимизация (Bayes Optimization, BO) использует алгоритм для построения вероятностной модели целевой функции, а затем использует эту модель, чтобы выбрать наиболее перспективные гиперпараметры и оценивает выбранные гиперпараметры на истинной целевой функции. Следовательно, BO может итеративно обновлять вероятностную модель, ведя учет оценок прошлых результатов.
BANANAS (англ. Bayesian optimization with neural architectures for NAS)
Сложностью применения байесовской оптимизации в NAS является обязательное наличие функции расстояния между слоями нейросети. Чтобы обойти этот момент, был разработан алгоритм BANANAS (Bayesian optimization with neural architectures for NAS) — алгоритм, использующий специальную кодировку path encoding для кодирования входных архитектур и получающий на выходе вероятностные распределения (см. рисунок 5).
Алгоритм BANANAS:
- Выбираются случайных архитектур из пространства поиска (Search Space)
- Итерационно проводится обучение ансамбля мета-нейронный сетей на выбранных архитектурах. Каждая сеть ансамбля является сетью прямой связи с полностью связанными слоями, каждому слою дается случайная инициализация весов и случайный порядок обучающего набора. Используемая функция ошибки - вариация MAPE (англ. Mean Absolute Percentage Error).
- Далее формируется набор архитектур-кандидатов посредством случайных изменений лучших архитектур после обучения
- Для каждой архитектуры-кандидата определяется значение переданной на вход ITS acquisition function ([independent Thompson sampling])
- Для архитектуры-кандидата с минимальным значением acquisition function определяется значение целевой вероятностной функции
Стратегия оценки эффективности (англ. Performance Estimation Strategy)
Целью NAS обычно является поиск архитектуры, обеспечивающей высокую точность прогнозов. Performance Estimation относится к процессу оценки этой производительности. Самый простой вариант — выполнить стандартное обучение и проверку архитектуры данных, но это, к сожалению, вычислительно дорого и ограничивает количество архитектур, которые можно изучить. Поэтому многие недавние исследования направлены на разработку методов, способных снизить стоимость этих оценок производительности.
Способы снижения стоимости Performance Estimation и увеличения скорости:
- Сокращение качества оценки — более высокая скорость достигается сокращением датасета
- Экстраполяция прямой обучения — функция оценки может быть экстраполирована после всего нескольких обучающих итераций
- Наследование / Сетевые морфизмы — параметры модели не ищутся каждый раз, они наследуются по каким-либо правилам
- Модели One-Shot / Распределение веса — обучается только одна модель, далее ее веса/параметры используются остальными моделями
Источники информации
- AutoML: A Survey of the State-of-the-Art Xin He, Kaiyong Zhao, Xiaowen Chu
- Bayesian Optimization with Neural Architectures for Neural Architecture Search, Colin White, Willie Neiswanger, Yash Savani
- Medium Towards Data Science - Neural Architecture Search (NAS) - The Future Of Deep Learning
- Neural Architecture Search: A Survey