FBNet/FBNetV2/FBNetV3: Исследование облегченной сети Facebook в области NAS | Облегченная сеть

алгоритм
FBNet/FBNetV2/FBNetV3: Исследование облегченной сети Facebook в области NAS | Облегченная сеть

Серия FBNet представляет собой облегченную сетевую серию, полностью основанную на методе NAS. В ней анализируются недостатки текущих методов поиска и постепенно добавляются инновационные усовершенствования. FBNet сочетает в себе DNAS и ограничения ресурсов, FBNetV2 добавляет поиск по каналу и входному разрешению, а FBNetV3 использует прогнозирование точности. для быстрого поиска структуры сети


Источник: Заметки по разработке алгоритмов Xiaofei Public Account.

FBNet


Бумага: FBNet: аппаратно-ориентированное эффективное проектирование ConvNet с помощью поиска дифференцируемой нейронной архитектуры |CVPR 2019

Introduction

  Помимо сосредоточения внимания на точности, в последних разработках сверточных сетей также необходимо учитывать эксплуатационные характеристики, особенно на мобильных устройствах, что усложняет проектирование сверточных нейронных сетей, в основном из-за следующих трудностей:

  • Неразрешимое пространство проектирования, из-за большого количества параметров сверточной сети, пространство проектирования очень сложное.В настоящее время многие методы предлагают автоматический поиск, который может упростить процесс ручного проектирования, но этот метод обычно требует больших вычислительных мощностей.
  • Непередаваемая Оптимальность, производительность сверточной сети зависит от многих факторов, таких как входное разрешение и целевые устройства, для разных разрешений требуются разные сетевые параметры, и один и тот же блок в разных устройствах также может сильно отличаться, поэтому необходима специфическая настройка для сети при определенных условиях.
  • Несогласованные показатели эффективности, большинство показателей эффективности связаны не только со структурой сети, но и с аппаратными и программными настройками на целевом устройстве. Для упрощения многие исследования используют аппаратно-независимые метрики для представления эффективности свертки, такие как FLOP, но FLOP не всегда равны производительности, а также связаны с реализацией блоков, что усложняет проектирование сети.

  Чтобы решить вышеуказанные проблемы, в документе предлагается FBNet, который использует поиск дифференцируемой нейронной сети (DNAS) для обнаружения связанных с оборудованием облегченных сверточных сетей Процесс показан на рисунке 1. Метод DNAS представляет все пространство поиска в виде суперсети, преобразует задачу поиска оптимальной структуры сети в поиск оптимального распределения блоков-кандидатов, обучает распределение блоков с помощью градиентного спуска и может выбирать разные блоки для каждого слоя сети. Чтобы лучше оценить задержку в сети, фактическая задержка каждого блока-кандидата измеряется и записывается заранее, и оценка может быть непосредственно накоплена в соответствии со структурой сети и соответствующей задержкой.

Method

  DNAS формулирует задачу поиска сетевой структуры следующим образом:

  Заданное структурное пространствоA\mathcal{A}, чтобы найти оптимальную структуруaеAa\in \mathcal{A}, после тренировки с весамиwaw_aПосле этого можно минимизировать потериL(a,wa)\mathcal{L}(a, w_a), статья фокусируется на 3 факторах: пространстве поискаA\mathcal{A}, функция потерь с учетом фактической задержкиL(a,wa)\mathcal{L}(a, w_a)и эффективные алгоритмы поиска.

  • The Search Space

  Большинство предыдущих методов искали структуру единиц, а затем объединяли ее в полную сеть, но на самом деле одна и та же структура единиц в разных слоях очень по-разному влияет на точность и задержку сети. С этой целью в работе построено послойное пространство поиска с фиксированной макроархитектурой.Каждый слой может выбирать блоки различной структуры.Общая структура сети показана в таблице 1.Структуры первых и последних трех слоев фиксированы. , структуру остальных слоев нужно поискать. Из-за большого разрешения функций предыдущих слоев искусственно устанавливается небольшое количество ядер, чтобы обеспечить легкость сети.

  Послойное пространство поиска показано на рис. 3 и основано на классической структуре MobileNetV2 и ShuffleNet с установкой различных размеров ядра свертки.KK(3 или 5), скорость расширенияeeи количество групп для построения различных блоков-кандидатов. Если входное и выходное разрешения блока совпадают, добавляются поэлементные ярлыки, а если используется групповая свертка, выход свертки необходимо перетасовать по каналам.

  Эксперименты в статье содержат 9 блоков-кандидатов, и гиперпараметры каждого блока показаны в таблице 2. Кроме того, существует структура пропуска, которая напрямую сопоставляет вход с выходом, что используется для сокращения глубины всей сети. В целом, вся сеть содержит 22 слоя для поиска, каждый слой выбирается из 9 блоков-кандидатов, всего9229^{22}возможная структура.

  • Latency-Aware Loss Function

  Функция потерь в уравнении 1 должна отражать не только точность, но и задержку на целевом оборудовании. Поэтому определим следующую функцию потерь:

