Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Лабораторная работа 1: CV (Unified Animals Dataset)

Задание на Пятерку (Проведение исследований с моделями классификации)

Многоклассовая классификация изображений животных. Github не позволит загрузить данные в 5гб, поэтому оставляю ссылку на первоисточник - https://www.kaggle.com/datasets/prentz/unified-animals-dataset

Применение:

  • мониторинг биоразнообразия
  • исследования
  • системы распознавания животных

Датасет

Источник: Kaggle (Unified Animals Dataset)
50 000+ изображений, 200+ классов

Особенности:

  • разная детализация классов (dog, dogs, породы)
  • сильное сходство между классами
  • шумные изображения
  • битые файлы
  • дисбаланс

Метрики

  • accuracy - недостаточна при дисбалансе
  • precision - показывает способность находить объекты
  • recall - контролирует ложные предсказания
  • f1-score - балансирует precision и recall

Базовый бейзлайн

Модели:

  • VGG16
  • Swin Transformer

Обучается только голова.

Результаты

Модель Accuracy Precision Recall F1-score
VGG16 0.593 0.658 0.593 0.583
Swin Transformer 0.851 0.855 0.851 0.845

Главные гипотезы для проверки

  • смена архитектуры - Попробуем вместо старой VGG skip Connection модель ResNet18
  • размер изображения - Попробуем увеличить размер изображения с 224 до 384 для трансформера
  • learning rate - Попробуем другой Lr так же для трансформера, может он станет точнее
  • большая голова - Вместо одного линейного слоя добавим батч норм, а так же сделаем голову глубже
  • аугментации - Добавим аугментацию данных

Эксперименты

Архитектура

Модель Accuracy F1
ResNet18 0.513 0.478
VGG16 0.598 0.591

Вывод: VGG16 лучше, дальнейшая работа ведется с ней.

Размер изображения (Swin)

Размер Accuracy
224 ~0.85
384 0.831

Вывод: Увеличение размера ухудшило результат из-за недостатка эпох.


Learning rate (Swin)

LR Accuracy
1e-4 ~0.85
1e-5 0.705

Вывод: Слишком маленький шаг обучения привел к недообучению.

Большая голова

Модель Accuracy F1
Swin 0.870 0.866
VGG16 0.599 0.591

Вывод: Лучший результат. Модель стала лучше разделять классы.

Аугментации

Модель Accuracy
VGG16 0.584
Swin 0.825

Вывод: Прироста нет, модели не успевают адаптироваться.

Финальный эксперимент

Модель Accuracy Precision Recall F1
Swin 0.830 0.860 0.830 0.827
VGG16 0.574 0.661 0.574 0.576

Вывод: Комбинация гипотез не дала прироста.

Собственные модели

Custom CNN

Конфигурация Accuracy Precision Recall F1
Base 0.387 0.454 0.387 0.391
Large head 0.290 0.360 0.290 0.300

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

Custom Transformer

Конфигурация Accuracy Precision Recall F1
Base 0.207 0.282 0.207 0.200
Large head 0.200 0.259 0.200 0.195

Причина: Трансформер плохо обучается с нуля на шумных данных.

Выводы

  • Лучшая модель - Swin Transformer с улучшенной головой (~87%)
  • Основной прирост дал более сложный классификатор (голова модели)
  • Изменение гиперпараметров и данных не дало улучшения
  • Предобученные модели значительно лучше обучаемых с нуля

Причины:

  • шумный датасет
  • большое количество классов
  • ограниченное число эпох

Заключение

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

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages