Подробное объяснение моделей EfficientNetV2, а также разработка их архитектуры и методов обучения.

В настоящее время EfficientNets являются одной из самых мощных моделей сверточных нейронных сетей (CNN). С появлением Vision Transformers, которые достигли даже более высокой точности, чем EfficientNets, возник вопрос, умирают ли сейчас CNN. EfficientNetV2 доказывает обратное, не только повышая точность, но и сокращая время обучения и задержки.

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

Содержание

  1. Введение
  2. EfficientNetV2

…………. 2.1 Проблемы с EfficientNet (версия 1)

…………. 2.2 EfficientNetV2 — изменения, внесенные для устранения проблем и дальнейших улучшений

…………. 2.3 Результаты

3. Заключение

1. Введение

Модели EfficientNet разработаны с использованием поиска по нейронной архитектуре. Первый поиск нейронной архитектуры был предложен в статье 2016 года — Поиск нейронной архитектуры с обучением с подкреплением.

Идея состоит в том, чтобы использовать контроллер (сеть, такую ​​​​как RNN) и выбирать сетевые архитектуры из пространства поиска с вероятностью «p». Затем эту архитектуру оценивают, сначала обучая сеть, а затем проверяя ее на тестовом наборе, чтобы получить точность «R». Градиент «p» рассчитывается и масштабируется по точности «R». Результат (вознаграждение) подается на контроллер RNN. Контроллер выступает в роли агента, обучение и тестирование сети выступают в роли среды, а результат выступает в качестве вознаграждения. Это общий цикл обучения с подкреплением (RL). Этот цикл выполняется несколько раз, пока контроллер не найдет сетевую архитектуру, дающую высокую награду (высокую точность теста). Это показано на рисунке 1.

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

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

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

В этой статье авторы рассмотрели ранее известные архитектуры сверточных нейронных сетей (CNN), такие как VGG или ResNet, и пришли к выводу, что эти архитектуры не имеют разных параметров на каждом уровне, а скорее имеют блок с несколькими сверточными слоями и слоями объединения. и во всей сетевой архитектуре эти блоки используются несколько раз. Авторы использовали эту идею для поиска таких блоков с помощью контроллера RL и просто повторили эти блоки N раз, чтобы создать масштабируемую архитектуру NASNet.

Это было дополнительно улучшено в документе MnasNet: поиск нейронной архитектуры с учетом платформы для мобильных устройств в 2018 году.

В этой сети авторы выбрали 7 блоков, и для каждого блока был выбран и повторен один слой блока. Это показано на рисунке 3.

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

Наконец, архитектура EfficientNet была предложена в статье EfficientNet: переосмысление масштабирования модели для сверточных нейронных сетей в 2020 году.

Рабочий процесс для поиска архитектуры EfficientNet был очень похож на MnasNet, но вместо того, чтобы рассматривать «задержку» в качестве параметра вознаграждения, учитывались «FLOP (операций с плавающей запятой в секунду)». Этот поиск по критериям дал авторам базовую модель, которую они назвали EfficientNetB0. Затем они увеличили глубину, ширину и разрешение изображения базовых моделей (используя поиск по сетке), чтобы создать еще 6 моделей, от EfficientNetB1 до EfficientNetB7. Это масштабирование показано на рисунке 5.

Я написал отдельную статью о версии 1 EfficientNet. Чтобы узнать подробнее об этой версии, пожалуйста, нажмите на ссылку ниже —



2. Эффективная сеть V2

Документ EfficientNetV2: модели меньшего размера и более быстрое обучение (2021 г.)

EfficientNetV2 делает еще один шаг вперед по сравнению с EfficientNet, увеличивая скорость обучения и эффективность параметров. Эта сеть создается с использованием комбинации масштабирования (ширина, глубина, разрешение) и поиска нейронной архитектуры. Основная цель — оптимизировать скорость обучения и эффективность параметров. Кроме того, на этот раз пространство поиска также включало новые сверточные блоки, такие как Fused-MBConv. В итоге авторы получили архитектуру EfficientNetV2, которая намного быстрее предыдущих и более новых современных моделей и намного меньше (до 6,8 раз). Это показано на рисунке 6.

Рисунок 6(b) ясно показывает, что EfficientnetV2 имеет 24 миллиона параметров, в то время как Vision Transformer (ViT) имеет 86 миллионов параметров. Версия V2 также имеет почти половину параметров оригинальной EfficientNet. Хотя он значительно уменьшает размер параметра, он поддерживает аналогичную или более высокую точность, чем другие модели в наборе данных ImageNet.

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

2.1 Проблемы с EfficientNet (версия 1)

EfficientNet (исходная версия) имеет следующие узкие места:

а. Как правило, EfficientNets обучаются быстрее, чем другие крупные модели CNN. Но когда для обучения моделей использовалось большое разрешение изображения (модели B6 или B7), обучение шло медленно. Это связано с тем, что более крупные модели EfficientNet требуют изображений большего размера для получения оптимальных результатов, а при использовании изображений большего размера необходимо уменьшить размер пакета, чтобы эти изображения поместились в памяти GPU/TPU, что замедляет общий процесс.

б. На ранних уровнях сетевой архитектуры глубинные сверточные уровни (MBConv) были медленными. Глубинные сверточные слои обычно имеют меньше параметров, чем обычные сверточные слои, но проблема в том, что они не могут в полной мере использовать современные ускорители. Чтобы решить эту проблему, EfficientNetV2 использует комбинацию MBConv и Fused MBConv, чтобы ускорить обучение без увеличения параметров (обсуждается далее в статье).

