Обзор облегченных сетей — магистральных сетей

алгоритм
Обзор облегченных сетей — магистральных сетей

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

Серия SqueezeNet


  Серия SqueezeNet — относительно ранняя и классическая облегченная сеть.SqueezeNet использует модуль Fire для сжатия параметров, а SqueezeNext добавляет отдельные свертки на этой основе для улучшения. Хотя серия SqueezeNet не так широко используется, как MobieNet, ее архитектурные идеи и экспериментальные выводы все же можно использовать для справки.

SqueezeNet

  SqueezeNet — одно из первых исследований, которое сосредоточилось на облегченных сетях с использованием модулей Fire для сжатия параметров.

  Основным модулем SqueezeNet является модуль Fire.Структура показана на рисунке 1. Входной слой сначала проходит через слой свертки сжатия (1×11\times 1свертка) для сжатия размеров, а затем через слой свертки расширения (1×11\times 1свертка и3×33\times 3Convolution Mixing) для расширения размерности. Модуль Fire содержит 3 параметра, которые являются параметрами слоя сжатия.1×11\times 1Количество ядер сверткиs1x1s_{1x1}, развернуть слой1×11\times 1Количество ядер сверткиe1x1e_{1x1}и расширенный слой3×33\times 3Количество ядер сверткиe3x3e_{3x3},в целомs1x1<(e1x1+e3x3)s_{1x1}<(e_{1x1}+e_{3x3})

SqueezeNext

  SqueezeNext — это обновленная версия SqueezeNet, которая напрямую сравнивает производительность с MobileNet. Все SqueezeNext используют стандартные свертки для анализа фактической скорости вывода, а методы оптимизации фокусируются на оптимизации общей структуры сети.

  Дизайн SqueezeNext следует остаточной структуре.Вместо использования популярной в то время свертки разделения по глубине, он напрямую использует свертку разделения.Дизайн в основном основан на следующих стратегиях:

  • Low Rank Filters

  Основная идея низкоранговой декомпозиции состоит в том, чтобы разложить большую матрицу на несколько маленьких матриц.Здесь CP-разложение (каноническая полиадическая декомпозиция) используется для разложенияK×KK\times KСвертка разбивается наK×1K\times 1и1×K1\times KРазделительная свертка , количество параметров может быть изменено отK2K^2сокращено до2K2K.

  • Bottleneck Module

  Количество параметров связано с входными и выходными измерениями.Хотя свертка разделения по глубине может использоваться для уменьшения объема вычислений, расчет свертки разделения по глубине в конечной системе неэффективен. Поэтому сжимающий слой SqueezeNet используется для сжатия входного измерения.В начале каждого блока используются два последовательных сжимающих слоя, и каждый слой уменьшает размерность на 1/2.

  • Fully Connected Layers

  В AlexNet параметры полносвязного слоя составляют 96% всей модели.SqueezeNext использует слой узкого места для уменьшения входного размера полносвязного слоя, тем самым уменьшая количество сетевых параметров.

Серия ShuffleNet


Серия ShuffleNet является очень важной серией в облегченной сети.ShuffleNetV1 предлагает операцию перетасовки каналов, так что сеть может использовать групповую свертку для ускорения, в то время как ShuffleNetV2 переворачивает большую часть дизайна V1.С фактической точки зрения, это предлагает операцию разделения каналов, повторное использование функций выполняется при ускорении сети, и достигаются хорошие результаты.

ShuffleNet V1

