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

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

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

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

Цель исследования

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

Содержание

  • Моя задача

  • Анализ результатов

    • Группа сетей VGG

    • Группа сетей DenseNet

    • Группа сетей ResNet

    • Группа сетей ResNeXt

    • Группа сетей ReXNet/ResNeSt/Res2Net

    • Группа сетей RegNet

    • Группа сетей Inception/Xception

    • Группа сетей MNASNet/NASNet/PnasNet/SelecSLS/DLA/DPN

    • Группа сетей MobileNet/MixNet/HardCoRe-NAS

    • Группа сетей трансформеров BeiT/CaiT/DeiT/PiT/CoaT/LeViT/ConViT/Twins

    • Группа сетей ViT (Visual Transofrmer)

    • Группа сетей ConvNeXt

    • Группа сетей ResMLP/MLP-Mixer

    • Группа сетей NFNet-F

    • Группа сетей EfficientNet

    • Прочие предобученные модели сетей

  • Результаты рейтинга архитектур

  • Выводы проведенного исследования

Моя задача

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

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

В используемой задачи брались изображения с 8326 различных классов. При этом многие изображения разных классов могли быть достаточно похожи между собой.

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

В качестве метрики качества использовалась доля правильных ответов (в процентах) в топ1 (acc), и доля правильных ответов в топ5 (acc5) наиболее близких векторов. 

Все представленные предобученные архитектуры сетей брались из библиотеки timm.

Анализ результатов

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

1. Группа сетей VGG

Наверное, одна из старейших архитектур в данном рейтинге.

Лидером здесь стала сеть RepVGG-B1 — это одна из моделей классификации изображений RepVGG, предварительно обученная на наборе данных ImageNet. RepVGG – это улучшенная, более глубокая модель VG, выпущенная в 2021 году.

2. Группа сетей DenseNet

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

В это группе первое место заняла архитектура с большим количеством параметров

3. Группа сетей ResNet

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

подгруппа “30 лучших”.

подгруппа остальных сетей.

В данной группе в лидеры выбрались архитектуры с большим количеством параметров и обученные на большем количестве классов. В лидерах архитектура ResNetV2 обученная на 21 тысяче классов и с использованием технологии Big Transfer. При этом посмотреть на распределение очков внутри группы тоже достаточно интересно. Например resnet18 показала себя очень достойно, что для меня оказалось сюрпризом, а resnet26d попала в топ10 по группе

4. Группа сетей ResNeXt

Другая реализация архитектуры ResNet с увеличенной мощностью не показала существенной разницы.

5. Группа сетей ReXNet/ResNeSt/Res2Net

