Entdecken Sie, wie Focal Loss die Unausgewogenheit der Klassen bei der Objekterkennung behebt, indem es das Training auf schwierige Beispiele konzentriert, um die Genauigkeit in unausgewogenen Datensätzen zu verbessern.
Focal Loss ist eine spezielle Zielfunktion, die vor allem bei Computer-Vision-Aufgaben eingesetzt wird, um das Problem des extremen Klassenungleichgewichts während des Modelltrainings zu lösen. Sie ist besonders wertvoll in Objekterkennungsszenarien, in denen die Anzahl der Hintergrundbeispiele (negative Samples) die Anzahl der interessierenden Objekte (positive Samples) bei weitem übersteigt. Durch die dynamische Skalierung der jedem Sample zugewiesenen Strafe gewichtet Focal Loss „einfache” Beispiele – diejenigen, die das Modell bereits mit hoher Sicherheit klassifizieren kann – effektiv herunter Beispiele – also solche, die das Modell bereits classify hoher Sicherheit classify kann – und zwingt den Optimierungsprozess, sich auf „schwierige” Beispiele zu konzentrieren, die schwer zu classify sind. Dieser gezielte Ansatz verhindert, dass die große Anzahl einfacher Negativbeispiele das Trainingssignal überlagert, und verbessert so die Genauigkeit des Modells bei seltenen, aber kritischen Objekten.
In vielen Deep-Learning-Anwendungen (DL), insbesondere bei einstufigen Objektdetektoren, umfasst der Trainingsprozess die Auswertung Tausender potenzieller Positionen in einem Bild. Die meisten dieser Positionen enthalten keine Objekte und lassen sich leicht als Hintergrund identifizieren. Standardfunktionen wie Cross-Entropy Loss behandeln alle Fehlklassifikationen gleich. Infolgedessen kann der kumulierte Fehler aus Tausenden von einfachen Hintergrundbeispielen das Signal der wenigen schwierigen positiven Beispiele überlagern, was zu einem Modell führt, das zur Mehrheitsklasse hin verzerrt ist.
Focal Loss modifiziert die Standardverlustberechnung durch Einführung eines Fokussierungsparameters, der typischerweise als Gamma ($\gamma$) bezeichnet wird. Mit steigender Wahrscheinlichkeit der richtigen Klasse (d. h. wenn das Beispiel „einfach” ist) reduziert der Modulationsfaktor den Verlustbeitrag auf nahezu Null. Umgekehrt bleibt der Verlust bei falsch klassifizierten oder unsicheren Beispielen („schwierigen” Fällen) erheblich. Dieser Mechanismus stellt sicher, dass der Optimierungsalgorithmus die Modellgewichte auf der Grundlage der Beispiele aktualisiert, die tatsächlich verbessert werden müssen, anstatt einfach nur zu validieren, was das Modell bereits weiß.
Die Fähigkeit, mit unausgewogenen Datensätzen umzugehen, macht Focal Loss zu einem Eckpfeiler moderner KI-Lösungen in sicherheitskritischen und hochpräzisen Bereichen.
Die ultralytics Die Bibliothek enthält optimierte Implementierungen von Verlustfunktionen zur Unterstützung des Trainings
modernster Modelle wie YOLO26Während das Training auf hohem Niveau
über das UltralyticsEntwickler können
auf bestimmte Verlustkomponenten für benutzerdefinierte Pipelines zugreifen.
Das folgende Beispiel zeigt, wie man Focal Loss initialisiert und den Fehler zwischen Vorhersagewerten und
Zielkennzeichnungen mithilfe der ultralytics Dienstprogramm-Paket.
import torch
from ultralytics.utils.loss import FocalLoss
# Initialize Focal Loss with a standard gamma value
# Gamma=1.5 aggressively down-weights easy examples
criterion = FocalLoss(gamma=1.5)
# Example: Predictions (logits) and binary Ground Truth labels
predictions = torch.tensor([[0.8], [-1.5], [0.1]], requires_grad=True)
targets = torch.tensor([[1.0], [0.0], [1.0]])
# Calculate the loss
loss = criterion(predictions, targets)
print(f"Computed Focal Loss: {loss.item():.4f}")
Zu verstehen, wie Focal Loss in das Gesamtbild der Fehlermessung passt, ist hilfreich für die Auswahl der richtigen Trainingsstrategie.