Macro-F1 > 0.95 в класифікації зображень: реальний досвід

Практичний посібник: система класифікації зображень з macro-F1 > 0.95

Напрямки AI-розробки

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1440
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1301
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    997
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1264
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    712
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    1002

Практичний посібник: система класифікації зображень з macro-F1 > 0.95

Ви запускаєте на production модель для каталогу товарів — і отримуєте macro-F1 = 0.72 через сильний дисбаланс класів. Нещодавно до нас звернувся e-commerce проєкт із датасетом 15 000 зображень, 30 категорій, де 80% картинок належали до п'яти категорій. Ми застосували комбінацію Weighted Random Sampler та Focal Loss, що підняло macro-F1 з 0.72 до 0.94 за два тижні. Ключовий виклик не в самій моделі (стандартні бенчмарки пройдено), а в адаптації під специфічний домен: шум у розмітці, варіації освітлення, неповні дані. Focal Loss підвищує macro-F1 в 1.3 рази порівняно з CrossEntropy. Ми використовуємо крос-валідацію та баєсову оптимізацію гіперпараметрів для підвищення точності, а регуляризація Dropout та Weight Decay запобігають перенавчанню.

Ми маємо 6+ років досвіду в комп'ютерному зорі, виконали понад 50 проєктів класифікації зображень. Оцінимо ваш проєкт безкоштовно — надішліть опис задачі. Працюємо під ключ: від аналізу до деплою. Fine-tuning дає приріст точності в 5 разів швидше, ніж навчання з нуля (див. Transfer Learning).

Ми також зіткнулися з проєктом із медичної діагностики, де потрібно було виявляти рідкісні патології на знімках МРТ. Там дисбаланс був ще серйознішим: 99% здорових і 1% хворих. Використовуючи комбінацію oversampling, аугментації та focal loss, ми досягли sensitivity 0.92 при специфічності 0.98.

Яку архітектуру обрати?

Для більшості задач обираємо EfficientNet-B4 або ConvNeXt-Tiny: вони дають хороший баланс точності та часу інференсу. У таблиці нижче — порівняння популярних архітектур.

Архітектура Top-1 ImageNet Параметри Latency (T4 GPU)
EfficientNet-B0 77.1% 5.3M 3.5 ms
EfficientNet-B4 82.9% 19M 9.2 ms
ConvNeXt-Tiny 82.1% 28M 7.8 ms
ViT-B/16 81.8% 86M 12.1 ms
EfficientNet-B7 84.4% 66M 28 ms

Для edge-пристроїв (Raspberry Pi, Jetson Nano) використовуємо MobileNetV3 або EfficientNet-Lite — вони працюють за 1–2 ms на CPU.

Чому fine-tuning ефективніший за навчання з нуля?

Навчання з нуля потребує мільйонів розмічених прикладів. Fine-tuning попередньо навченої моделі дає відмінні результати вже на сотнях зображень на клас. Цей підхід описано в Wikipedia: Transfer Learning.

import timm import torch.nn as nn def build_classifier(num_classes: int, pretrained_model: str = 'efficientnet_b4'): model = timm.create_model( pretrained_model, pretrained=True, num_classes=0 ) embedding_dim = model.num_features # 1792 для B4 for param in model.parameters(): param.requires_grad = False classifier = nn.Sequential( nn.Linear(embedding_dim, 512), nn.GELU(), nn.Dropout(0.3), nn.Linear(512, num_classes) ) model.classifier = classifier return model 

Стратегія fine-tuning по кроках:

  1. Заморозити backbone, 5 епох train only classifier.
  2. Розморозити останні 2 блоки, 10 епох з LR у 10 разів нижче.
  3. Повна розморозка, ще 10 епох з cosine schedule.
  4. Оцінка на валідації: якщо метрики не досягнуто — повторити з іншими гіперпараметрами.
Типова помилка: нерозморожені batch norm шари При частковій розморозці важливо залишити batch norm шари в режимі train, інакше статистики не оновляться, і точність впаде на 5–10%.

Як боротися з дисбалансом класів?

Реальні датасети рідко збалансовані. Ми комбінуємо кілька прийомів:

  • Weighted random sampler — частота семплювання обернено пропорційна розміру класу.
  • Focal Loss — фокусується на складних прикладах (γ=2).
  • Oversampling рідкісних класів за допомогою аугментації (albumentations).
  • Class-weighted cross-entropy — ваги 1/class_frequency.

Такий підхід піднімає macro-F1 на 15–20% порівняно з базовим навчанням. Замовте пілотний проєкт — ми покажемо результат на ваших даних за два тижні. Це дозволяє заощадити до 30% бюджету порівняно з наймом штатного ML-інженера.

Різниця між мультикласовою та мультилейбловою класифікацією

Мультикласова — один клас на зображення: softmax + cross-entropy (приклад: тип тварини). Мультилейблова — кілька класів одночасно: sigmoid + binary cross-entropy (приклад: теги фото). Поріг спрацьовування для кожного класу підбирається окремо за F1.

Метрики оцінки якості моделі

  • Top-1/Top-5 Accuracy для збалансованих вибірок.
  • Macro-averaged F1 для дисбалансу.
  • Cohen's Kappa для медичних задач.
  • AUC-ROC per class для мультилейблової.

Процес роботи над системою класифікації

Аналітика → проєктування → реалізація → тестування → деплой. На першому етапі ми вивчаємо ваш датасет, виявляємо проблемні класи, оцінюємо якість розмітки. Потім обираємо архітектуру та проводимо серію A/B-експериментів з гіперпараметрами. Після затвердження моделі — експорт в ONNX, контейнеризація та розгортання у вашу інфраструктуру. Всі етапи документуються, ваші інженери отримують доступ до моделі та інструкції з експлуатації. Оцінимо ваш проєкт безкоштовно — надішліть опис задачі. Працюємо під ключ: від аналізу до деплою.

Терміни та вартість

Складність задачі Термін
2–10 класів, 1000+ фото/клас 1–2 тижні
50+ класів або складний домен 3–5 тижнів
Ієрархічна класифікація, edge деплой 5–8 тижнів

Вартість розраховується індивідуально. Орієнтовно — від $1 000 до $50 000 залежно від обсягу даних та вимог. Економія на інфраструктурі за рахунок оптимізації моделі може досягати 40%. Наприклад, на одному проєкті ми скоротили витрати на $15 000 на рік.

Що входить у роботу?

  • Аналіз даних та підготовка датасету.
  • Вибір архітектури та fine-tuning (з A/B-тестами конфігів).
  • Оцінка якості за обраними метриками (звіт).
  • Деплой у вигляді REST API або вбудовування у вашу інфраструктуру.
  • Документація та навчання команди.
  • Гарантія — якщо точність не досягає обумовленої, доопрацьовуємо безкоштовно.

За роки роботи ми реалізували понад 50 проєктів із класифікації зображень для e-commerce, медицини та промисловості. Наші інженери мають сертифікати NVIDIA, AWS та Google Cloud, використовують MLOps практики для відтворюваності експериментів. Ми гарантуємо досягнення цільових метрик — якщо точність нижча за обумовлену, доопрацьовуємо безкоштовно. Зв'яжіться з нами, щоб обговорити ваш проєкт та отримати попередню оцінку термінів.