Поиск нейронной архитектуры ( NAS ) [1] [2] — это метод автоматизации проектирования искусственных нейронных сетей (ИНС), широко используемой модели в области машинного обучения . NAS использовался для проектирования сетей, которые не уступают или превосходят архитектуры, разработанные вручную. [3] [4] Методы для NAS можно классифицировать в соответствии с используемым пространством поиска, стратегией поиска и стратегией оценки производительности: [1]
NAS тесно связана с оптимизацией гиперпараметров [5] и метаобучением [6] и является подразделом автоматизированного машинного обучения (AutoML). [7]
Обучение с подкреплением (RL) может лежать в основе стратегии поиска NAS. Баррет Зоф и Куок Вьет Ле [3] применили NAS с RL, нацелившись на набор данных CIFAR-10 , и добились сетевой архитектуры, которая соперничает с лучшей архитектурой, разработанной вручную, по точности, с частотой ошибок 3,65, что на 0,09 процента лучше и в 1,05 раза быстрее, чем связанная модель, разработанная вручную. На наборе данных Penn Treebank эта модель составила рекуррентную ячейку, которая превосходит LSTM , достигнув уровня сложности тестового набора 62,4 или на 3,6 уровня сложности лучше, чем предыдущая ведущая система. В задаче моделирования языка символов PTB она достигла бит на символ 1,214. [3]
Изучение архитектуры модели непосредственно на большом наборе данных может быть длительным процессом. NASNet [4] [8] решила эту проблему, перенеся строительный блок, разработанный для небольшого набора данных, в более крупный набор данных. Проект был ограничен использованием двух типов сверточных ячеек для возврата карт признаков, которые выполняют две основные функции при свертке входной карты признаков: обычные ячейки , которые возвращают карты одинаковой протяженности (высоты и ширины), и ячейки сокращения , в которых возвращаемая высота и ширина карты признаков уменьшаются в два раза. Для ячейки сокращения начальная операция, применяемая к входам ячейки, использует шаг два (для уменьшения высоты и ширины). [4] Изученный аспект проекта включал такие элементы, как какой(ие) нижний(ие) слой(и) каждый верхний слой принимал в качестве входных данных, преобразования, применяемые на этом слое, и объединение нескольких выходов на каждом слое. В изученном примере лучший сверточный слой (или «ячейка») был разработан для набора данных CIFAR-10, а затем применен к набору данных ImageNet путем укладки копий этой ячейки, каждая со своими собственными параметрами. Подход дал точность 82,7% топ-1 и 96,2% топ-5. Это превзошло лучшие архитектуры, изобретенные человеком, при стоимости на 9 миллиардов FLOPS меньше — снижение на 28%. Система продолжала превосходить альтернативу, разработанную вручную, на разных уровнях вычислений. Характеристики изображения, полученные при классификации изображений, могут быть перенесены на другие задачи компьютерного зрения. Например, для обнаружения объектов обученные ячейки, интегрированные с фреймворком Faster-RCNN, улучшили производительность на 4,0% на наборе данных COCO . [4]
В так называемом эффективном поиске нейронной архитектуры (ENAS) контроллер обнаруживает архитектуры, обучаясь поиску оптимального подграфа в большом графе. Контроллер обучается с помощью градиента политики для выбора подграфа, который максимизирует ожидаемое вознаграждение набора проверки. Модель, соответствующая подграфу, обучается для минимизации канонической перекрестной потери энтропии . Несколько дочерних моделей разделяют параметры, ENAS требует меньше часов GPU, чем другие подходы, и в 1000 раз меньше, чем «стандартный» NAS. На CIFAR-10 дизайн ENAS достиг тестовой ошибки 2,89%, что сопоставимо с NASNet. На Penn Treebank дизайн ENAS достиг тестовой перплексии 55,8. [9]
Альтернативный подход к NAS основан на эволюционных алгоритмах , которые использовались несколькими группами. [10] [11] [12] [13] [14] [15] [16] Эволюционный алгоритм для поиска нейронной архитектуры обычно выполняет следующую процедуру. [17] Сначала инициализируется пул, состоящий из различных архитектур-кандидатов вместе с их оценками валидации (приспособленностью). На каждом этапе архитектуры в пуле кандидатов мутируют (например, свертка 3x3 вместо свертки 5x5). Затем новые архитектуры обучаются с нуля в течение нескольких эпох и получаются их оценки валидации. Затем следует замена архитектур с самыми низкими оценками в пуле кандидатов на лучшие, более новые архитектуры. Эта процедура повторяется несколько раз, и, таким образом, пул кандидатов со временем совершенствуется. Мутации в контексте развивающихся ИНС — это такие операции, как добавление или удаление слоя, которые включают изменение типа слоя (например, от свертки к объединению), изменение гиперпараметров слоя или изменение гиперпараметров обучения. На CIFAR-10 и ImageNet эволюция и RL показали сопоставимые результаты, в то время как оба немного превзошли случайный поиск . [13] [12]
Байесовская оптимизация (BO), которая доказала свою эффективность в качестве метода оптимизации гиперпараметров, также может применяться к NAS. В этом контексте целевая функция сопоставляет архитектуру с ее ошибкой проверки после обучения в течение ряда эпох. На каждой итерации BO использует суррогат для моделирования этой целевой функции на основе ранее полученных архитектур и их ошибок проверки. Затем выбирается следующая архитектура для оценки путем максимизации функции приобретения, такой как ожидаемое улучшение, что обеспечивает баланс между исследованием и эксплуатацией. Максимизация функции приобретения и оценка целевой функции часто являются вычислительно затратными для NAS и делают применение BO сложным в этом контексте. Недавно BANANAS [18] достиг многообещающих результатов в этом направлении, представив высокопроизводительную реализацию BO, связанную с нейронным предиктором.
Другая группа использовала процедуру восхождения на холм , которая применяет сетевые морфизмы, за которыми следовали короткие прогоны оптимизации косинусного отжига. Подход дал конкурентоспособные результаты, требуя ресурсов того же порядка, что и обучение одной сети. Например, на CIFAR-10 метод спроектировал и обучил сеть с частотой ошибок ниже 5% за 12 часов на одном GPU. [19]
В то время как большинство подходов сосредоточены исключительно на поиске архитектуры с максимальной предсказательной производительностью, для большинства практических приложений важны и другие цели, такие как потребление памяти, размер модели или время вывода (т. е. время, необходимое для получения прогноза). Из-за этого исследователи создали многоцелевой поиск. [16] [20]
LEMONADE [16] — это эволюционный алгоритм, который принял ламаркизм для эффективной оптимизации нескольких целей. В каждом поколении создаются дочерние сети для улучшения границы Парето относительно текущей популяции ИНС.
Neural Architect [20] заявлен как ресурсозависимая многоцелевая RL-основанная NAS с сетевым встраиванием и прогнозированием производительности. Сетевое встраивание кодирует существующую сеть в обучаемый вектор встраивания. На основе встраивания сеть контроллера генерирует преобразования целевой сети. Многоцелевая функция вознаграждения учитывает точность сети, вычислительные ресурсы и время обучения. Вознаграждение предсказывается несколькими сетями моделирования производительности, которые предварительно обучены или совместно обучены с сетью контроллера. Сеть контроллера обучается с помощью градиента политики. После модификации полученная сеть-кандидат оценивается как сетью точности, так и сетью времени обучения. Результаты объединяются механизмом вознаграждения, который передает свои выходные данные обратно в сеть контроллера.
RL или NAS на основе эволюции требуют тысяч GPU-дней поиска/обучения для достижения современных результатов компьютерного зрения, как описано в статьях NASNet, mNASNet и MobileNetV3. [4] [21] [22]
Для снижения вычислительных затрат многие недавние методы NAS полагаются на идею распределения веса. [23] [24] В этом подходе определяется одна сверхпараметризованная суперсеть (также известная как модель одноразового использования). Суперсеть — это очень большой направленный ациклический граф (DAG), подграфы которого являются различными кандидатами нейронных сетей. Таким образом, в суперсети веса распределяются между большим количеством различных подархитектур, имеющих общие ребра, каждое из которых рассматривается как путь внутри суперсети. Основная идея заключается в обучении одной суперсети, которая охватывает множество вариантов для окончательного дизайна, а не в генерации и обучении тысяч сетей независимо. В дополнение к изученным параметрам изучается набор параметров архитектуры, чтобы отобразить предпочтение одного модуля над другим. Такие методы сокращают требуемые вычислительные ресурсы до всего лишь нескольких дней GPU.
Более поздние работы дополнительно объединяют эту парадигму распределения веса с непрерывным расслаблением пространства поиска, [25] [26] [27] [28], что позволяет использовать методы оптимизации на основе градиента. Эти подходы обычно называют дифференцируемыми NAS, и они оказались очень эффективными при исследовании пространства поиска нейронных архитектур. Одним из самых популярных алгоритмов среди градиентных методов для NAS является DARTS. [27] Однако DARTS сталкивается с такими проблемами, как падение производительности из-за неизбежной агрегации пропусков соединений и плохого обобщения, которые были решены многими будущими алгоритмами. [29] [30] [31] [32] Такие методы, как [30] [31], направлены на укрепление DARTS и сглаживание ландшафта точности проверки путем введения регуляризации на основе нормы Гессе и случайного сглаживания/состязательной атаки соответственно. Причина ухудшения производительности позже анализируется с точки зрения выбора архитектуры. [33]
Дифференцируемый NAS показал, что дает конкурентоспособные результаты, используя лишь часть времени поиска, требуемого методами поиска на основе RL. Например, FBNet (сокращение от Facebook Berkeley Network) продемонстрировал, что поиск на основе суперсети создает сети, которые превосходят кривую компромисса скорости и точности mNASNet и MobileNetV2 на наборе данных классификации изображений ImageNet. FBNet достигает этого, используя в 400 раз меньше времени поиска, чем было использовано для mNASNet. [34] [35] [36] Кроме того, SqueezeNAS продемонстрировал, что NAS на основе суперсети создает нейронные сети, которые превосходят кривую компромисса скорости и точности MobileNetV3 на наборе данных семантической сегментации Cityscapes, а SqueezeNAS использует в 100 раз меньше времени поиска, чем было использовано в поиске на основе RL авторов MobileNetV3. [37] [38]
Поиск нейронной архитектуры часто требует больших вычислительных ресурсов из-за его дорогостоящих фаз обучения и оценки. Это дополнительно приводит к большому углеродному следу, необходимому для оценки этих методов. Чтобы преодолеть это ограничение, были введены бенчмарки NAS [39] [40] [41] [42] , с помощью которых можно либо запросить, либо предсказать окончательную производительность нейронных архитектур за считанные секунды. Бенчмарк NAS определяется как набор данных с фиксированным разделением обучения и тестирования, пространством поиска и фиксированным конвейером обучения (гиперпараметрами). Существует в основном два типа бенчмарков NAS: суррогатный бенчмарк NAS и табличный бенчмарк NAS. Суррогатный бенчмарк использует суррогатную модель (например, нейронную сеть) для прогнозирования производительности архитектуры из пространства поиска. С другой стороны, табличный бенчмарк запрашивает фактическую производительность архитектуры, обученной до конвергенции. Оба эти бенчмарка поддерживают запросы и могут использоваться для эффективного моделирования многих алгоритмов NAS, используя только ЦП для запроса бенчмарка вместо обучения архитектуры с нуля.
Обзорные статьи.