CE(a,wa)CE(a, w_a)представляет собой кросс-энтропийную потерю,LAT(a)LAT(a)представляет задержку текущей структуры на целевом оборудовании,α\alphaконтролирует величину общей функции потерь,β\betaОтрегулируйте величину срока задержки. Вычисление задержки может занять много времени.В документе используется таблица поиска задержки блока для оценки всей сети:

bl(a)b^{(a)}_lдля структурыaaсерединаllLayer Blocks, этот метод оценки предполагает, что вычисления между блоками независимы друг от друга, и эффективен для последовательных вычислительных устройств, таких как CPU и DSP.Этот метод может быстро оценить102110^{21}фактическая задержка сети.

  • The Search Algorithm

  В документе пространство поиска представлено в виде случайной суперсети, а суперсеть представляет собой общую структуру таблицы 1, и каждый слой содержит 9 параллельных блоков таблицы 2. Во время вывода вероятность выполнения блока-кандидата равна:

θl\theta_lсодержит решенияllПараметры вероятности выборки каждого блока-кандидата слоя,llВыход слоя может быть выражен как:

ml,im_{l,i}да{0,1}\{0, 1\}Случайные переменные назначаются случайным образом в соответствии с вероятностью выборки, а выходные данные слоя представляют собой сумму выходных данных всех блоков. Таким образом, структура сетиaaВероятность выборки может быть выражена как:

θ\thetaсодержит все блокиθl,i\theta_{l,i}, основываясь на приведенном выше определении, задача дискретной оптимизации уравнения 1 может быть преобразована в:

  Таким образом, весwaw_aиндуктивный, ноθ\thetaвсе еще невыводима, потому чтоml,im_{l,i}Определение дискретно, для чего будемml,im_{l,i}Метод генерации преобразуется в Gumbel Softmax:

gl,iGumbel(0,1)g_{l,i} \sim Gumbel(0,1)- случайный шум распределения Гамбеля,т\tauявляется температурным параметром. когдат\tauблизко к 0,ml,im_{l,i}Подобно одноразовому, когдат\tauбольше,ml,im_{l,i}Подобно непрерывной случайной величине. Таким образом, кросс-энтропийные потери уравнения 2 могут бытьwaw_aиθ\thetaвывод, а член задержкиLATLATЕго также можно переписать как:

  Благодаря использованию формы поиска,LAT(bl,i)LAT(b_{l,i})является постоянным фактором, сетьaaПара общих задержекml,im_{l,i}иθl,i\theta_{l,i}Также индукционный. Пока что функция потерь имеетwaw_aи структурные переменныеθ\thetaОба являются дифференцируемыми, и SGD можно использовать для эффективной оптимизации функции потерь.
Процесс поиска эквивалентен процессу обучения случайной суперсети.L/wa\partial\mathcal{L}/\partial w_aОбновите веса каждого блока суперсети. После обучения блоков каждый блок по-разному влияет на точность и задержку.L/θ\partial\mathcal{L}/\partial \thetaобновить вероятность выборки каждого блокаPθP_{\theta}. После того, как суперсеть обучена, она распределяется путем выборки сети.PθP_{\theta}Получите оптимальную структуру сети.

Experiments

  Сравнение производительности ImageNet с каждой облегченной сетью.

  Сравнение производительности при определенных условиях ресурсов и устройств.

Conclustion

В этой статье предлагается метод поиска дифференцируемой нейронной сети, который преобразует выбор дискретной структуры ячеек в распределение вероятностей непрерывной структуры ячеек. Кроме того, в процесс оптимизации добавляется задержка целевого устройства. В сочетании с распределением веса надсети это может Быстрое создание высокопроизводительных облегченных сетей в определенных условиях от начала до конца. Тем не менее, блочная структура документа основана на текущем основном дизайне MobileNetV2 и ShuffleNet, и это больше касается поиска его структурных параметров, поэтому существуют определенные ограничения на структуру сети.

FBNetV2


Бумага: FBNetV2: поиск дифференцируемой нейронной архитектуры для пространственных и канальных измерений |CVPR 2020

Introduction

DNAS выбирает оптимальную подсеть, обучая суперсеть, содержащую все сети-кандидаты.Хотя скорость поиска высока, для этого требуется много памяти, поэтому пространство поиска обычно меньше, чем у других методов, а потребление памяти и вычислительных ресурсов зависит от поиска. размер.Линейное увеличение.

  Чтобы решить эту проблему, в документе предлагается DMaskingNAS, который добавляет количество каналов и входное разрешение в суперсеть в виде маски и выборки соответственно, что значительно увеличивает объем памяти и вычислений.101410^{14}раз больше пространства поиска.

