Sobes.tech
Middle

Vai ir nepieciešams veikt paraugu, kas ir tuvu realitātei, vai ar vienādu klases līdzsvaru, apmācot YOLO retu objektu noteikšanai?

sobes.tech AI

Atbilde no AI

Veicot YOLO apmācību, lai atpazītu retus objektus, ir svarīgi ņemt vērā klases līdzsvaru, taču pieeja ir atkarīga no uzdevuma un datiem. Ja tiek izmantots paraugu ņemšana, kas ir tuva faktiskajai sadalījumam (t.i., ar dabisku nelīdzsvarotību), modelis var slikti iemācīties atpazīt retās klases, jo trūkst piemēru.

Tāpēc bieži tiek izmantotas līdzsvarošanas tehnikas, piemēram, paraugu ņemšana ar vienādu piemēru skaitu katrai klasei vai datu palielināšanas metodes retajām klasēm. Tas palīdz modelim labāk izcelt retos objektus.

Tomēr pārmērīga mākslīga līdzsvarošana var novest pie pārmācības retajās klasēs un pasliktināt kopējo veiktspēju.

Optimālā pieeja ir apvienot klases līdzsvaru, ņemot vērā faktiskās sadalījuma, piemēram, izmantojot svariem svaru funkcijas vai fokusa zaudējumu (focal loss), kas samazina bieži sastopamo klases ietekmi un pievērš uzmanību retajām.

Piemērs, izmantojot svara paraugu ņemšanu:

# Piemērs pseido-koda, kā līdzsvarot klases
from torch.utils.data import WeightedRandomSampler

class_sample_counts = [1000, 100, 50]  # katras klases piemēru skaits
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)

# Izmantot sampler DataLoader