в. Равное масштабирование было применено к высоте, ширине и разрешению изображения для создания различных моделей EfficientNet от B0 до B7. Такое одинаковое масштабирование всех слоев не является оптимальным. Например, если глубина увеличивается в 2 раза, все блоки в сети увеличиваются в 2 раза, что делает сеть очень большой/глубокой. Возможно, было бы более оптимальным масштабировать один блок в два раза, а другой в 1,5 раза (неравномерное масштабирование), чтобы уменьшить размер модели при сохранении хорошей точности.

2.2 EfficientNetV2 — изменения, внесенные для устранения проблем и дальнейших улучшений

а. Добавление комбинации блоков MBConv и Fused-MBConv

Как упоминалось в 2.1(b), блок MBConv часто не может в полной мере использовать современные ускорители. Слои Fused-MBConv могут лучше использовать серверные/мобильные ускорители.

Уровень MBConv был впервые представлен в MobileNets. Как видно на рисунке 7, единственное различие между структурами MBConv и Fused-MBConv заключается в двух последних блоках. В то время как MBConv использует свертку по глубине (3x3), за которой следует слой свертки 1x1, Fused-MBConv заменяет/объединяет эти два слоя простым сверточным слоем 3x3.

Объединенные слои MBConv могут ускорить обучение лишь с небольшим увеличением количества параметров, но если используется много таких блоков, это может резко замедлить обучение с большим количеством добавленных параметров. Чтобы преодолеть эту проблему, авторы передали как MBConv, так и Fused-MBConv при поиске нейронной архитектуры, который автоматически определяет наилучшую комбинацию этих блоков для наилучшей производительности и скорости обучения.

б. Поиск NAS для оптимизации точности, эффективности параметров и эффективности обучения

Поиск нейронной архитектуры был выполнен для совместной оптимизации точности, эффективности параметров и эффективности обучения. Модель EfficientNet использовалась в качестве основы, и поиск проводился с различными вариантами дизайна, такими как — сверточные блоки, количество слоев, размер фильтра, степень расширения и так далее. Около 1000 моделей были отобраны и обучены в течение 10 эпох, и их результаты сравнивались. Модель, которая лучше всего оптимизирована с точки зрения точности, времени шага обучения и размера параметра, была выбрана в качестве окончательной базовой модели для EfficientNetV2.

На рис. 8 показана базовая архитектура модели EfficientNetV2 (EfficientNetV2-S). Модель вначале содержит слои Fused-MBConv, но позже переключается на слои MBConv. Для сравнения я также показал архитектуру базовой модели для предыдущей статьи EfficientNet на рис. 9. В предыдущей версии были только слои MBConv и не было слоев Fused-MBConv.

EfficientNetV2-S также имеет меньший коэффициент расширения по сравнению с EfficientNet-B0. EfficeinetNetV2 не использует фильтры 5x5, а использует только фильтры 3x3.

в. Интеллектуальное масштабирование модели

После получения модели EfficientNetV2-S ее масштабировали для получения моделей EfficientNetV2-M и EfficientNetV2-L. Был использован метод составного масштабирования, аналогичный EfficientNet, но были внесены некоторые дополнительные изменения, чтобы сделать модели меньше и быстрее —

я. максимальный размер изображения был ограничен до 480x480 пикселей, чтобы уменьшить использование памяти GPU/TPU и, следовательно, увеличить скорость обучения.

II. на более поздних этапах (этапы 5 и 6 на рис. 8) было добавлено больше уровней, чтобы увеличить пропускную способность сети без значительного увеличения накладных расходов во время выполнения.

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

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

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

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

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

Начальный размер изображения и параметр регуляризации определяются пользователем. Затем применяется линейная интерполяция для увеличения размера изображения и регуляризации после определенного этапа (M), как показано на рис. 11. Это лучше поясняется визуально на рис. 12. По мере увеличения количества эпох размер изображения и аугментации также увеличивалась постепенно. EfficicentNetV2 использует три разных типа регуляризации — Dropout, RandAugment и Mixup.

2.3 Результаты

я. EfficientNetV2-M обеспечивает такую ​​же точность, как EfficientNetB7 (лучшая предыдущая модель EfficientNet). Кроме того, EfficientNetV2-M обучается почти в 11 раз быстрее, чем EfficientNetB7.

Как видно на рисунках 13 a, 13 b и 13 c, модели EfficientNetV2 лучше, чем все другие современные модели компьютерного зрения, включая Vision Transformers.

Чтобы узнать больше о Vision Transformers, перейдите по ссылке ниже —



Подробное сравнение моделей EfficientNetV2, предварительно обученных на ImageNet21k с 13 миллионами изображений, и некоторых моделей, предварительно обученных на ImageNet ILSVRC2012 с 1,28 миллионами изображений, со всеми другими современными моделями CNN и преобразователями, показано на рисунке 14. Помимо наборов данных ImageNet, модели были также протестированы на других общедоступных наборах данных, таких как CIFAR-10, CIFAR-100, набор данных Flowers и набор данных Cars, и в каждом случае модели показали очень высокую точность.

3. Заключение

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

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

Бумага EfficiencyNetV2 —

Тан, Минсин и Ле, Куок. (2021). EfficientNetV2: меньшие модели и более быстрое обучение. arXiv, doi: 10.48550/ARXIV.2104.00298 https://arxiv.org/abs/2104.00298