Sobes.tech
Middle

YOLO ni detection qilishda haqiqiylikka yaqin yoki sinflar teng bo'lgan namunani olish kerakmi?

sobes.tech AI

AIdan javob

YOLO-ni kamufli qilish uchun o'qitishda, sinflar muvozanatini hisobga olish muhimdir, ammo yondashuv vazifa va ma'lumotlarga bog'liq. Agar haqiqiy taqsimotga yaqin namunalar tanlansa (ya'ni, tabiiy muvozanatsizlik bilan), model kam uchraydigan sinflarni tanib olishda yaxshi o'rganmasligi mumkin, chunki misollar yetishmaydi.

Shuning uchun, ko'pincha muvozanat texnikalari qo'llaniladi, masalan, har bir sinf uchun teng miqdordagi misollar bilan namunalar tanlash yoki kam uchraydigan sinflar uchun ma'lumotlarni kengaytirish usullaridan foydalanish. Bu modelga kam uchraydigan ob'ektlarni yaxshiroq ajratishga yordam beradi.

Ammo, ortiqcha sun'iy muvozanatlash modelning kam uchraydigan sinflarda ortiqcha moslashuviga va umumiy ishlashning yomonlashishiga olib kelishi mumkin.

Eng yaxshi yondashuv - haqiqiy taqsimotni hisobga olgan holda sinflar muvozanatini birlashtirish, masalan, og'irliklangan yo'qotish funksiyalarini yoki fokus yo'qotishni (focal loss) qo'llash, bu ko'p uchraydigan sinflarning ta'sirini kamaytiradi va kam uchraydiganlarga e'tibor qaratadi.

Og'irliklangan namunalar tanlash misoli:

# Sinflar muvozanatini ta'minlash uchun pseudokod misoli
from torch.utils.data import WeightedRandomSampler

class_sample_counts = [1000, 100, 50]  # har bir sinf uchun misollar soni
weights = 1. / torch.tensor(class_sample_counts, dtype=torch.float)
samples_weight = weights[labels]
sampler = WeightedRandomSampler(samples_weight, num_samples=len(samples_weight), replacement=True)

# DataLoader'da samplerni ishlatish