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

В этой истории MSDNet (многоуровневая плотная сеть) от Корнельского университета, Университета Фудань, Университета Цинхуа , а также Facebook AI Research (FAIR). Авторы изобрели DenseNet в 2017 году CVPR (Best Paper Award с более чем 2900 цитированием) и предложили MSDNet в 2018 ICLR с десятками цитирований, что является Мультимасштабная DenseNet. (Сик-Хо Цанг @ средний)

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

Контур

  1. Концепции классификации изображений с вычислительными ограничениями
  2. Архитектура MSDNet
  3. Оценки при классификации в режиме реального времени и классификации партий с запланированным бюджетом
  4. Сокращение количества сетей и отложенная оценка
  5. Результаты

1. Концепции классификации изображений с вычислительными ограничениями

Есть две настройки классификации изображений с вычислительными ограничениями.

1.1. Классификация в любое время

  • Сеть можно заставить выводить прогноз в любой момент времени.
  • Например: Мобильные приложения на устройствах Android.

1.2. Бюджетная классификация пакетов

  • Фиксированный вычислительный бюджет распределяется между большим набором примеров, который может быть потрачен неравномерно в «простых» и «сложных» примерах. Это полезно для крупномасштабных приложений машинного обучения.
  • Например: поисковые системы, компании в социальных сетях, рекламные интернет-агентства - все они должны обрабатывать большие объемы данных на ограниченных аппаратных ресурсах.
  • По состоянию на 2010 год в Google Image Search было проиндексировано более 10 миллиардов изображений, которые с тех пор, вероятно, выросли до более чем 1 триллиона. Даже если новая модель для обработки этих изображений будет всего лишь на 1/10 с медленнее на изображение, эти дополнительные затраты добавят 3170 лет процессорного времени.
  • При настройке пакетной классификации бюджета компании могут повысить среднюю точность, уменьшив объем вычислений, затрачиваемых на «простые» случаи, чтобы сэкономить вычисления для «сложных» случаев.

  • Как показано выше, MSDNet - это многомасштабная DenseNet. Верхние пути предназначены для изображения без уменьшения размера, нижние пути - для изображения с меньшим масштабом.
  • Скажем, например, есть изображение кошки, которое мы хотим классифицировать, пройдя через сеть, возможно, классификация кошки имеет классификационную достоверность 0,6, что превышает пороговое значение, мы можем иметь ранний выход. Следующую сеть можно пропустить, чтобы сэкономить время вычислений для «простых» изображений.
  • С другой стороны, для «жестких» изображений мы можем пройти через более глубокую сеть, пока достоверность классификации не превысит пороговое значение.
  • Следовательно, время вычислений можно сэкономить, используя время, потраченное на «простые» и «сложные» изображения.

2. Архитектура MSDNet

2.1. Архитектура

  • Его вертикальная компоновка в виде миниатюрной сверточной сети «S -уровней» (S = 3).
  • Для первого слоя (l = 1) карты характеристик в более грубых масштабах получаются с помощью понижающей дискретизации.
  • Для последующих слоев с l = 1 и масштабом s карты объектов из всех предыдущих карт объектов с масштабом s и s -1 объединены. Используются Conv (1 × 1) -BN-ReLU-Conv (3 × 3) -BN-ReLU.
  • Чтобы быть более точным, на приведенном ниже рисунке и в таблице показаны карты функций, используемые в определенные s и l.

  • В определенных местах в середину сети вставлены промежуточные классификаторы.
  • Каждый классификатор имеет два сверточных слоя с понижающей дискретизацией с 128 размерными фильтрами 3 × 3, за которыми следуют средний слой объединения 2 × 2 и линейный слой.
  • Во время обучения используются функции логистических потерь L (fk) для каждого классификатора и минимизируют взвешенные совокупные потери:

  • где D обозначает обучающую выборку, а wk ⩾ 0 - вес классификатора k.
  • нед = 1 эмпирически.

2.2. Оценка промежуточных классификаторов с использованием различных сетей

  • Вы спросите, а почему бы просто не вставить промежуточные классификаторы в ResNet или DenseNet? Зачем нужен MSDNet? Авторы тоже это оценили. Есть две основные причины.

2.2.1. Первая причина

  • Проблема: отсутствие функций грубого уровня. Традиционные нейронные сети изучают особенности мелкого масштаба на ранних слоях и грубого масштаба на более поздних уровнях. В ранних слоях отсутствуют признаки грубого уровня, и классификаторы раннего выхода, прикрепленные к этим слоям, вероятно, дадут неудовлетворительно высокий уровень ошибок.
  • На приведенном выше рисунке слева показаны результаты промежуточных классификаторов, которые также вставлены в ResNet и DenseNet. Точность классификатора сильно коррелирует с его положением в сети. В частности, в случае ResNet (синяя линия) можно наблюдать видимый узор лестницы с большими улучшениями после 2-й и 4-й классификаторы - расположены сразу после слоев объединения.
  • Решение: многомасштабные карты объектов. MSDNet поддерживает представление функций в нескольких масштабах по всей сети, и все классификаторы используют только функции грубого уровня.
  • Горизонтальные соединения сохраняют и развивают информацию с высоким разрешением, что облегчает построение высококачественных грубых объектов на более поздних слоях. Вертикальные соединения образуют грубые детали, которые поддаются классификации.