ReXNet–  достаточно интересная группа сетей с уменьшенным количеством параметров. Показала неплохие результаты, заняв 13 место в итоговом рейтинге архитектур. Притом, что rexnet_130 (при меньшем количествое параметров (7.5 млн) показало более высокое качество, чем rexnet_200

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

Res2Net –  реализация сети заточенная под задачи поиска объектов в разных масштабах и задачах сегментации, точности в приведённой задаче показала одни из худших результатов.

6. Группа сетей RegNet

Группа небольших по количеству параметров сетей как последовательное развитие сетей ResNet показывают очень хорошую точность, так как качество в целом оказалось лучше чем у сетей архитектуры ResNet.

7. Группа сетей Inception/Xception

Архитектуры Inception и её модификация Xception оказались в числе отстающих в данной задаче. 

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

8. Группа сетей MNASNet/NASNet/PnasNet/SelecSLS/DLA/DPN

Я объединил различные архитектуры сети в эту группу, чтобы можно было сравнить.

SelecSLS – архитектура нейронной сети, предложенная в качестве использования к задаче 3D-захвата движения людей в реальном времени. В задаче классификации показала себя на уровне сетей ResNet.

DLA – архитектура сети глубокой агрегации, имеет иерархические структуры объединения слоев, повышает распознавание объектов. Схожее качество с SelecSLS.

DPN – двойные сети классификации изображений, оказались в списке отстающих по точности.

NASNet архитектура нейронных сетей, оптимизирована с точки зрения производительности

При этом в данной группе, выиграла архитектура NASNet, с небольшим количеством параметров, лучшая в данной группе spnasnet_100, насчитывает всего 4 млн параметров, что более чем в 6 раз меньше, чем в resnet50. Полученная точность существенно выше.

9. Группа сетей MobileNet/MixNet/HardCoRe-NAS

MobileNet – очень популярная группа сетей, оптимизированная для мобильных устройств, показала просто выдающиеся результаты! Сеть mobilenetv2_140 с 6 млн. параметров – на уровне лучших сетей группы ResNet.

MixNet – усовершенствованный потомок от MobileNet: отличные результаты при минимальном количестве параметров сети.

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

10. Группа сетей трансформеров BeiT/CaiT/DeiT/PiT/CoaT/LeViT/ConViT/Twins

BeiT – сети класса двунаправленного кодировщика от Image Transformers, показали неплохие результаты, заняв 7ое место в данном рейтинге, но количество параметров в этих сетях, конечно, очень велико (325 млн. параметров) для лидера.

CaiT –  сети классификации с блоками внимания и Image Transformers с небольшим количеством параметров показали результаты, сопоставимые с группой ResNet.

DeiT – архитектура сетей класса небольших Vision Transformer, которые не требуют долгого обучения и многомиллионных данных, проиграли BeiT архитектуре.

PiT Vision Transformer (PiT) модели с применением пулинга (Pooling) – достаточно небольшие, однако, дали хорошие результаты.

CoaT, Co-scale conv-attention Transformers - классификатор изображений на основе Transformer с небольшим количеством параметров. Несмотря не средние результаты, возможно, стоит посмотреть на эту группу сетей. Так как количество параметров в них меньше, чем в CaiT, но результаты лучше.

Twins - архитектура сетей, которая содержит в себе блоки внимания.

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

ConViT — гибридная сеть, представленная как конкурент сети DeiT.

11. Группа сетей ViT (Visual Transofrmer)

ViT (Visual Transofrmer) — архитектура  Трансформера, предварительно обученного на больших объемах данных. Тестировалась на различных датасетах изображений среднего и малого размера, стала лидером нашего рейтинга и заняла практически весь пьедестал в задаче Топ-5.

12. Группа сетей ConvNeXt

Современная архитектура ConvNeXt, разработанная как конкурентная альтернатива Трансформерам, при этом не уступающая им в точности и масштабируемости.

13. Группа сетей ResMLP/MLP-Mixer

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

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

MLP-Mixer – группа сетей, которая основана на многослойных персептронах и обучена на больших наборах данных, и заняла достойное место в данном рейтинге, не сильно уступив при этом ResMLP.

Результаты сопоставимы с другими группами сетей, в том числе, сетями Vision Transformer.

14. Группа сетей NFNet-F

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

15. Группа сетей EfficientNet

Целый класс моделей, полученные с помощью автоматического поиска архитектур.

Очень популярная архитектура и представлена в виде двух графиков.

подгруппа “30 лучших”

подгруппа “Остальные”

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

16. Прочие предобученные модели сетей

VovNet – архитектура, предложенная для задач сегментации объектов.

HRNet – архитектура, рассчитанная на изображения с высоким разрешением и задач детекции и сегментации объектов.

Результаты рейтинга архитектур

Была составлена таблица лидеров из каждой группы сетей.

Вы можете провести самостоятельный дополнительный сравнительный анализ архитектуры. Я выложил файл с результатами сравнения в публичный репозиторий на GitFlic.

Выводы проведенного исследования

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

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

Какая же из предобученных сетей оказалась самой лучшей? Смотрим:

1) График лидеров в задаче Топ-1:

2) График лидеров в задаче Топ-5:

Из полученных данных я сделал вывод, что по точности победила предобученная модель из группы EfficientNet (Топ-1).

По полноте (Топ-5) и корректности полученных признаковых описаний первое место уверенно заняли сети из группы ViT (Visual Transformer).

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

