Многоклассовая классификация изображений животных. 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 |
| Размер | Accuracy |
|---|---|
| 224 | ~0.85 |
| 384 | 0.831 |
Вывод: Увеличение размера ухудшило результат из-за недостатка эпох.
| 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 |
| Конфигурация | Accuracy | Precision | Recall | F1 |
|---|---|---|---|---|
| Base | 0.387 | 0.454 | 0.387 | 0.391 |
| Large head | 0.290 | 0.360 | 0.290 | 0.300 |
Причина: Отсутствие предобучения и шум в данных, да и сама архитектура была довольно маленькой, в сравнении с прошлой моделью
| Конфигурация | 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%)
- Основной прирост дал более сложный классификатор (голова модели)
- Изменение гиперпараметров и данных не дало улучшения
- Предобученные модели значительно лучше обучаемых с нуля
Причины:
- шумный датасет
- большое количество классов
- ограниченное число эпох
Трансформеры лучше справляются с задачей классификации при большом числе классов. Качество данных оказывает сильное влияние на результат. Усложнение модели без улучшения данных не всегда приводит к росту качества.