Nadir nesnelerin tespiti için YOLO eğitirken gerçekliğe yakın bir örnekleme yapmak mı yoksa sınıf dengesini sağlamak mı gerekir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Nadir YOLO'yu nadir nesneleri tespiti için eğitirken, sınıf dengesini dikkate almak önemlidir, ancak yaklaşım görev ve verilere bağlıdır. Gerçek dağılıma yakın örnekleme kullanılırsa (yani doğal dengesizlikle), model nadir sınıfları yeterince örnek olmadığı için tanımakta zorlanabilir.
Bu nedenle, genellikle her sınıf için eşit sayıda örnek içeren örnekleme veya nadir sınıflar için veri artırma (data augmentation) yöntemleri kullanılır. Bu, modelin nadir nesneleri daha iyi ayırt etmesine yardımcı olur.
Ancak, aşırı yapay dengeleme, nadir sınıflarda aşırı uyuma (overfitting) ve genel performansın düşmesine yol açabilir.
En iyi yaklaşım, gerçek dağılımı dikkate alan sınıf dengesini birleştirmektir, örneğin, ağırlıklı kayıp fonksiyonları veya odaklanmış kayıp (focal loss) kullanmak, bu da sık görülen sınıfların etkisini azaltır ve nadir sınıflara odaklanır.
Ağırlıklı örnekleme kullanımı örneği:
# Sınıf dengesini sağlamak için örnek pseudocode
from torch.utils.data import WeightedRandomSampler
class_sample_counts = [1000, 100, 50] # her sınıf için örnek sayısı
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 sampler kullanmak