Суть ShuffleNet заключается в использовании операции перетасовки каналов для восполнения обмена информацией между группами, чтобы сеть могла в полной мере использовать точечную групповую свертку, что может не только сократить основные сетевые вычисления, но и увеличить размерность свертки.

  В некоторых современных основных сетях точечная свертка обычно используется для уменьшения размерности, тем самым уменьшая сложность сети, но из-за высокой входной размерности накладные расходы точечной свертки также очень велики. Для небольших сетей дорогостоящая точечная свертка приведет к значительному падению производительности, например, в модуле ResNext на точечную свертку приходится 93,4% вычислений. С этой целью в документе представлена ​​групповая свертка и сначала обсуждаются две реализации ShuffleNet:

  • Рисунок 1а является наиболее прямым методом, который изолирует все операции в абсолютных размерах, но это приводит к тому, что конкретный вывод связан только с небольшой частью ввода, что блокирует поток информации между группами и снижает выразительность.
  • Рисунок 1b перераспределяет размеры вывода.Сначала вывод каждой группы делится на несколько подгрупп, а затем каждая подгруппа вводится в другую группу, что может хорошо сохранить поток информации между группами.

  Идею рисунка 1b можно просто реализовать с помощью операции перетасовки каналов, как показано на рисунке 1c, при условии, чтоggВыход сверточного слоя группыg×ng\times nизмерение, сначала измените форму () вывода как(g,n)(g, n), затем транспонировать() и, наконец, сгладить() обратноg×ng\times nизмерение.

ShuffleNet V2

  Точечно сгруппированные результаты свертки и узких мест ShuffleNetV1 улучшат MAC, что приведет к значительным потерям вычислений. Для достижения высокой производительности и высокой точности ключом является получение крупноразмерной свертки с одинаковыми входными и выходными данными без плотной свертки и чрезмерной группировки. Исходя из практики и руководствуясь фактической скоростью вывода, ShuffleNet V2 обобщает 5 основных принципов проектирования облегченной сети и предлагает ShuffleNetV2 в соответствии с основными требованиями, которые хорошо учитывают точность и скорость, в которых операция разделения каналов очень яркая. Глаза, входные функции разделены на две части, и достигается эффект повторного использования функций, аналогичный DenseNet.

  Единичная структура ShuffeNetV1 показана на рисунке 3ab, а операция разделения каналов добавлена ​​на основе V1, как показано на рисунке 3c. В начале каждого раздела карта признаков делится наcc'c-c^{'}а такжеc'c^{'}Две части, одна ветвь проходит прямо назад, а другая ветвь содержит 3 свертки с одинаковыми входными и выходными размерностями. V2 больше не использует групповую свертку, потому что начало блока эквивалентно групповой свертке. После завершения операции свертки функции объединяются, восстанавливаются до входного размера единицы, а затем выполняется операция перемешивания каналов. Здесь нет операции сложения по элементам, и это также экономит некоторые вычисления.При реализации concat/перетасовка каналов/разделение каналов объединяются вместе, что может еще больше повысить производительность.   Единица слегка изменена во время пространственной субдискретизации, как показано на рисунке 3d, операция разделения канала удалена, поэтому выходной размер удваивается, а размерность удваивается.

MnasNet


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

Серия MobileNet


Серия MobileNet — это очень важное семейство облегченных сетей. Оно разработано Google. MobileNetV1 использует свертку с разделением по глубине для построения облегченной сети. MobileNetV2 предлагает инновационный перевернутый остаток с линейным узким местом. Несмотря на то, что количество слоев увеличилось, общая сеть Точность и скорость были улучшены, и MobileNetV3 сочетает в себе технологию AutoML и ручную тонкую настройку для облегчения построения сети.

MobileNetV1

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

  MobileNet оптимизирует вычисления за счет оптимизации свертки с разделением по глубине, преобразуя стандартную сверток в свертки по глубине и1×11\times 1Поточечная свертка, за каждым слоем будут следовать BN и ReLU.

MobileNetV2

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

MobileNetV3

MobileNetV3 сначала строит сеть на основе AutoML, а затем выполняет тонкую настройку вручную.Метод поиска использует платформенные NAS и NetAdapt, которые используются для глобального и локального поиска соответственно, а ручная тонкая настройка настраивает структуру сети. Передний и задний уровни сети, а узкое место добавлено к модулю SE И предложена вычислительно эффективная нелинейная активация h-swish.

