Поиск архитектуры нейронной сети — различия между версиями
Lindvv (обсуждение | вклад) (Исправлены опечатки, поправлена ссылка MAPE.) |
Lindvv (обсуждение | вклад) (Исправлены опечатки, поправлена ссылка MAPE.) |
(нет различий)
|
Текущая версия на 12:14, 8 ноября 2020
Определение: |
Поиск архитектуры нейронной сети (англ. Neural Architecture Search, NAS) — это процесс автоматизации проектирования архитектуры нейронной сети. Другими словами, это процесс поиска лучшей структуры модели машинного обучения. Система NAS получает на вход набор данных и тип задачи (классификация, регрессия и т.д.), и на выходе дает архитектуру модели. Полученная архитектура будет работать лучше остальных архитектур для данного типа задачи при обучении на предоставленном наборе данных. |
NAS можно рассматривать как часть автоматического машинного обучения (англ. AutoML). NAS существенно пересекается с оптимизацией гиперпараметров. Чтобы из всех возможных архитектур найти нужную, NAS следует стратегии поиска, которая максимизирует производительность.
Принцип работы[править]
Методы для NAS классифицируются по трем категориям: пространство поиска (англ. Search Space), стратегия поиска (англ. Search Strategy) и стратегия оценки эффективности (англ. Performance Estimation Strategy). Схематичный принцип работы NAS отображен на рисунке 1.
Пространство поиска (англ. Search Space)[править]
Пространство поиска определяет, какую нейронную архитектуру в принципе может обнаружить система NAS. Это может быть цепочечная архитектура (рисунок 2, слева), в которой выход уровня [1] (рисунок 2, справа).
подается как вход уровня . Или это может быть сложная ветвистая архитектура с пропусками соединенийВ некоторых случаях используют спроектированный вручную каркас архитектуры (макроархитектуру), состоящий из повторяющихся ячеек (англ. motifs/blocks/cells). В таких случаях каркас является фиксированным, а задача NAS заключается в поиске архитектуры самих ячеек. Такой тип поиска известен как микро-поиск (англ. cell-search) (рисунок 3).
Предварительные знания о типичных свойствах архитектур могут уменьшить размер пространства поиска и упростить поиск. Тем не менее, они также могут помешать человеку найти новые архитектурные ячейки, которые выходят за рамки современных человеческих знаний.
Наиболее часто используемые типы архитектур для NAS[2]:
- полные архитектуры (англ.entire structures)
- прогрессивные архитектуры (англ. progressive structures)
- архитектуры, основанные на ячейках (англ. cell-based structures)
- архитектуры, основанные на морфизме (англ. morphism-based structures)
Стратегия поиска (англ. Search Strategy)[править]
Стратегия поиска подробно описывает, как исследовать пространство поиска, которое часто экспоненциально велико или даже неограниченно. Она включает в себя классический компромисс между разведкой и эксплуатацией, поскольку, с одной стороны, желательно найти быстро работающие архитектуры, с другой стороны, следует избегать преждевременного схождения.
Для изучения пространства нейронных архитектур можно использовать множество различных стратегий поиска, включая случайный поиск, байесовскую оптимизацию, эволюционные методы, обучение с подкреплением и методы на основе градиента.
Сравнение методов стратегий поиска[править]
Лучшие результаты на сегодняшний день показывает NAS с использованием стратегии байесовской оптимизации[3] (рисунок 4).

Байесовская оптимизация (англ. Bayes Optimization, BO) использует алгоритм для построения вероятностной модели целевой функции, а затем использует эту модель, чтобы выбрать наиболее перспективные гиперпараметры и оценивает выбранные гиперпараметры на истинной целевой функции. Таким образом, байесовская оптимизация может итеративно обновлять вероятностную модель, ведя учет оценок прошлых результатов.
BANANAS (англ. Bayesian optimization with neural architectures for NAS)[править]

Сложностью применения байесовской оптимизации в NAS является обязательное наличие функции расстояния между различными архитектурами нейросети. Чтобы обойти этот момент, был разработан BANANAS — алгоритм, использующий специальную кодировку (англ. path encoding) для кодирования входных архитектур и получающий на выходе вероятностные распределения (рисунок 5).
Алгоритм BANANAS:
- Выбираются случайных архитектур из пространства поиска.
- Итерационно проводится обучение ансамбля мета-нейронных сетей на выбранных архитектурах. Каждая сеть ансамбля является сетью прямой связи с полностью связанными слоями, каждому слою дается случайная инициализация весов и случайный порядок обучающего набора. Используемая функция ошибки — вариация MAPE (англ. Mean Absolute Percentage Error).
- Далее формируется набор архитектур-кандидатов посредством случайных изменений лучших архитектур после обучения.
- Для каждой архитектуры-кандидата определяется значение переданной на вход функции сбора независимой выборки Томпсона (англ. ITS acquisition function).
- Для архитектуры-кандидата с минимальным значением функции сбора определяется значение целевой вероятностной функции.
Стратегия оценки эффективности (англ. Performance Estimation Strategy)[править]
Целью NAS обычно является поиск архитектуры, обеспечивающей высокую точность прогнозов. Определением этой точности занимается процесс оценки эффективности. Самый простой вариант — выполнить стандартное обучение и проверку архитектуры данных, но это, к сожалению, вычислительно дорого и ограничивает количество архитектур, которые можно изучить. Поэтому многие недавние исследования направлены на разработку методов, способных снизить стоимость оценки эффективности и увеличить скорость. Уже разработанные методы:
- Сокращение качества оценки — более высокая скорость достигается сокращением набора данных.
- Экстраполяция прямой обучения — функция оценки может быть экстраполирована после всего нескольких обучающих итераций.
- Наследование / Сетевые морфизмы — параметры модели не ищутся каждый раз, они наследуются по каким-либо правилам.
- Модели One-Shot / Распределение веса — обучается только одна модель, далее ее веса/параметры используются остальными моделями.
См. также[править]
- Автоматическое машинное обучение
- Настройка гиперпараметров
- Обучение с подкреплением
- Модель алгоритма и её выбор
- Эволюционные алгоритмы
Примечания[править]
- ↑ англ. Multi-branch neural networks with branch control, пример: multi-branch network
- ↑ Источник: "AutoML: A Survey of the State-of-the-Art", стр.2
- ↑ Cоответствующее исследование.
Источники информации[править]
- 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