Резюме эволюции структуры CNN (3) Принципы проектирования

компьютерное зрение

Резюме эволюции структуры CNN (1) Классическая модель

Резюме эволюции структуры CNN (2) Облегченная модель

Предисловие:

Первые две статьи обобщают некоторые новшества в конструкции некоторых классических и облегченных моделей, а в этой статье будут обобщены некоторые принципы и функции предыдущей конструкции.

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

Обратите внимание и обновляйте две статьи о компьютерном зрении каждый день

Структура или способ улучшения репрезентативности модели.

1. Структура «разделить-преобразовать-слить»

Эта концепция взята из ResNeXt (2017), которая поясняется в тексте следующим образом.

1) Разделить: разделить вектор x на низкоразмерные представления встраивания;

2) Преобразование: каждая низкоразмерная функция подвергается линейному преобразованию;

3) Слияние: окончательный результат синтезируется путем сложения единиц;

Серия «Начало» представляет собой структуру, которая использует эту стратегию.В модуле «Начало» «Разделение» использует метод уменьшения размера 1x1, «Преобразование» использует свертку, а «Слияние» использует метод «Объединение». Благодаря стратегии «разделение-преобразование-слияние» модель может реализовать возможности представления признаков более глубоких и крупных моделей с меньшим количеством параметров и объемом вычислений.

图片

Как упоминалось в ResNeXt, увеличение кардинальности (то есть количества ветвей) является более эффективным способом повышения точности, чем углубление и расширение сети. Исходя из этого, в сети PELEE структура в DenseNet изменена с односторонней на двустороннюю для улучшения модели.

2. Повторное использование функций

Традиционные сверточные сети имеют только одно соединение на уровень в прямом процессе, а ResNet добавляет остаточные соединения для увеличения потока информации с одного уровня на другой. FractalNets многократно комбинирует несколько последовательностей параллельных слоев с разным количеством сверточных блоков, увеличивая номинальную глубину, сохраняя при этом короткий прямой путь распространения сети. Аналогичные операции включают Stochastic depth и Highway Networks, DenseNet и т. д.

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

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

Остаточное соединение: Используется прямое добавление.

图片

Половина карт объектов остается для перехода на следующий уровень: CSPNet.

图片

Карты признаков проходят через последовательность параллельных слоев с разным количеством ядер свертки: FractalNets.

图片

принципы проектирования моделей

Четыре принципа проектирования CNN обобщены в третьей статье серии Inception.

1. Избегайте узких мест представления, особенно на неглубоких слоях сети.

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

图片

图片

2. Высокоразмерные представления легко обрабатывать в сети.Увеличение количества функций активации облегчит анализ функций и ускорит обучение сети.

3. Пространственное агрегирование может быть выполнено для вложений более низкой размерности без большой потери репрезентативной мощности.

Например, размер входного представления может быть уменьшен перед пространственной агрегацией (неглубокие слои) без серьезных побочных эффектов перед выполнением более размытых (например, 3×3) сверток.

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

4. Сбалансируйте ширину и глубину сети.

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

5. Кроме того, добавьте еще одну статью об использовании пулинга.

В части извлечения признаков сети используется максимальный пул. В части классификации используется средний пул. Конкретные причины и подробности см. в разделе «Краткое описание технологии объединения» в Техническом руководстве CV.

Принципы проектирования облегченных моделей

1. Улучшить базовую реализацию.

Например, сигмовидная функция принимает приближенный метод в процессе реализации, что не только очень сложно, но и приводит к потере точности, поэтому в MobileNet_v3 предлагается функция нелинейной активации h-swish.Особенностью этой функции является что базовая реализация очень проста и не приведет к рассуждениям.Потеря точности этапа.

2. Уменьшить количество параметров.

Основываясь на этом принципе, в настоящее время существует 1) использование свертки с разделением по глубине, 2) использование декомпозированной свертки, 3) использование групповой свертки, 4) использование структуры с сильными возможностями представления признаков, 5) использование свертки 1x1 вместо объемного произведения 3x3;

3. Уменьшите количество вычислений.

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

4. Уменьшите фактическое время работы.

Четыре принципа ShuffleNet_v2, упомянутые ниже, основаны на этом.