CondenseNet


  DenseNet основан на повторном использовании функций и может обеспечить хорошую производительность, но в документе говорится, что в его внутренних соединениях много избыточности, и ранние функции не нужно повторно использовать на более поздних уровнях. С этой целью в документе предлагается CondenseNet на основе обучаемой групповой свертки, которая может автоматически разбирать структуру сети на этапе обучения, выбирать оптимальный режим входного и выходного соединения и, наконец, преобразовывать ее в обычную структуру групповой свертки групповой свертки.

  Изучение групповой свертки включает в себя несколько этапов.Первая половина процесса обучения включает в себя несколько этапов уплотнения.В сочетании с методом регуляризации, который управляет разреженностью, сеть многократно обучается, а затем удаляются неважные фильтры. Вторая половина — это этап оптимизации, который изучает фиксированную сеть после обрезки.

Серия ESPNet


Ядро серии ESPNet лежит в пирамиде свертки отверстий, каждый слой имеет разную скорость расширения и может интегрировать многомасштабные функции без увеличения количества параметров.По сравнению со сверткой с разделением по глубине пирамида свертки с разделением по глубине больше экономичность высокая. Кроме того, стоит изучить многомасштабный метод слияния признаков HFF.

ESPNet

  ESPNet — это облегченная сеть для семантической сегментации, ядро ​​которой лежит в модуле ESP. Как показано на рисунке а, этот модуль содержит пирамиды точечной свертки и сложной свертки, которые используются для уменьшения вычислительной сложности и передискретизации признаков с различными эффективными рецептивными полями соответственно. Модуль ESP более эффективен, чем другие методы декомпозиции свертки (mobilenet/shufflenet), и ESPNet может достигать 112FPS/21FPS/9FPS на графических процессорах/ноутбуках/терминальных устройствах.
Кроме того, в документе было обнаружено, что, хотя пирамида свертки с отверстиями создает большее рецептивное поле, прямой конкатетный вывод будет приводить к странным линиям сетки. Чтобы решить эту проблему, в документе предлагается операция HFF, показанная на рис. b, и выходные данные добавляются иерархически перед объединением. По сравнению с добавлением дополнительных сверток для постобработки, HFF может эффективно решать текстуру сетки, не требуя слишком больших вычислений. Кроме того, чтобы обеспечить градиентную передачу сети, в модуль ESP добавлено короткое соединение от входа к выходу.

ESPNetV2

  ESPNetv2 сочетает в себе метод проектирования свертки разделения по глубине на основе ESPNet для дальнейшего снижения веса модели. Сначала поточечная свертка заменяется групповой точечной сверткой, затем дырочная свертка с большим объемом вычислений заменяется дырочной сверткой с отделимой по глубине Наконец, HFF по-прежнему используется для устранения линий сетки, а Выходная функция увеличивается один раз Извлечение функции, получается структура рисунка б. Принимая во внимание, что вычисление только K точечных сверток эквивалентно точечной групповой свертке с одним числом группировки K, а групповая свертка более эффективна в реализации, она улучшается до окончательной структуры на рисунке c.

ChannelNets


В статье предложена концепция поканальной свертки, которая разрежает связь входных и выходных измерений вместо полной связи, что отличается от строгой группировки групповой свертки Лучшее сохранение обмена информацией между каналами. Основываясь на идее свертки по каналам, в статье далее предлагается поканальная сепарабельная свертка по глубине, и на основе этой структуры заменяется операция последнего полносвязного слоя + глобальный пул сети и строятся ChannelNets.

PeleeNet


  Основываясь на идее плотного соединения DenseNet, в документе предлагается сетевая структура PeleeNet для мобильных устройств с помощью ряда структурных оптимизаций и интеграция SSD для предложения сети обнаружения целей Pelee. Судя по экспериментам, PeleeNet и Pelee — хороший выбор с точки зрения скорости и точности.

серия IGC


