Серия FBNet представляет собой облегченную сетевую серию, полностью основанную на методе NAS. В ней анализируются недостатки текущих методов поиска и постепенно добавляются инновационные усовершенствования. FBNet сочетает в себе DNAS и ограничения ресурсов, FBNetV2 добавляет поиск по каналу и входному разрешению, а FBNetV3 использует прогнозирование точности. для быстрого поиска структуры сети
Источник: Заметки по разработке алгоритмов Xiaofei Public Account.
FBNet
Бумага: FBNet: аппаратно-ориентированное эффективное проектирование ConvNet с помощью поиска дифференцируемой нейронной архитектуры |CVPR 2019
- Адрес бумаги:АР Вест V.org/ABS/1812.03…
- Код диссертации:GitHub.com/Facebook Рес…
Introduction
Помимо сосредоточения внимания на точности, в последних разработках сверточных сетей также необходимо учитывать эксплуатационные характеристики, особенно на мобильных устройствах, что усложняет проектирование сверточных нейронных сетей, в основном из-за следующих трудностей:
- Неразрешимое пространство проектирования, из-за большого количества параметров сверточной сети, пространство проектирования очень сложное.В настоящее время многие методы предлагают автоматический поиск, который может упростить процесс ручного проектирования, но этот метод обычно требует больших вычислительных мощностей.
- Непередаваемая Оптимальность, производительность сверточной сети зависит от многих факторов, таких как входное разрешение и целевые устройства, для разных разрешений требуются разные сетевые параметры, и один и тот же блок в разных устройствах также может сильно отличаться, поэтому необходима специфическая настройка для сети при определенных условиях.
- Несогласованные показатели эффективности, большинство показателей эффективности связаны не только со структурой сети, но и с аппаратными и программными настройками на целевом устройстве. Для упрощения многие исследования используют аппаратно-независимые метрики для представления эффективности свертки, такие как FLOP, но FLOP не всегда равны производительности, а также связаны с реализацией блоков, что усложняет проектирование сети.
Чтобы решить вышеуказанные проблемы, в документе предлагается FBNet, который использует поиск дифференцируемой нейронной сети (DNAS) для обнаружения связанных с оборудованием облегченных сверточных сетей Процесс показан на рисунке 1. Метод DNAS представляет все пространство поиска в виде суперсети, преобразует задачу поиска оптимальной структуры сети в поиск оптимального распределения блоков-кандидатов, обучает распределение блоков с помощью градиентного спуска и может выбирать разные блоки для каждого слоя сети. Чтобы лучше оценить задержку в сети, фактическая задержка каждого блока-кандидата измеряется и записывается заранее, и оценка может быть непосредственно накоплена в соответствии со структурой сети и соответствующей задержкой.
Method
DNAS формулирует задачу поиска сетевой структуры следующим образом:
Заданное структурное пространство, чтобы найти оптимальную структуру, после тренировки с весамиПосле этого можно минимизировать потери, статья фокусируется на 3 факторах: пространстве поиска, функция потерь с учетом фактической задержкии эффективные алгоритмы поиска.
-
The Search Space
Большинство предыдущих методов искали структуру единиц, а затем объединяли ее в полную сеть, но на самом деле одна и та же структура единиц в разных слоях очень по-разному влияет на точность и задержку сети. С этой целью в работе построено послойное пространство поиска с фиксированной макроархитектурой.Каждый слой может выбирать блоки различной структуры.Общая структура сети показана в таблице 1.Структуры первых и последних трех слоев фиксированы. , структуру остальных слоев нужно поискать. Из-за большого разрешения функций предыдущих слоев искусственно устанавливается небольшое количество ядер, чтобы обеспечить легкость сети.
Послойное пространство поиска показано на рис. 3 и основано на классической структуре MobileNetV2 и ShuffleNet с установкой различных размеров ядра свертки.(3 или 5), скорость расширенияи количество групп для построения различных блоков-кандидатов. Если входное и выходное разрешения блока совпадают, добавляются поэлементные ярлыки, а если используется групповая свертка, выход свертки необходимо перетасовать по каналам.
Эксперименты в статье содержат 9 блоков-кандидатов, и гиперпараметры каждого блока показаны в таблице 2. Кроме того, существует структура пропуска, которая напрямую сопоставляет вход с выходом, что используется для сокращения глубины всей сети. В целом, вся сеть содержит 22 слоя для поиска, каждый слой выбирается из 9 блоков-кандидатов, всеговозможная структура.
-
Latency-Aware Loss Function
Функция потерь в уравнении 1 должна отражать не только точность, но и задержку на целевом оборудовании. Поэтому определим следующую функцию потерь:
представляет собой кросс-энтропийную потерю,представляет задержку текущей структуры на целевом оборудовании,контролирует величину общей функции потерь,Отрегулируйте величину срока задержки. Вычисление задержки может занять много времени.В документе используется таблица поиска задержки блока для оценки всей сети:
для структурысерединаLayer Blocks, этот метод оценки предполагает, что вычисления между блоками независимы друг от друга, и эффективен для последовательных вычислительных устройств, таких как CPU и DSP.Этот метод может быстро оценитьфактическая задержка сети.
-
The Search Algorithm
В документе пространство поиска представлено в виде случайной суперсети, а суперсеть представляет собой общую структуру таблицы 1, и каждый слой содержит 9 параллельных блоков таблицы 2. Во время вывода вероятность выполнения блока-кандидата равна:
содержит решенияПараметры вероятности выборки каждого блока-кандидата слоя,Выход слоя может быть выражен как:
даСлучайные переменные назначаются случайным образом в соответствии с вероятностью выборки, а выходные данные слоя представляют собой сумму выходных данных всех блоков. Таким образом, структура сетиВероятность выборки может быть выражена как:
содержит все блоки, основываясь на приведенном выше определении, задача дискретной оптимизации уравнения 1 может быть преобразована в:
Таким образом, весиндуктивный, новсе еще невыводима, потому чтоОпределение дискретно, для чего будемМетод генерации преобразуется в Gumbel Softmax:
- случайный шум распределения Гамбеля,является температурным параметром. когдаблизко к 0,Подобно одноразовому, когдабольше,Подобно непрерывной случайной величине. Таким образом, кросс-энтропийные потери уравнения 2 могут бытьивывод, а член задержкиЕго также можно переписать как:
Благодаря использованию формы поиска,является постоянным фактором, сетьПара общих задержекиТакже индукционный. Пока что функция потерь имеети структурные переменныеОба являются дифференцируемыми, и SGD можно использовать для эффективной оптимизации функции потерь.
Процесс поиска эквивалентен процессу обучения случайной суперсети.Обновите веса каждого блока суперсети. После обучения блоков каждый блок по-разному влияет на точность и задержку.обновить вероятность выборки каждого блока. После того, как суперсеть обучена, она распределяется путем выборки сети.Получите оптимальную структуру сети.
Experiments
Сравнение производительности ImageNet с каждой облегченной сетью.
Сравнение производительности при определенных условиях ресурсов и устройств.
Conclustion
В этой статье предлагается метод поиска дифференцируемой нейронной сети, который преобразует выбор дискретной структуры ячеек в распределение вероятностей непрерывной структуры ячеек. Кроме того, в процесс оптимизации добавляется задержка целевого устройства. В сочетании с распределением веса надсети это может Быстрое создание высокопроизводительных облегченных сетей в определенных условиях от начала до конца. Тем не менее, блочная структура документа основана на текущем основном дизайне MobileNetV2 и ShuffleNet, и это больше касается поиска его структурных параметров, поэтому существуют определенные ограничения на структуру сети.
FBNetV2
Бумага: FBNetV2: поиск дифференцируемой нейронной архитектуры для пространственных и канальных измерений |CVPR 2020
- Адрес бумаги:АР Вест V.org/ABS/2004.05…
- Код диссертации:GitHub.com/Facebook Рес…
Introduction
DNAS выбирает оптимальную подсеть, обучая суперсеть, содержащую все сети-кандидаты.Хотя скорость поиска высока, для этого требуется много памяти, поэтому пространство поиска обычно меньше, чем у других методов, а потребление памяти и вычислительных ресурсов зависит от поиска. размер.Линейное увеличение.
Чтобы решить эту проблему, в документе предлагается DMaskingNAS, который добавляет количество каналов и входное разрешение в суперсеть в виде маски и выборки соответственно, что значительно увеличивает объем памяти и вычислений.раз больше пространства поиска.
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 равноСвертка, выборочная карта объектов приводит к одной свертке, которая охватывает толькоСледовательно, выборочную карту объектов необходимо сжать перед операцией свертки, а затем расширить и восстановить после операции свертки, как показано на рисунке E. На самом деле рисунок E можно реализовать с помощью жесткой свертки, которая позволяет избежать использования дополнительной памяти и модификации ядра свертки.
В статье не описывается настройка входного разрешения и процесс поиска в экспериментальной части, а только показаны экспериментальные результаты.Автор только открывает исходный код искомой сети, а не код поиска. Здесь предполагается, что одну и ту же суперсеть следует использовать для извлечения признаков входных данных разного разрешения при поиске, а затем объединять окончательный вывод для обучения и, наконец, брать разрешение с наибольшим весом, как показано на рисунке 2.Это общая суперсеть, если у вас есть друзья, которые ее знают, дайте мне знать.
Experiments
Общая структура сети, установленная во время поиска, и каждый блок-кандидат, включаяСеть кандидатов.
Поиск нескольких сетей FBNetV2, каждая из которых соответствует различным требованиям к ресурсам.
Сравнение производительности с другими сетями.
Conclustion
Как упоминалось ранее, блочная структура FBNet основана на текущем основном дизайне MobileNetV2 и ShuffleNet, и это больше для поиска его структурных параметров, поэтому существуют определенные ограничения на структуру сети. FBNetV2 скоро появитсяЭффект лучше, чем у большинства современных сетей во всех аспектах, но в целом статья больше похожа на количественный метод, поскольку в основе по-прежнему закреплена структурная схема существующей сети.
FBNetV3
Бумага: FBNetV3: Совместный поиск архитектуры и рецепта с использованием функции нейронного сбора
- Адрес бумаги:АР Вест V.org/ABS/2006.02…
Introduction
FBNetV3 в настоящее время размещен только в arxiv.В документе считается, что большинство текущих методов NAS удовлетворяют только поиску структуры сети и не заботятся о том, правильно ли установлены параметры обучения во время проверки производительности сети, что может привести к снижению в модельном исполнении. С этой целью в документе предлагается JointNAS, который ищет наиболее точные параметры обучения и структуру сети в условиях ограниченных ресурсов.
JointNAS
Цель оптимизации JointNAS можно сформулировать следующим образом:
,иПредставляют встраивание сетевой структуры, встраивание параметров обучения и пространство поиска, соответственно,Рассчитать точность при текущей структуре и параметрах обучения,ирасчет потребления ресурсов и количество ресурсов соответственно.
Процесс поиска 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
Сначала используйте квази-Монте-Карло для выборки пар структура-гиперпараметр сети из пространства поиска, затем итеративно обучите предиктор:
- Выберите пакет подходящих пар структура-гиперпараметр сети на основе результатов предиктора.
- Точность обучения и тестирования пар структура-гиперпараметр сети, обучение со стратегией ранней остановки. Возьмите окончательную степень точности сети в первой итерации и степень точности каждой эпохи и нарисуйте кривую корреляции между рейтингом сети и окончательным рейтингом каждой эпохи, как показано на рисунке 3, и возьмите цикл с корреляцией 0,92 в качестве тренировочного цикла.
- При обновлении предиктора первые 50 эпох предиктора фиксируют параметры энкодера, а последующие меры обучения используются с постепенным уменьшением скорости обучения. Головка прогнозирования точности использует для обучения потери Хубера, которые могут противостоять воздействию аномальных точек на обучение модели.
Этот итеративный процесс может уменьшить количество кандидатов, чтобы избежать ненужной проверки и повысить эффективность разведки.
Fine-grained search: Predictor-based evolutionary search
На втором этапе используется адаптивный генетический алгоритм для выбора оптимальной пары параметров структуры сети и обучения на первом этапе в качестве популяции первого поколения. На каждой итерации популяция изменяется для создания новой подгруппы, удовлетворяющей ограничениям, предиктор, обученный на крупнозернистой стадии, используется для быстрого прогнозирования индивидуального балла, и выбирается оптимальный.Пара параметров сетевой структуры и обучения используется в качестве совокупности следующего поколения. Вычислить наибольший прирост очков текущей итерации по сравнению с предыдущей итерацией и выйти, когда прироста недостаточно для получения окончательной высокоточной структуры сети и соответствующих параметров обучения.
Следует отметить, что при изменении ограничений ресурсов предиктор по-прежнему можно использовать повторно, а подходящую структуру сети и параметры обучения можно быстро найти, используя этапы детализации.
Search space
Пространство поиска показано в таблице 1, включаясетевая структура иобучающие гиперпараметры.
Experiments
Исправлена структура сети для проверки эффективности поиска параметров обучения.
Сравнение производительности ImageNet с другими сетями.
Conclustion
FBNetV3 полностью отделен от дизайна FBNetV2 и FBNet.Используемый предсказатель точности и генетический алгоритм использовались во многих приложениях в области NAS.Главной изюминкой является то, что в процесс поиска добавляются параметры обучения, что очень важно для улучшение производительности.
Conclustion
Серия FBNet представляет собой облегченную сетевую серию, полностью основанную на методе NAS. В ней анализируются недостатки текущих методов поиска и постепенно добавляются инновационные усовершенствования. FBNet сочетает в себе DNAS и ограничения ресурсов, FBNetV2 добавляет поиск по каналу и входному разрешению, а FBNetV3 использует прогнозирование точности. для быстрого поиска структуры сети, с нетерпением жду полного кода с открытым исходным кодом.
Если эта статья была вам полезна, ставьте лайк или смотрите~
Для получения дополнительной информации, пожалуйста, обратите внимание на общедоступную учетную запись WeChat [Примечания по разработке алгоритмов Xiaofei].