![](https://habrastorage.org/getpro/habr/upload_files/dea/b24/df5/deab24df5bee026e23a72b1f423c7cf9.jpg)
Думаю, вы знакомы с графиками сравнения точности архитектур. Их применяют в задачах по классификации изображений на ImageNet.
В каждом сравнении которые я мог встретить ранее в Интернете, как правило это было сравнение небольшого количества архитектур нейросетей, произведенными разными командами, и возможно в разных условиях.
Кроме того в последнее время я наблюдаю изменения: появилось большое количество архитектур. Однако их сравнений с ранее созданными архитектурами я не встречал, либо оно было не столь масштабным.
Мне захотелось столкнуть большое количество существующих архитектур для решения одной задачи, при этом объективно посмотреть как поведут себя новые архитектуры типа Трансформер, так и ранее созданные архитектуры.
![](https://habrastorage.org/getpro/habr/upload_files/bc8/aad/28e/bc8aad28eef30bc1691eb1195291181e.png)
Цель исследования
Сравнить большое количество существующих архитектур предобученных сетей, и их результаты для решения задачи классификации изображений.
Содержание
Моя задача
Анализ результатов
Группа сетей 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
Наверное, одна из старейших архитектур в данном рейтинге.
![](https://habrastorage.org/getpro/habr/upload_files/0eb/f80/888/0ebf808886c30cff2ebb40c8f9823fda.png)
Лидером здесь стала сеть RepVGG-B1 — это одна из моделей классификации изображений RepVGG, предварительно обученная на наборе данных ImageNet. RepVGG – это улучшенная, более глубокая модель VG, выпущенная в 2021 году.
2. Группа сетей DenseNet
Достаточно известная архитектура, которая очень хорошо себя показывает в различных задачах, не оказалась и здесь без внимания.
![](https://habrastorage.org/getpro/habr/upload_files/581/14f/f86/58114ff86ac92dfc57b0f412f5a5e0da.png)
В это группе первое место заняла архитектура с большим количеством параметров
3. Группа сетей ResNet
Самая большая группа, одной из популярнейших сетевых архитектур. Представлена в виде двух графиков.
подгруппа “30 лучших”.
![](https://habrastorage.org/getpro/habr/upload_files/448/845/c16/448845c166c1d8678e76dbe2d40779a2.png)
подгруппа остальных сетей.
![](https://habrastorage.org/getpro/habr/upload_files/004/12c/c41/00412cc4164512b5113ebefb348087cd.png)
В данной группе в лидеры выбрались архитектуры с большим количеством параметров и обученные на большем количестве классов. В лидерах архитектура ResNetV2 обученная на 21 тысяче классов и с использованием технологии Big Transfer. При этом посмотреть на распределение очков внутри группы тоже достаточно интересно. Например resnet18 показала себя очень достойно, что для меня оказалось сюрпризом, а resnet26d попала в топ10 по группе
4. Группа сетей ResNeXt
![](https://habrastorage.org/getpro/habr/upload_files/0ff/03e/da0/0ff03eda06b03edf0acb5d8ede48e57a.png)
Другая реализация архитектуры ResNet с увеличенной мощностью не показала существенной разницы.
5. Группа сетей ReXNet/ResNeSt/Res2Net
![](https://habrastorage.org/getpro/habr/upload_files/859/190/abf/859190abf9bbf0bf611b0728bf36d8dd.png)
ReXNet– достаточно интересная группа сетей с уменьшенным количеством параметров. Показала неплохие результаты, заняв 13 место в итоговом рейтинге архитектур. Притом, что rexnet_130 (при меньшем количествое параметров (7.5 млн) показало более высокое качество, чем rexnet_200
ResNeSt – реализация сети ResNet с блоками внимания между ветвями, показала неплохие результаты, так как результаты оказались в целом лучше чем у аналогичных архитектур ResNet без таких блоков.
Res2Net – реализация сети заточенная под задачи поиска объектов в разных масштабах и задачах сегментации, точности в приведённой задаче показала одни из худших результатов.
6. Группа сетей RegNet
![](https://habrastorage.org/getpro/habr/upload_files/fe4/659/c8e/fe4659c8e3bb4837de8f7828ab831b90.png)
Группа небольших по количеству параметров сетей как последовательное развитие сетей ResNet показывают очень хорошую точность, так как качество в целом оказалось лучше чем у сетей архитектуры ResNet.
7. Группа сетей Inception/Xception
![](https://habrastorage.org/getpro/habr/upload_files/261/d81/c55/261d81c558ebd1d3361e62d122a6c380.png)
Архитектуры Inception и её модификация Xception оказались в числе отстающих в данной задаче.
Внимание привлекла сеть gluon_xception65, которая, по сравнению xception65, показала существенное улучшение качества. Веса этой модели были перенесены из Gluon.
8. Группа сетей MNASNet/NASNet/PnasNet/SelecSLS/DLA/DPN
![](https://habrastorage.org/getpro/habr/upload_files/b1a/556/db9/b1a556db9a815529cfc2afcb2c34172f.png)
Я объединил различные архитектуры сети в эту группу, чтобы можно было сравнить.
SelecSLS – архитектура нейронной сети, предложенная в качестве использования к задаче 3D-захвата движения людей в реальном времени. В задаче классификации показала себя на уровне сетей ResNet.
DLA – архитектура сети глубокой агрегации, имеет иерархические структуры объединения слоев, повышает распознавание объектов. Схожее качество с SelecSLS.
DPN – двойные сети классификации изображений, оказались в списке отстающих по точности.
NASNet архитектура нейронных сетей, оптимизирована с точки зрения производительности
При этом в данной группе, выиграла архитектура NASNet, с небольшим количеством параметров, лучшая в данной группе spnasnet_100, насчитывает всего 4 млн параметров, что более чем в 6 раз меньше, чем в resnet50. Полученная точность существенно выше.
9. Группа сетей MobileNet/MixNet/HardCoRe-NAS
![](https://habrastorage.org/getpro/habr/upload_files/1dc/733/019/1dc73301948fc78a24e83ad6dba7b51f.png)
MobileNet – очень популярная группа сетей, оптимизированная для мобильных устройств, показала просто выдающиеся результаты! Сеть mobilenetv2_140 с 6 млн. параметров – на уровне лучших сетей группы ResNet.
MixNet – усовершенствованный потомок от MobileNet: отличные результаты при минимальном количестве параметров сети.
HardCoRe-NAS – группа сетей, полученная в результате автоматического поиска оптимальных архитектур, с малым количеством параметров, но при этом показывающая стабильную и хорошую точность на нашей классификационной задаче.
10. Группа сетей трансформеров BeiT/CaiT/DeiT/PiT/CoaT/LeViT/ConViT/Twins
![](https://habrastorage.org/getpro/habr/upload_files/150/310/a3b/150310a3baa4e06bbe14d2eacbb1b99a.png)
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)
![](https://habrastorage.org/getpro/habr/upload_files/0c3/fe8/e5a/0c3fe8e5a4fcff351b62ad48b07ccfab.png)
ViT (Visual Transofrmer) — архитектура Трансформера, предварительно обученного на больших объемах данных. Тестировалась на различных датасетах изображений среднего и малого размера, стала лидером нашего рейтинга и заняла практически весь пьедестал в задаче Топ-5.
12. Группа сетей ConvNeXt
![](https://habrastorage.org/getpro/habr/upload_files/19b/d99/2a3/19bd992a38b1bed826fd41b06777bb7f.png)
Современная архитектура ConvNeXt, разработанная как конкурентная альтернатива Трансформерам, при этом не уступающая им в точности и масштабируемости.
13. Группа сетей ResMLP/MLP-Mixer
Группы сетей, полностью построенные на многоуровневых персептронах для классификации изображений.
![](https://habrastorage.org/getpro/habr/upload_files/661/dc9/236/661dc9236e4f6857c760796304b0d00e.png)
ResMLP – очень интересная архитектура сетей, при этом показала хорошие результаты в данной задаче классификации, и заняла 5 место в данном рейтинге архитектур.
MLP-Mixer – группа сетей, которая основана на многослойных персептронах и обучена на больших наборах данных, и заняла достойное место в данном рейтинге, не сильно уступив при этом ResMLP.
Результаты сопоставимы с другими группами сетей, в том числе, сетями Vision Transformer.
14. Группа сетей NFNet-F
![](https://habrastorage.org/getpro/habr/upload_files/f84/0ad/c2d/f840adc2d57cd1d90171ae72f90d73e0.png)
Модели для распознавания крупномасштабных изображений без необходимости нормализации показали плохие результаты по отношению к количеству используемых параметров.
15. Группа сетей EfficientNet
Целый класс моделей, полученные с помощью автоматического поиска архитектур.
Очень популярная архитектура и представлена в виде двух графиков.
подгруппа “30 лучших”
![](https://habrastorage.org/getpro/habr/upload_files/01a/b2a/5b7/01ab2a5b770d9366a7469260cff9ace7.png)
подгруппа “Остальные”
![](https://habrastorage.org/getpro/habr/upload_files/af9/bbb/3ea/af9bbb3ea96b7293048150c01f35487b.png)
Данные модели имеют в задаче очень большой разброс по точности, однако, лучшая модель все же оказалась в этой группе. Лучшие модели также обучались на классификационных задачах с 21 тыс. классов.
16. Прочие предобученные модели сетей
VovNet – архитектура, предложенная для задач сегментации объектов.
![](https://habrastorage.org/getpro/habr/upload_files/6b4/f0e/cf8/6b4f0ecf8ba4145755fdddbdbfbee134.png)
HRNet – архитектура, рассчитанная на изображения с высоким разрешением и задач детекции и сегментации объектов.
Результаты рейтинга архитектур
Была составлена таблица лидеров из каждой группы сетей.
![](https://habrastorage.org/getpro/habr/upload_files/edb/8f0/d9b/edb8f0d9bce1176d358cec292e24a927.png)
Вы можете провести самостоятельный дополнительный сравнительный анализ архитектуры. Я выложил файл с результатами сравнения в публичный репозиторий на GitFlic.
Выводы проведенного исследования
Действительно, в задачах классификации изображений в последнее время появилось очень большое количество новых архитектур, часть из которых требует пристального внимания.
Видно, что трансформеры присутствуют достаточно уверенно в задачах компьютерного зрения, при этом есть как большие сети Трансформеров с сотнями миллионов параметров, так и небольшие, по размеру сопоставимые с небольшими архитектурами.
Какая же из предобученных сетей оказалась самой лучшей? Смотрим:
1) График лидеров в задаче Топ-1:
![](https://habrastorage.org/getpro/habr/upload_files/06b/2e1/187/06b2e11872580eb13e899bd105b90415.png)
2) График лидеров в задаче Топ-5:
![](https://habrastorage.org/getpro/habr/upload_files/ce9/af3/e28/ce9af3e289b8a52c7d04656f1df0b7cb.png)
Из полученных данных я сделал вывод, что по точности победила предобученная модель из группы EfficientNet (Топ-1).
По полноте (Топ-5) и корректности полученных признаковых описаний первое место уверенно заняли сети из группы ViT (Visual Transformer).
На проведение данного исследования, и анализ результатов, в общем и целом у меня ушло около недели рабочего времени. Надеюсь, что данные труды будут полезны и вам!
Эксперт по Машинному обучению в IT-компании Lad.