Channel Search

  DNAS обычно создает блоки-кандидаты в суперсети и выбирает блоки-кандидаты в процессе обучения Добавление измерения канала непосредственно в пространство поиска увеличит объем памяти и вычислений.

  Обычный метод реализации, такой как шаг A, создает экземпляры сверток разных размеров.Чтобы объединить выходные данные сверток разных размеров, заполнение нулями шага B выполняется для объектов с меньшими размерами. Шаг B можно преобразовать в функции того же размера, что и шаг C, 3 вывода свертки, а затем замаскировать вывод 3 разными масками (синий — 0, белый — 1). Поскольку размер трех сверток шага C такой же, как и входные данные, его можно реализовать с помощью общей свертки весов, то есть шага D. Маски шага D сначала объединяются, а затем умножаются на результат свертки, что экономит вычисления и память, и, наконец, получается шаг E, для которого требуется только 1 свертка и 1 карта признаков.

Input Resolution Search

  Подобно каналу, добавляющему пространство поиска, входное разрешение, реализация DNAS заключается в создании экземпляров всех слоев для каждого различного входного разрешения, что удваивает объем вычислений и памяти, и есть некоторые неизбежные проблемы:

  • Выходы функций не могут быть объединены. Блоки с разным входным разрешением имеют разные выходные размеры, как показано на рисунке A, и не могут быть объединены напрямую. Как правило, заполнение нулями, как показано на рисунке B, может использоваться для решения проблемы согласованного размера, но это вызовет проблему смещения пикселей.Поэтому метод выборки с перемежающимся заполнением нулями (ближайший сосед + заполнение нулями) на рисунке C используется, чтобы избежать смещения пикселей и смещения пикселей.
  • Выборочные карты признаков приводят к уменьшению рецептивного поля. Как показано на рисунке D, предположим, что F равно3×33\times 3Свертка, выборочная карта объектов приводит к одной свертке, которая охватывает только2×22\times 2Следовательно, выборочную карту объектов необходимо сжать перед операцией свертки, а затем расширить и восстановить после операции свертки, как показано на рисунке E. На самом деле рисунок E можно реализовать с помощью жесткой свертки, которая позволяет избежать использования дополнительной памяти и модификации ядра свертки.

  В статье не описывается настройка входного разрешения и процесс поиска в экспериментальной части, а только показаны экспериментальные результаты.Автор только открывает исходный код искомой сети, а не код поиска. Здесь предполагается, что одну и ту же суперсеть следует использовать для извлечения признаков входных данных разного разрешения при поиске, а затем объединять окончательный вывод для обучения и, наконец, брать разрешение с наибольшим весом, как показано на рисунке 2.FFЭто общая суперсеть, если у вас есть друзья, которые ее знают, дайте мне знать.

Experiments

  Общая структура сети, установленная во время поиска, и каждый блок-кандидат, включая103510^{35}Сеть кандидатов.

  Поиск нескольких сетей FBNetV2, каждая из которых соответствует различным требованиям к ресурсам.

  Сравнение производительности с другими сетями.

Conclustion

  Как упоминалось ранее, блочная структура FBNet основана на текущем основном дизайне MobileNetV2 и ShuffleNet, и это больше для поиска его структурных параметров, поэтому существуют определенные ограничения на структуру сети. FBNetV2 скоро появится101410^{14}Эффект лучше, чем у большинства современных сетей во всех аспектах, но в целом статья больше похожа на количественный метод, поскольку в основе по-прежнему закреплена структурная схема существующей сети.

FBNetV3


Бумага: FBNetV3: Совместный поиск архитектуры и рецепта с использованием функции нейронного сбора

Introduction

FBNetV3 в настоящее время размещен только в arxiv.В документе считается, что большинство текущих методов NAS удовлетворяют только поиску структуры сети и не заботятся о том, правильно ли установлены параметры обучения во время проверки производительности сети, что может привести к снижению в модельном исполнении. С этой целью в документе предлагается JointNAS, который ищет наиболее точные параметры обучения и структуру сети в условиях ограниченных ресурсов.

JointNAS

  Цель оптимизации JointNAS можно сформулировать следующим образом:

AA,hhиΩ\OmegaПредставляют встраивание сетевой структуры, встраивание параметров обучения и пространство поиска, соответственно,accaccРассчитать точность при текущей структуре и параметрах обучения,gig_iиγ\gammaрасчет потребления ресурсов и количество ресурсов соответственно.

  Процесс поиска JointNAS показан на Алгоритме 1, который делит поиск на два этапа:

  • Этап грубой детализации, который итеративно находит высокопроизводительные пары структура-гиперпараметр-кандидат сети и предикторы точности обучения.
  • На мелкозернистых этапах используется предсказатель точности, обученный на крупнозернистом этапе, для выполнения быстрого поиска эволюционного алгоритма в сети-кандидате, который интегрирует оптимизатор гиперпараметров AutoTrain, предложенный в статье.