2.2.2. Вторая причина

  • Проблема: ранние классификаторы мешают более поздним классификаторам. На приведенном выше рисунке справа показана точность окончательного классификатора в зависимости от местоположения одного промежуточного классификатора относительно точности сети без промежуточных классификаторы.
  • Введение промежуточного классификатора наносит вред итоговому классификатору ResNet (синяя линия), снижая его точность до 7%. T его снижение точности в ResNet может быть вызвано тем, что промежуточный классификатор влияет на ранние функции, которые нужно оптимизировать для краткосрочной, а не для конечных слоев.
  • Решение: плотная связь. Напротив, DenseNet (красная линия) гораздо меньше страдает от этого эффекта. Это связано с тем, что в DenseNet карты функций объединяются с использованием конкатенации вместо использования сложения в ResNet. Карты объектов на более ранних слоях могут обходить более плотное соединение с более поздними слоями. Эффективность конечного классификатора становится (более или менее) независимой от местоположения промежуточного классификатора.

3. Оценки при классификации в любое время и классификации партий с планируемым бюджетом

3.1. Классификация в любое время

  • При любой классификации существует конечный вычислительный бюджет B ›0, доступный для каждого тестового примера.
  • Во время тестирования с настройкой в ​​любое время входные данные распространяются по сети до тех пор, пока бюджет B не будет исчерпан, и вывести самый последний прогноз.

3.2. Бюджетная классификация партий

  • При заложенной в бюджет пакетной классификации модель должна классифицировать набор примеров Dtest = {x 1,…, xM} в рамках конечного вычислительного бюджета B ›0, что известно заранее.
  • Потенциально он может сделать это, затратив менее B / M вычислений на классификацию «простого» примера, при этом используя более B / M вычисление при классификации «сложного» примера.
  • Следовательно, рассматриваемый здесь бюджет B является мягким ограничением, когда у нас есть большая партия тестовых образцов.
  • Затем для решения этой проблемы используется динамическая оценка:
  • Во время тестирования пример пересекает сеть и выходит после классификатора fk, если его достоверность прогноза (максимальное значение вероятности softmax в качестве меры достоверности) превышает заданный порог θk.
  • Перед обучением мы вычисляем вычислительные затраты Ck, необходимые для обработки сети до k -го классификатора.
  • Мы обозначаем через 0 ‹q ≤ 1 фиксированную вероятность выхода из того, что выборка, попавшая в классификатор, получит классификацию с достаточной степенью уверенности для выхода.
  • Вероятность выхода образца из классификатора k:

  • где z - нормирующая постоянная такая, что:

  • И нам нужно убедиться, что общие затраты на классификацию всех образцов в Dtest не превышают наш бюджет B, что приводит к ограничению:

  • Затем мы можем решить указанное выше для q и назначить пороговые значения θk для набора удержания / проверки так, чтобы примерно доля qk образцы проверки выходят на k -й классификатор.

4. Сокращение количества сетей и отложенная оценка

  • Есть два простых способа еще больше снизить вычислительные требования MSDNets.

  • Во-первых, неэффективно поддерживать все более мелкие масштабы до последнего уровня сети. Одна из простых стратегий уменьшения размера сети - разделить ее на блоки S по глубине и оставить только самые грубые (S - i +1) масштабируется в i -м блоке, как показано выше. Это снижает вычислительные затраты как на обучение, так и на тестирование.
  • Во-вторых, поскольку классификатор на слое l использует только объекты самого грубого масштаба, более мелкие карты объектов в слое l (и некоторые более тонкие карты объектов в предыдущем S -2 слоя) не влияют на предсказание этого классификатора. Следовательно, вычисление в «диагональных блоках» сгруппировано так, что мы распространяем пример только по путям, которые требуются для оценки следующего классификатора. Это сводит к минимуму ненужные вычисления, когда нам нужно остановиться, потому что вычислительный бюджет исчерпан. Эта стратегия называется ленивой оценкой.

5. Результаты

