Sobes.tech
Middle

YOLO-ის სწავლებისას იშვიათი ობიექტების გამოვლენის დროს საჭიროა რეალობასთან ახლოს სემპლინგი ან კლასების თანაბარი ბალანსი?

sobes.tech AI

პასუხი AI-სგან

YOLO-ს იშვიათი ობიექტების გამოვლენისთვის სწავლებისას მნიშვნელოვანია კლასების ბალანსის გათვალისწინება, მაგრამ მიდგომა დამოკიდებულია დავალებაზე და მონაცემებზე. თუ გამოიყენება რეალურ განაწილებასთან ახლოს სემპლირება (ანუ ბუნებრივი დისბალანსით), მოდელი შეიძლება ცუდად ისწავლოს იშვიათი კლასების ამოცნობა, რადგან მაგალითების ნაკლებობაა.

ამიტომ ხშირად გამოიყენება ბალანსის ტექნიკები, მაგალითად, თითოეულ კლასზე თანაბარი რაოდენობის მაგალითებით სემპლირება ან მონაცემების გაზრდის მეთოდების გამოყენება იშვიათი კლასებისთვის. ეს ეხმარება მოდელს უკეთ გამოარჩიოს იშვიათი ობიექტები.

თუმცა, გადამეტებული ხელოვნური ბალანსი შეიძლება გამოიწვიოს გადამზადებაში და საერთო შესრულების გაუარესებაში.

საუკეთესო მიდგომა არის კლასების ბალანსის კომბინაცია რეალურ განაწილებასთან, მაგალითად, წონით დანაკარგის ფუნქციების ან focal loss-ის გამოყენებით, რომელიც ამცირებს ხშირი კლასების გავლენას და აქცენტს აკეთებს იშვიათ კლასებზე.

წონით სემპლირების მაგალითი:

# კლასების ბალანსისთვის псევდოკოდი
from torch.utils.data import WeightedRandomSampler

class_sample_counts = [1000, 100, 50]  # თითოეული კლასისთვის მაგალითების რაოდენობა
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-ში sampler-ის გამოყენება