Coarse-grained search: Constrained iterative optimization

Грубый поиск генерирует предикторы точности и набор высокопроизводительных сетей кандидатов.

  • Neural Acquisition Function

  Структура предиктора показана на рисунке 4, включая кодировщик структуры и две головки, которые являются вспомогательной прокси-головкой и головкой точности. Прокси-головка прогнозирует свойства сети (FLOPs или количество параметров и т. д.), которые в основном используются при предварительном обучении кодировщика Головка точности прогнозирует уровень точности в соответствии с параметрами обучения и структурой сети. предварительно обученный прокси-головой, используется в итеративном процессе оптимизации.

  • Step 1. Pre-train embedding layer

Предсказатель включает в себя процесс предварительного обучения. Во-первых, модель обучается принимать структуру сети в качестве входных данных для прогнозирования свойств сети (FLOP или количества параметров и т. Д.). Такие обучающие данные легко получить, и большой случайным образом генерируются несколько сетей и рассчитываются их свойства, затем энкодер делится с головкой точности, после чего официально запускается последующий поиск сети. Предварительное обучение кодировщика может значительно повысить точность и стабильность предиктора, как показано на рисунке 5.

  • Step 2. Constrained iterative optimization

  Сначала используйте квази-Монте-Карло для выборки пар структура-гиперпараметр сети из пространства поиска, затем итеративно обучите предиктор:

  1. Выберите пакет подходящих пар структура-гиперпараметр сети на основе результатов предиктора.

  1. Точность обучения и тестирования пар структура-гиперпараметр сети, обучение со стратегией ранней остановки. Возьмите окончательную степень точности сети в первой итерации и степень точности каждой эпохи и нарисуйте кривую корреляции между рейтингом сети и окончательным рейтингом каждой эпохи, как показано на рисунке 3, и возьмите цикл с корреляцией 0,92 в качестве тренировочного цикла.
  2. При обновлении предиктора первые 50 эпох предиктора фиксируют параметры энкодера, а последующие меры обучения используются с постепенным уменьшением скорости обучения. Головка прогнозирования точности использует для обучения потери Хубера, которые могут противостоять воздействию аномальных точек на обучение модели.

Этот итеративный процесс может уменьшить количество кандидатов, чтобы избежать ненужной проверки и повысить эффективность разведки.

Fine-grained search: Predictor-based evolutionary search

  На втором этапе используется адаптивный генетический алгоритм для выбора оптимальной пары параметров структуры сети и обучения на первом этапе в качестве популяции первого поколения. На каждой итерации популяция изменяется для создания новой подгруппы, удовлетворяющей ограничениям, предиктор, обученный на крупнозернистой стадии, используется для быстрого прогнозирования индивидуального балла, и выбирается оптимальный.KKПара параметров сетевой структуры и обучения используется в качестве совокупности следующего поколения. Вычислить наибольший прирост очков текущей итерации по сравнению с предыдущей итерацией и выйти, когда прироста недостаточно для получения окончательной высокоточной структуры сети и соответствующих параметров обучения.
Следует отметить, что при изменении ограничений ресурсов предиктор по-прежнему можно использовать повторно, а подходящую структуру сети и параметры обучения можно быстро найти, используя этапы детализации.

Search space

  Пространство поиска показано в таблице 1, включая101710^{17}сетевая структура и10710^{7}обучающие гиперпараметры.

Experiments

  Исправлена ​​структура сети для проверки эффективности поиска параметров обучения.

  Сравнение производительности ImageNet с другими сетями.

Conclustion

FBNetV3 полностью отделен от дизайна FBNetV2 и FBNet.Используемый предсказатель точности и генетический алгоритм использовались во многих приложениях в области NAS.Главной изюминкой является то, что в процесс поиска добавляются параметры обучения, что очень важно для улучшение производительности.

Conclustion


Серия FBNet представляет собой облегченную сетевую серию, полностью основанную на методе NAS. В ней анализируются недостатки текущих методов поиска и постепенно добавляются инновационные усовершенствования. FBNet сочетает в себе DNAS и ограничения ресурсов, FBNetV2 добавляет поиск по каналу и входному разрешению, а FBNetV3 использует прогнозирование точности. для быстрого поиска структуры сети, с нетерпением жду полного кода с открытым исходным кодом.



Если эта статья была вам полезна, ставьте лайк или смотрите~

Для получения дополнительной информации, пожалуйста, обратите внимание на общедоступную учетную запись WeChat [Примечания по разработке алгоритмов Xiaofei].

work-life balance.