Эксперт по Машинному обучению в IT-компании Lad.

Комментарии (12)


  1. segra
    18.05.2022 13:47

    Почему точность результатов на ваших графиках существенно ниже опубликованных авторами сетей?

    Например, по базе CoCa максимальная точность 91% для топ 1 https://paperswithcode.com/sota/image-classification-on-imagenet, а у вас меньше 30%.


    1. red_elk
      18.05.2022 15:15

      Вероятно потому что 91% это заявленная точность на ImageNet (1000 классов), а автор тестировал на другом датасете из 8000+ классов. Не очень понятно только откуда взялся этот датасет и почему top-1 accuracy выше чем top-5. По идее должно быть наоборот.


      1. UtrobinMV Автор
        18.05.2022 17:43

        Спасибо за комментарий.

        Действительно, датасет использовался не ImageNet, а другой. Используемый для конкретной практической задаче классификации.

        топ5 метрика в моей задаче не может быть выше топ1. Так как она разделена на 5.

        топ5 - условно означает, сколько из первые 5 ближайших векторов эталонных картинок относятся к такому же классу. Где 1 - это все 5, и 0.2 если только 1 из 5.


      1. segra
        18.05.2022 17:58

        Очевидно, что при увеличении количества классов точность уменьшается, но различие очень велико. Например, если взять подмножество ImageNet из 100 наиболее частотных классов (сократить мощность в 10 раз) и сеть EfficientNet-B4, то точность по топ 1 возрастает с 83% до 89%.


        1. UtrobinMV Автор
          18.05.2022 18:58

          Спасибо, за комментарий.

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

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


          1. segra
            19.05.2022 18:04

            Оценивалась точность по ImageNet, метод измерения такой же как на 1 графике вашей статьи.

            Как сопоставлять ваши результаты с чужими?


            1. UtrobinMV Автор
              19.05.2022 21:39

              Суть исследования в том, чтобы сравнить большое количество архитектуры между собой. Данное исследования является самодостаточным, и не требует прямого сравнения с другими исследования. Хотя, кто то другой, может провести такое сравнение. Почему бы и нет!

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

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

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


              1. segra
                19.05.2022 22:20

                Просто непонятно:

                1. Были ли ошибки при измерениях?

                2. Почему у вас получились низкие точности при измерении Топ 1? В чём особенность тестовых данных?

                3. Почему не коррелируют места сетей для Топ 1 и Топ 5 как в других исследованиях?

                4. Какая версия EfficientNet?


                1. UtrobinMV Автор
                  19.05.2022 22:31

                  1) Я не понимаю о каких ошибках вы говорите. Весь процесс проходил автономно путём перебора, и если в процессе анализа вываливалась ошибка например из за недостаточности памяти. Сеть просто не бралась в расчет. Но тогда вы и не найдете эту Сеть в рейтинге.

                  2) Что значит низкие. Есть сети которые показали высокую точность, есть те которые показали низкую. Все приведено в графиках.

                  3) Почему же не коррелируют. Некоторые сети вполне неплохо коррелируют. Хотя да лидеры немного разные. Но сильных выпадов нет.

                  4) Я привел полное описание и название сетей. В статье указано из какой библиотеки взяты сети.


                  1. segra
                    20.05.2022 19:15

                    1. Возможна опечатка при программировании;

                    2. Низкие по сравнению с результатами авторов сетей. В чём причины?

                    3. Для первых 3 мест этого не наблюдается на графиках лидеров в отличие от результатов на https://paperswithcode.com;

                    4. В статье по EfficientNet используются другие обозначения для вариантов сетей.


  1. Arseny_Info
    19.05.2022 01:35

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

    На чем основано такое утверждение?


    1. UtrobinMV Автор
      19.05.2022 12:13

      Спасибо за комментарий!

      Да это лишь мое предположение. Вы знаете работы которые это подтверждают, или опровергают?

      Но по факту мне в практической задаче хватило и косинусной близости. т.е. я полностью отказался от дообучения модели. Так как полученной точности оказалось достаточно для решения моей задачи.