Было проведено множество экспериментов по поиску наиболее эффективной архитектуры CNN. эффективная архитектура должна находить идеальный баланс между многими узкими местами, такими как точность, параметры, FLOP или время вывода. Многие статьи посвящены различным узким местам в зависимости от их потребностей. Например, DenseNet и EfficientNet пытаются повысить точность с меньшим количеством параметров. RegNet, ResNeSt и MNasNet оптимизируют скорость вывода. NFNets ориентированы на повышение скорости обучения.

Эта новая статья (июнь 2021 г.) дает отличное понимание того, как обучать CNN как эффективно по параметрам, так и повышать скорость обучения. Сосредоточение внимания на обсуждении и улучшении следующих достижений в обучении CNN:

  • Поиск нейронной архитектуры (NAS): использование случайного поиска / обучения с подкреплением для выбора оптимального дизайна модели и поиска гиперпараметров.
  • Стратегии масштабирования: рекомендации по эффективному масштабированию небольших сетей в более крупные, например составное правило масштабирования EfficientNet.
  • Стратегии обучения: например, новые методы регуляризации, рекомендации по эффективности обучения.
  • Прогрессивное обучение: ускорение обучения за счет постепенного увеличения размера изображения.
  • Различные типы сверток и строительных блоков: например, преобразование по глубине, разделение по глубине, сжатие и возбуждение (SE), MB Conv, Fused-MB Conv.

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

Что не так с EfficientNet (он же EfficientNetV1)?

Конвейер EfficientNet ищет сеть EfficientNet-B0, которая оптимизирует FLOP (~ скорость) и точность с помощью NAS. Составное правило масштабирования применяется для увеличения масштаба этой сети за счет увеличения глубины (# слоев), ширины (# каналов) и размера изображения вместе, и находит EfficientNet B1-B7. В документе обсуждаются три узких места EfficientNetV1.

Обучение с очень большими размерами изображений происходит медленно: EfficientNet экспоненциально масштабирует разрешение входного изображения (например, B7 вводит изображения 600 × 600). Это вызывает значительные узкие места в памяти и приводит к уменьшению размеров пакетов, что значительно снижает производительность.

Глубинная свертка медленна на ранних уровнях, но эффективна на более поздних стадиях: модуль MBConv с глубокой сверткой и модуль Fused-MBConv без глубинной свертки считаются строительными блоками в EfficientNetV2. Глубинная свертка имеет значительно меньше параметров, но работает медленнее, поскольку не использует современные ускорители.

Поскольку преимущества параметров на ранних уровнях не так велики, потому что # каналов относительно малы, подходящее сочетание обычных блоков MBConv и блоков Fused-MBConv может быть оптимальным (таблица 3).

Равное масштабирование каждого этапа не является оптимальным. Наивное масштабирование всех этапов сети с помощью правила составного масштабирования - не лучшая идея. Интуитивно понятно, что каждый этап не будет в равной степени способствовать скорости обучения и эффективности параметров.

Улучшенное NAS и масштабирование

В качестве решения ранее обсуждавшихся проблем EfficientNetV1 в документе предлагается улучшенный алгоритм NAS и стратегия масштабирования.

NAS

Вновь определенное пространство поиска представляет собой упрощенную версию, определяемую:

  • типы сверточных операций: {MBConv, Fused-MBConv}
  • номер слоя
  • размер ядра: {3 × 3, 5 × 5}
  • коэффициент расширения (внутри MBConv): {1, 4, 6}

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

Новое вознаграждение за поиск сочетает в себе точность модели A, # шаг обучения S и # параметры P с использованием простого взвешенного произведения A × (S ^ w) × (P ^ v). Для деталей w = -0,07 и v = -0,05 найдены эмпирически.

Результат

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

  • Ранние слои находят Fused-MBConv более эффективным, в то время как последние предпочитают исходный блок MBConv.
  • Ранние уровни предпочитают меньший коэффициент расширения для MBConv.
  • Каждый уровень предпочитает ядра 3 × 3 с большим количеством слоев, чем ядра 5 × 5, которые немного используются в EfficientNetV1.
  • Завершающий этап (этап 7) полностью удален, возможно, из-за большого размера параметра.

Стратегия масштабирования

Мы вносим две прямые модификации в стратегию масштабирования EfficientNetV1.

  1. Ограничьте максимальный размер изображения вывода до 480.
  2. Добавьте больше слоев на более поздних этапах, чтобы увеличить пропускную способность сети без дополнительных затрат времени выполнения.

Эти две небольшие модификации вносят существенные изменения даже в компромисс производительности EfficientNetV1. Черная кривая Парето превращается в серую кривую, просто изменяя стратегии масштабирования. Более крупные аналоги EffNetV2-M и EffNetV2-L определены с использованием этой модифицированной стратегии масштабирования.

Прогрессивное обучение

Прогрессивное обучение - это стратегия ускорения обучения за счет постепенного увеличения емкости модели, также известной как размер изображения. Точнее, размер изображения постепенно увеличивается во время тренировки. Однако они часто приводят к снижению конечной точности.

EfficientNetV2 улучшает прогрессивное обучение, увеличивая степень регуляризации вместе с размером изображения. Интуитивно понятно, что обучение с маленьким размером изображения = малой пропускной способностью сети, таким образом, требует слабой регуляризации, а обучение с большим размером изображения требует более сильной регуляризации, чтобы бороться с переобучением из-за увеличения пропускной способности сети.

Согласно алгоритму, мы увеличиваем размер изображения S_i и величину регуляризации φ_i одновременно в соответствии со значением i. Величина регуляризации φ_i контролирует частоту отсева, величину RandAugment и частоту смешивания.

Резюме

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

Стратегия составного масштабирования немного изменена для повышения эффективности использования параметров и памяти.

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