5.1. Наборы данных

  • CIFAR-10 и CIFAR-100: два набора данных CIFAR содержат 50 000 обучающих и 10 000 тестовых изображений размером 32 x 32 пикселя. 5 000 обучающих изображений используются в качестве набора для проверки. Наборы данных включают 10 и 100 классов соответственно. К обучающей выборке применяется стандартное увеличение данных, случайная обрезка и горизонтальный поворот. Размер мини-партии - 64.
  • ImageNet: набор данных ImageNet включает 1000 классов, в общей сложности 1,2 миллиона обучающих изображений и 50 000 проверочных изображений. Для оценки порога достоверности для классификаторов в MSDNet из обучающего набора выделено 50 000 изображений. Применяется стандартное увеличение данных. Во время тестирования размер изображения в центре кадрирования 224 × 224 изменяется до 256 × 256 пикселей для классификации. Размер мини-партии - 256.
  • В ImageNet используются 4 шкалы, то есть S = 4, что соответственно дает 16, 32, 64 и 64 карты объектов на каждом слое. Исходные изображения сначала преобразуются сверткой 7 × 7 и максимальным объединением 3 × 3 (оба с шагом 2) перед входом в первый уровень MSDNets.

5.2. Исследование абляции

  • Используется MSDNet с шестью промежуточными классификаторами, а три основных компонента, многомасштабные карты функций, плотная связь и промежуточные классификаторы, являются удаляются по одному.
  • Если все три компонента в MSDNet удалены, получается обычная сверточная сеть, подобная VGG.
  • Чтобы сделать наши сравнения справедливыми, мы сохраняем вычислительные затраты для полных сетей одинаковыми, на уровне примерно 3,0 × 10⁸ FLOP, путем адаптации ширины сети, то есть количества выходных каналов на каждом уровне.
  • Оригинальный MSDNet (черный), конечно, имеет высочайшую точность.
  • Удаление плотного соединения (оранжевый) резко снижает общую точность.
  • Плюс удалена многомасштабная свертка (голубой), точность ухудшается только в регионах с более низким бюджетом. Это согласуется с мотивацией авторов, что многомасштабный дизайн вводит отличительные особенности на ранней стадии.
  • Авторы также упомянули, что со всеми удаленными 3 компонентами он (Star) работает так же, как MSDNet при определенном бюджете. (Но я не могу найти Звезду на рисунке ...)

5.3. Классификация в любое время

  • Сеть MSDNet имеет 24 уровня.
  • Классификаторы работают с выходными данными 2 × (i +1) -го слоев с i = 1,…, 11.
  • В ImageNet i -й классификатор работает на (k × i +3) -м слое, где i = 1,…, 5, где k = 4, 6 и 7.

  • ResNetMC: ResNet с MC (множественными классификаторами), 62 слоя, с 10 остаточными блоками при каждом пространственном разрешении (для трех разрешений): классификаторы с ранним выходом находятся на выходе 4-го и 8-го остатка. блоков при каждом разрешении, создавая в общей сложности 6 промежуточных классификаторов (плюс последний уровень классификации).
  • DenseNetMC: DenseNet с MC, 52 слоя, с тремя плотными блоками, каждый из которых имеет 16 слоев. Шесть промежуточных классификаторов прикреплены к 6-му и 12-му слоям в каждом блоке, а также плотно связаны со всеми предыдущими уровнями в этом блоке.
  • И ResNetMC, и DenseNetMC требуют около 1,3 × 10⁸ FLOP при полной оценке.
  • Ансамбль ResNets / DenseNets с разной глубиной также оценивается. Во время тестирования сети оцениваются последовательно (в порядке возрастания размера сети) для получения прогнозов для тестовых данных. Все прогнозы усредняются по оцененным классификаторам. В ImageNet ансамбль ResNets и DenseNets с глубиной от 10 до 50 слоев и от 36 до 121 слоя соответственно.
  • На CIFAR-100 MSDNet существенно превосходит ResNetMC и DenseNetMC на любых диапазонах. Это связано с тем, что после всего лишь нескольких слоев MSDNets создали карты характеристик с низким разрешением, которые намного больше подходят для классификации, чем карты характеристик с высоким разрешением на ранних уровнях ResNets или DenseNets. ».
  • В чрезвычайно малобюджетном режиме у ансамблей есть преимущество, потому что их прогнозы выполняются первой (небольшой) сетью, которая оптимизирована исключительно для малого бюджета. Однако точность ансамблей не увеличивается почти так быстро, когда увеличивается бюджет.
  • В отличие от MSDNets, ансамбль многократно повторяет вычисление аналогичных низкоуровневых функций.
  • Точность ансамбля быстро увеличивается, когда все сети неглубокие.

