30
правок
Изменения
Нет описания правки
== Принцип работы ==
[[Файл:NAS 1.PNG|900px|thumb|center|Рисунок 1 - Абстрактная иллюстрация методов NAS. Стратегия поиска
выбирает архитектуру A из предопределенного пространства поиска A. Архитектура
передается в стратегию оценки производительности, которая возвращает оценку эффективности A в стратегию поиска. ([https://arxiv.org/pdf/1808.05377.pdf Источник])]]
=== Пространство поиска (Search Space) ===
[[Файл:Chain-like-NAS.png|thumb|right|A chain-like and multi-branch network; каждый узел соответствует уровню в нейронной сети. Различные типы слоев визуализируются разными цветами. Ребро от слоя Li до слоя Lj обозначает, что Lj получает выходные данные Li в качестве входных данных.]]Пространство поиска определяет, какую нейронную архитектуру в принципе может обнаружить подход NAS. Это может быть цепочечная архитектура, в которой выход уровня (n-1) подается как вход уровня (n). [[Файл:Cell-like-NAS.png|left|thumb|слева: сell architecture, две разные ячейки, например normal cell (вверху) и reduction cell (внизу); справа: ячейки помещены во внешнюю структуру ручной работы]] Или это может быть современная сложная архитектура с пропущенным соединением (multi-branch network). Предварительные знания о типичных свойствах архитектур способны уменьшить размер пространства поиска и упростить поиск. Тем не менее, они также могут помешать человеку найти новые архитектурные строительные блоки, которые выходят за рамки современных человеческих знаний.
Наиболее часто используемые типы архитектур для NAS - это entire structures, cell-based structures,
progressive structures and morphism-based structures.
Иногда используют внешнюю архитектуру ручной работы (макроархитектуру) с повторяющимися мотивами или ячейками. В таких случаях внешняя структура является фиксированной, NAS ищет только cell-архитектуры. Этот тип поиска известен как микро-поиск или cell search.
Для изучения пространства нейронных архитектур можно использовать множество различных стратегий поиска, включая '''случайный поиск''', '''байесовскую оптимизацию''', '''эволюционные методы''', '''[[обучение с подкреплением]] (reinforcement learning)''' и '''методы на основе градиента'''.
==== Сравнение методов стратегий поиска ====[[Файл:NAS-method-comparison.PNG|800px|thumb|center|слева: результат экспериментов, минимизирующих функцию потерь и количества параметров модели; справа: сравнение основных используемых в NAS алгоритмов]]Лучшие результаты на сегодняшний день показывает NAS с использованием стратегии байесовской оптимизации (согласно исследованию [https://arxiv.org/pdf/1910.11858.pdf Bayesian Optimization with Neural Architectures for Neural Architecture Search, Colin White, Willie Neiswanger, Yash Savani]). Байесовская оптимизация (Bayes Optimization, BO) использует алгоритм для построения вероятностной модели целевой функции, а затем использует эту модель, чтобы выбрать наиболее перспективные гиперпараметры и оценивает выбранные гиперпараметры на истинной целевой функции. Следовательно, BO может итеративно обновлять вероятностную модель, ведя учет оценок прошлых результатов. ==== BANANAS (Bayesian optimization with neural architectures for NAS) ====
[[Файл:BANANAS alg.PNG|400px|thumb|right|Иллюстрация мета-нейронной сети в алгоритме BANANAS]]
Сложностью применения байесовской оптимизации в NAS является обязательное наличии функции расстояния между слоями нейросети. Чтобы обойти этот момент, был разработан алгоритм [https://github.com/naszilla/bananas BANANAS (Bayesian optimization with neural architectures for NAS)] - алгоритм, использующий специальную кодировку path encoding для кодирования входных архитектур и получающий на выходе вероятностные распределения (см. рисунок).
===Стратегия оценки эффективности (Performance Estimation Strategy)===
Целью NAS обычно является поиск
способных снизить стоимость этих оценок производительности.
== Источники информации ==