Hard Negative Mining
Zor negatif madenciliği, modelin pozitiflerle en çok karıştırdığı negatif örnekleri bulur ve eğitimi bunlara odaklar; algılama ve aramadaki yanlış pozitifleri azaltır.
Zor negatif madenciliği, bir modelin en çok hata yaptığı negatif örnekleri bulup öğrenmeyi bu örneklerde yoğunlaştıran bir eğitim stratejisidir. Negatif örnek hedef sınıfa ait değildir; zor negatif ise modelin hâlâ pozitif gibi puanladığı örnektir: algılayıcının nesne olarak sınırlayıcı kutu çizdiği bir arka plan parçası veya gömü modelinin sorgunun yanına yerleştirdiği alakasız bir görüntü. Negatiflerin çoğu kolaydır ve model bunları öğrendikten sonra neredeyse hiç öğrenme sinyali sağlamaz. Bu nedenle zor örnekleri seçmek karar sınırlarını keskinleştirir ve yanlış pozitifleri azaltır.
Zor Negatif Madenciliği Nasıl Çalışır#
Bir örneğin zor sayılıp sayılmaması göreve bağlıdır:
- Nesne algılamada, algılayıcının nesne olarak puanladığı bir arka plan bölgesi zor örnektir.
- Sınıflandırmada zor negatif, yanlış sınıfa ait olduğu hâlde hedef sınıf için yüksek güven puanı alan örnektir.
- Getirim ve öneri sistemlerinde, sorguya yakın sıralanan alakasız bir öğedir; ayrıca yüksek puanlı negatifler gradyan üzerinde en fazla etkiye sahiptir.
- Metrik öğrenmede, eşleşen pozitif örnekten daha yakında bulunan negatiftir; üçlü marj kaybı bu durumu cezalandırır.
Madencilik çevrimdışı veya çevrimiçi yapılır. Çevrimdışı madencilikte, eğitilmiş bir model yalnızca negatif örneklerden oluşan büyük bir veri havuzunda çalıştırılır, yanlış pozitifleri toplanır, eğitim kümesine eklenir ve model yeniden eğitilir. Klasik kayan pencere yaya algılayıcıları bu yöntemle eğitilirdi: kişi içermeyen görüntüler taranır, yanlış alarmlar bulunur ve model bunlarla yeniden eğitilirdi. Çevrimiçi madencilik ise her eğitim grubunun içinden zor örnekleri seçer. SSD, negatif varsayılan kutuları sınıflandırma kaybına göre sıralar ve yalnızca kaybı en yüksek olanları, her pozitif için en fazla 3 negatif olacak şekilde tutar. Çevrimiçi zor örnek madenciliği (OHEM) aynı fikri iki aşamalı algılayıcıların bölge önerilerine uygular. SSD seçimi birkaç satırda yapılabilir:
import torch
import torch.nn.functional as F
torch.manual_seed(0)
# Simulated objectness logits for 8,400 candidate boxes: 20 cover an object, the rest are background
logits = torch.randn(8400) - 3
labels = torch.zeros(8400)
labels[:20] = 1
loss = F.binary_cross_entropy_with_logits(logits, labels, reduction="none")
# Keep every positive plus only the highest-loss negatives, at most 3 per positive
positives = labels == 1
negative_loss = loss.masked_fill(positives, 0)
hard_negatives = negative_loss.topk(3 * int(positives.sum())).indices
kept = torch.cat([positives.nonzero().squeeze(1), hard_negatives])
print(f"boxes in the loss: {len(kept)} of {len(loss)}")
print(f"mean negative loss: all {loss[~positives].mean():.3f}, mined {loss[hard_negatives].mean():.3f}")Kayıp, 8.400 kutudan 80'ini tutar: 20 pozitif ve modelin nesneye en çok benzer puanı verdiği 60 negatif. Bu 60 madenciliği yapılmış negatifin ortalama kaybı 0.648'dir; 8.380 negatifin tümündeyse bu değer 0.075'tir. Böylece gradyan, modelin gerçekten karıştırdığı arka plan üzerinde yoğunlaşır.
Zor Negatif Madenciliği ve İlgili Teknikler#
- Negatif örnekleme: Tüm negatifler arasından, genellikle rastgele, yönetilebilir sayıda örnek seçer. Zor negatif madenciliği ise en çok kafa karıştıran örnekleri seçer.
- Odak kaybı: Her örneği kayba dahil eder, ancak doğru sınıflandırılan örneklerin ağırlığını azaltır. Bu sayede RetinaNet gibi tek aşamalı algılayıcılar, açık bir örnekleme yapmadan tüm aday kutularla eğitilebilir.
- Etkin öğrenme: Olası pozitifler de dahil olmak üzere, insan tarafından etiketlenecek belirsiz ve etiketsiz örnekleri seçer. Zor negatif madenciliği ise negatif olduğu zaten doğrulanmış örnekleri hedefler.
- Sınıf dengeleme: Eşit olmayan sınıf sıklıklarını alt örnekleme ve ağırlık artırma yoluyla düzeltir. Sık görülen bir negatif sınıfın zor olması şart değildir.
- Veri artırma: Mevcut örneklerin çeşitlerini oluşturur; veri kümesinde hiç bulunmayan, kafa karıştırıcı bir nesneyi ekleyemez.
Gerçek Dünya Uygulamaları#
- Depo güvenliği algılaması: Palet taşıyıcılarını, raf yansımalarını ve makaslı platformları tekrar tekrar forklift sanan bir algılayıcı, yanlış uyarılarla operatörlerin güvenini aşındırır. Bu sahneleri negatif görüntüler olarak toplamak ve modeli yeniden eğitmek, algılayıcıya forklifti benzer ekipmanlardan ayıran özellikleri öğretir.
- Görsel ürün arama: Belirli bir siyah koşu ayakkabısı için yapılan aramada diğer ürün serilerindeki benzer ayakkabılar çok üst sıralarda görünüyorsa, bu ürünler zor negatif hâline gelir. Bunlarla eğitim yapmak (örneğin bir Siamese ağının çapa-pozitif-negatif üçlülerindeki negatifler olarak kullanmak), gömme modeline taban biçimi, logo yerleşimi ve malzeme gibi ince farkları korumayı öğretir.
Çevrimdışı Madencilik İş Akışı#
Çevrimdışı madenciliğin her turunda mevcut model çalıştırılır, modelin işaretlediği örnekler doğrulanır ve doğrulanan örnekler yeniden eğitime dahil edilir:
İnceleme adımı önemlidir; çünkü bir "yanlış pozitif" çoğu zaman etiketleyicilerin gözden kaçırdığı gerçek bir nesnedir. Bunu negatif olarak eklemek, modele gerçek algılamaları bastırmayı öğretir. Ultralytics YOLO, etiket dosyası eksik veya boş olan bir eğitim görüntüsünü arka plan görüntüsü olarak ele alır. Böylece üzerindeki her çapa noktası sıfır hedef puanı alır ve oradaki her güvenilir tahmin cezalandırılır. Bu nedenle madencilikle bulunan negatifleri YOLO26 veri kümesine eklemek için görüntüleri etiketsiz olarak kopyalamak yeterlidir. İlerleme, aynı duyarlılık düzeyinde kesinliğin artmasıyla görülür; bu değişim tam test kümesinde ve zor negatiflerden oluşan özel bir alt kümede izlenir.
Yalnızca en zor negatiflerle eğitim yapmak ters tepebilir. FaceNet yüz gömme eğitimi sırasında en zor negatifleri erkenden seçmek, modeli her yüzü aynı noktaya eşleyecek biçimde çökertiyordu. Bu nedenle çalışmanın yazarları, pozitif örnekten daha uzakta ancak üçlü marjın içinde kalan yarı zor negatiflerle eğitim yaptı.