Во второй статье ShuffleNet обобщаются четыре принципа сокращения фактического времени работы модели.

MAC: memory access cost

1. Когда количество входных и выходных каналов сверточного слоя одинаково, MAC является наименьшим.

Чтобы упростить расчетное выражение, здесь для теоретического вывода используется свертка 1x1.

Для карты объектов пространственного размера h, w количество входных и выходных каналов равно c1 и c2 соответственно, с использованием свертки 1x1, тогда FLOPs равны B = h x w x c1 x c2. И MAC = hw(c1 + c2) + c1 x c2.

Здесь hwc1 — стоимость доступа к памяти входной карты объектов, hwc2 — стоимость времени доступа к памяти выходной карты объектов, а c1xc2x1x1 — стоимость времени доступа к памяти ядра свертки.

Подставим выражение B в выражение MAC, и согласно теореме о неравенстве можно получить следующее неравенство:

图片

Из этой формулы видно, что существует нижний предел ПДК, при с1 = с2 ПДК принимает минимальное значение.

Этот метод в основном относится к одинаковому количеству входных и выходных каналов модуля, а не просто к входу и выходу сверточного слоя.

2. Чем больше количество пакетов в свертке пакетов, тем больше MAC.

С одной стороны групповая свертка делается под одни и те же ФЛОПы, чем больше количество групп, тем более разреженной будет плотная свертка на канале, а также повысится точность модели, с другой стороны, чем больше количество групп, MAC увеличивается.

Пакет с использованием выражения вырваний свертки для B = H W C1 C2 / G, Mac выражается следующим образом:

图片

3. Ветви сети снижают параллелизм модели.

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

4. Нельзя игнорировать поэлементную операцию.

Поэлементные операции занимают довольно много времени на GPU. Поэлементные операции включают ReLU, AddTensor, AddBias и т. д. Все они имеют относительно небольшие FLOP, но относительно большие MAC. В частности, глубинное преобразование также можно рассматривать как поэлементную операцию из-за большего отношения MAC/FLOP.

Резюме: В серии «Краткое изложение эволюции структуры CNN» представлен относительно полный обзор структурного дизайна текущей нейронной сети, но нейронная сеть включает не только структурную часть, но также включает функции активации, методы обучения и методы предотвращения Методы обучения и многие другие материалы будут обобщены в последующем обзоре серии статей, которые будут размещены в разделе технического резюме CV технического руководства CV.

Эта статья взята из серии технических сводок Технического руководства CV для общедоступных аккаунтов.

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

Ответьте на ключевое слово «Техническое резюме» в официальном аккаунте, чтобы получить резюме следующих статей в формате pdf.

Другие статьи

Четкое обнаружение границ с использованием Dice loss

PVT — многофункциональная основа для плотного прогнозирования без свертки

CVPR2021 | Обнаружение объектов в открытом мире

Siamese networkСводка

Визуальное обнаружение и распознавание объектов Прошлое, настоящее и возможное

Какие концепции или методы вы освоили за свою карьеру инженера-алгоритма, которые заставляют вас чувствовать, что вы выросли как на дрожжах?

Краткое изложение терминологии компьютерного зрения (1) Создание системы знаний для компьютерного зрения

Краткое изложение методов недообучения и переобучения

Резюме методов нормализации

Краткое изложение общих идей бумажных инноваций

Резюме методов эффективного чтения англоязычной литературы по направлению CV

Обзор непродолжительного обучения компьютерному зрению

Краткий обзор дистилляции знаний

Оптимизировать скорость чтения видео OpenCV

Сводка NMS

Краткое изложение методов функции потерь

Техническое резюме механизма внимания

Краткое изложение технологии пирамиды функций

Краткое изложение технологии объединения

Краткое изложение методов увеличения данных

Резюме эволюции структуры CNN (1) Классическая модель

Резюме эволюции структуры CNN (2) Облегченная модель

Резюме эволюции структуры CNN (3) Принципы проектирования

Как увидеть будущее направление компьютерного зрения

Краткое изложение технологии визуализации CNN (1) Визуализация карты объектов

Краткое описание технологии визуализации CNN (2) Визуализация ядра свертки

Краткое изложение технологии визуализации CNN (три) визуализации

Краткое описание технологии визуализации CNN (4) инструменты и проекты визуализации