Ядром сети серии IGC является экстремальное использование сгруппированных сверток.Обычная свертка разбивается на несколько сгруппированных сверток, что может уменьшить большое количество параметров.Кроме того, принцип дополнительности и операций сортировки может обеспечить информацию между группами с наименьшим количеством параметров. Но в целом, хотя количество параметров и вычислений уменьшается после использования модуля IGC, структура сети становится более громоздкой, что может привести к снижению скорости в реальном использовании.

IGCV1

  Модуль Interleaved group convolution (IGC) включает в себя свертку основной группировки и свертку подгруппы, которые соответственно выполняют извлечение признаков в основном разделе и подразделе.Основной раздел получается путем группировки входных признаков, например, разделения входных признаков наLLразделы, каждый раздел содержитMMразмерные признаки, а соответствующие подразделы подразделяются наMMразделы, каждый раздел содержитLLразмерные особенности. Свертка основной группировки отвечает за извлечение признаков группировки на карте входных объектов, а свертка подгруппы отвечает за объединение выходных данных свертки основной группировки, которая1×11\times 1свертка. Модуль IGC по форме похож на разделяемую по глубине свертку, но концепция группировки проходит через весь модуль, что также является ключом к сохранению параметров.Кроме того, в модуль добавлены два модуля сортировки для обеспечения обмена информацией между каналами .

IGCV2

  IGCV1 разлагает исходную свертка на две сгруппированные свертки, уменьшая параметры и сохраняя полное извлечение информации. Однако автор обнаружил, что, поскольку основная групповая свертка и подгрупповая свертка дополняют друг друга по количеству групп, групповое число подсвертки обычно мало, размерность каждой группировки велика, а ядро ​​подсвертки относительно плотное. С этой целью IGCV2 предлагает Interleaved Structured Sparse Convolution, в которой используется несколько последовательных разреженных сгруппированных сверток для замены исходных подгруппированных сверток.Количество групп каждой сгруппированной свертки достаточно для обеспечения разреженности ядра свертки.

IGCV3

Основываясь на идеях IGCV и bootleneck, IGCV3 объединяет ядра свертки низкого ранга и разреженные ядра свертки для формирования плотных ядер свертки.Как показано на рисунке 1, IGCV3 использует разреженные ядра свертки низкого ранга (модуль узкого места) для расширения и ввода функций группировки. Кроме того, вводится принцип ослабленной дополнительности, аналогичный принципу строгой дополнительности IGCV2, для решения ситуации, когда входные и выходные измерения групповой свертки различны.

Серия ФБНет


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

FBNet

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

FBNetV2

DNAS выбирает оптимальную подсеть, обучая суперсеть, содержащую все сети-кандидаты.Хотя скорость поиска высока, для этого требуется много памяти, поэтому пространство поиска обычно меньше, чем у других методов, а потребление памяти и вычислительных ресурсов зависит от поиска. размер.Линейное увеличение. Для решения этой проблемы в статье предлагается DMaskingNAS, добавляющий количество каналов и входное разрешение в суперсеть в виде маски и дискретизации соответственно, что значительно увеличивает объем памяти и вычислений.101410^{14}раз больше пространства поиска.

FBNetV3

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

EfficientNet


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

GhostNet


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

WeightNet


В статье предлагается простая и эффективная динамическая генерирующая сеть WeightNet, которая объединяет характеристики SENet и CondConv в пространстве весов и добавляет слой сгруппированного полного соединения после вектора активации для непосредственной генерации веса ядра свертки. эффективным и может быть компромиссом в точности и скорости с помощью настроек гиперпараметров.

MicroNet


В документе предлагается облегченная сеть MicroNet для сценариев с чрезвычайно низкими вычислительными затратами, включая две основные идеи: свертка Micro-Factorized и Dynamic Shift-Max. входных и выходных данных и уменьшение количества соединений, Dynamic Shift-Max увеличивает соединения узлов и улучшает нелинейность за счет динамического объединения функций между группами, чтобы компенсировать снижение производительности, вызванное уменьшением глубины сети.

MobileNext


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



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

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

work-life balance.