5.4. Бюджетная классификация партий

  • В CIFAR-10 и CIFAR-100 сеть MSDNet насчитывает от 10 до 36 уровней. k -й классификатор прикреплен к слоям {1 + ... + k}.
  • В ImageNet используются те же сети, что и в классификации в любое время.

  • При заложенной в бюджет пакетной классификации прогнозная модель получает пакет из M экземпляров и вычислительный бюджет B для классификации всех M экземпляров. Используется динамическая оценка.
  • В ImageNet, M = 128, сравниваются пять DenseNets, пять ResNets, один AlexNet и один GoogLeNet.
  • Ансамбль из пяти ResNet: Простые изображения распространяются только через самые маленькие ResNet-10, тогда как жесткие изображения классифицируются всеми пятью моделями ResNet. (прогнозы усредняются по всем оцененным сетям в ансамбле).
  • На CIFAR-100, M = 256, сравниваются ResNets, DenseNets разного размера, Stochastic Depth Networks, Wide ResNets, FractalNets, ResNetMC и DenseNetMC.
  • Как показано на рисунке выше, используются три сети MSDNet с разной глубиной, так что все они объединяются для покрытия большого диапазона вычислительных бюджетов.
  • В ImageNet, например, со средним бюджетом 1,7 × 10⁹ FLOPs, MSDNet достигает максимальной точности ~ 75%, что на ~ 6% выше, чем у ResNet с тем же количество FLOP.
  • По сравнению с вычислительно эффективной DenseNets, MSDNet использует примерно в 2–3 раза меньше FLOP для достижения той же точности классификации.
  • На CIFAR-100 MSDNets стабильно превосходят все базовые показатели при любом бюджете.
  • MSDNet работает на уровне 110-слойной ResNet, используя только 1/10 вычислительного бюджета.
  • MSDNet до 5 раз эффективнее, чем DenseNets, Stochastic Depth Networks, Wide ResNets и FractalNets.
  • Подобно результатам в настройке прогнозирования в любое время, MSDNet существенно превосходит ResNetsMC и DenseNetsMC с несколькими промежуточными классификаторами, что является дополнительным свидетельством того, что грубые функции в MSDNet важны для высокой производительности на более ранних уровнях.

5.5. Визуализация

  • Простые изображения (верхняя строка): вышли из первого классификатора и правильно классифицированы.
  • Жесткие изображения (нижняя строка): вышли из первого классификатора и неправильно классифицированы, но правильно классифицированы последним классификатором, в котором они не являются типичными изображениями.

5.6. Более эффективные с точки зрения вычислений плотные сети

  • Найдена и исследована более эффективная DenseNet. Авторы также считают это интересным открытием во время исследования MSDNet.

  • DenseNet *: исходные DenseNet модифицируются путем удвоения скорости роста после каждого переходного слоя, так что к картам характеристик с низким разрешением применяется больше фильтров.
  • DenseNet * (зеленый) значительно превосходит исходную DenseNet (красный) по эффективности вычислений.
  • По классификации любое время ансамбль DenseNets * разной глубины лишь немного хуже, чем MSDNets.
  • В бюджетной пакетной классификации MSDNets по-прежнему значительно превосходит ансамбль DenseNets * разной глубины.

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

использованная литература

[2018 ICLR] [MSDNet]
Многоуровневые плотные сети для ресурсоэффективной классификации изображений

Мои предыдущие обзоры

Классификация изображений
[LeNet] [AlexNet] [ZFNet] [VGGNet] [Шоссе] [SPPNet] [PReLU-Net] [STN] [DeepImage] [GoogLeNet / Inception-v1] [BN-Inception / Inception-v2] [Inception-v3] [Inception-v4] [Xception] [ MobileNetV1] [ResNet] [Pre-Activation ResNet] [RiR] [RoR] [Стохастическая глубина] [WRN] [FractalNet] [Trimps-Soushen] [PolyNet] [ResNeXt] [DenseNet] [PyramidNet] [DRN]

Обнаружение объектов
[OverFeat] [R-CNN] [Fast R-CNN] [Faster R-CNN] [DeepID-Net] [ КРАФТ ] [ R-FCN ] [ ION ] [ MultiPathNet ] [ NoC ] [ G-RMI ] [ TDM ] [ SSD ] [ DSSD ] [ YOLOv1 ] [ YOLOv2 / YOLO9000 ] [ YOLOv3 ] [ FPN ] [ RetinaNet ] [ DCN ]

Семантическая сегментация
[FCN] [DeconvNet] [DeepLabv1 & DeepLabv2] [CRF-RNN] [SegNet] [ParseNet] [DilatedNet ] [ PSPNet ] [ DeepLabv3 ] [ DRN ]

Сегментация биомедицинских изображений
[CUMedVision1] [CUMedVision2 / DCAN] [U-Net] [CFS-FCN] [U-Net + ResNet] [ Многоканальный]

Сегментация экземпляра
[DeepMask] [SharpMask] [MultiPathNet] [MNC] [InstanceFCN] [FCIS]

Суперразрешение
[SRCNN] [FSRCNN] [VDSR] [ESPCN] [RED-Net] [DRCN] [DRRN] [LapSRN & MS-LapSRN] [SRDenseNet]

Оценка позы человека
[Tompson NIPS’14]