Focal Loss ist eine Verlustfunktion, die im Deep learning zum Trainieren von neuronalen Netzen für Aufgaben mit starkem Klassenungleichgewicht verwendet wird, wie etwa der Objekterkennung in Bildern. Sie modifiziert die standardmäßige Kreuzentropie-Verlustfunktion, indem sie einen Modulationsfaktor hinzufügt, der den Verlustbeitrag gut klassifizierter Beispiele reduziert. Dadurch kann sich das Modell auf schwierige, falsch klassifizierte Beispiele konzentrieren. Dieser Ansatz wurde 2017 von Tsung-Yi Lin, Priya Goyal, Ross Girshick, Kaiming He und Piotr Dollár im Paper „Focal Loss for Dense Object Detection“ eingeführt.
Das Kernproblem, das Focal Loss adressiert, ist das Ungleichgewicht zwischen Vorder- und Hintergrundklassen bei dichten Vorhersageaufgaben. In einem typischen Objekterkennungsbild ist die überwältigende Mehrheit der Kandidatenpositionen Hintergrund, und nur wenige enthalten Objekte. Die standardmäßige Kreuzentropie-Verlustfunktion kann von den zahlreichen einfachen Hintergrundbeispielen überwältigt werden, was dazu führt, dass das Modell dazu neigt, Hintergrund vorherzusagen und die seltenen Objektklassen zu vernachlässigen.
Mathematische Formulierung
Focal Loss baut auf der binären Kreuzentropie (CE) auf. Für eine binäre Klassifikation mit der vorhergesagten Wahrscheinlichkeit p für die wahre Klasse ist CE definiert als CE(p) = -log(p). Focal Loss führt einen Fokussierungsparameter Gamma (γ) und einen Gewichtungsparameter Alpha (α) ein. Die Formel lautet:
FL(p) = -α(1 - p)^γ log(p)
Hierbei ist (1 - p)^γ der Modulationsfaktor. Wenn p nahe 1 liegt (ein einfaches, gut klassifiziertes Beispiel), nähert sich dieser Faktor 0 an und reduziert den Verlust drastisch. Wenn p klein ist (ein schwieriges Beispiel), liegt der Faktor nahe 1 und erhält den Verlust. Der Parameter γ steuert, wie stark einfache Beispiele heruntergewichtet werden; typische Werte sind 2,0, wobei 0 der standardmäßigen Kreuzentropie entspricht. Der Alpha-Parameter balanciert die Bedeutung positiver und negativer Beispiele aus und wird oft als Klassenhäufigkeitsinverse gesetzt oder anhand eines Validierungssatzes abgestimmt.
Anwendung in der Objekterkennung
Die Hauptmotivation für Focal Loss war es, einstufige Detektoren in ihrer Genauigkeit an zweistufige Detektoren anzugleichen. Zweistufige Detektoren wie Faster R-CNN verwenden ein Regionsvorschlagsnetzwerk, um Kandidatenboxen zu filtern, was das Klassenungleichgewicht natürlich reduziert. Einstufige Detektoren wie YOLO und SSD bewerten alle Positionen direkt und sind mit einem viel größeren Ungleichgewicht konfrontiert. Focal Loss ermöglichte es einstufigen Detektoren, insbesondere RetinaNet, modernste Genauigkeit bei gleichbleibender Geschwindigkeit zu erreichen. RetinaNet, das im selben Paper vorgestellt wurde, verwendete ein Feature-Pyramid-Netzwerk und Focal Loss und übertraf frühere einstufige Detektoren und erreichte oder übertraf die Leistung zweistufiger Gegenstücke auf dem COCO-Datensatz.
Erweiterungen und Varianten
Seit seiner Einführung wurde Focal Loss an verschiedene Bereiche und Probleme angepasst. In der Machine learning-Forschung wurden Varianten für Mehrklassenklassifikation, semantische Segmentierung und medizinische Bildgebung vorgeschlagen. Bei dichten Vorhersageaufgaben mit mehreren Klassen wird der Verlust beispielsweise pro Klasse berechnet und summiert. Einige Arbeiten haben adaptive Gamma- oder Alpha-Werte untersucht, die während des Trainings gelernt werden. Focal Loss wurde auch auf Aufgaben der natürlichen Sprachverarbeitung angewendet, wie Textklassifikation mit unbalancierten Datensätzen, sowie auf große Sprachmodelle für Aufgaben wie die Erkennung benannter Entitäten, bei denen seltene Entitäten unterrepräsentiert sind.
Beziehung zu anderen Techniken
Focal Loss ist konzeptionell mit dem Hard Example Mining verwandt, bei dem der Trainingsprozess explizit schwierige Beispiele auswählt. Focal Loss ist jedoch eine glatte, differenzierbare Näherung, die alle Beispiele kontinuierlich gewichtet und keine expliziten Auswahlheuristiken erfordert. Es steht auch in Verbindung mit kosten sensitivem Lernen, bei dem die Fehlklassifikationskosten pro Klasse angepasst werden. Der Alpha-Parameter bietet eine Form der Kostensensitivität, während Gamma den Fokus auf schwierige Beispiele legt. In der Praxis wird Focal Loss oft mit Datenanreicherung und anderen Regularisierungstechniken kombiniert, um die Generalisierung weiter zu verbessern.
Praktische Überlegungen
Die Implementierung von Focal Loss erfordert eine sorgfältige Abstimmung von Gamma und Alpha. Ein üblicher Ausgangspunkt ist Gamma = 2 und Alpha = 0,25, wie im ursprünglichen RetinaNet-Paper verwendet. In der Praxis kann der Verlust für sehr kleine p-Werte instabil sein, daher fügen Implementierungen oft ein kleines Epsilon zum Logarithmus-Argument hinzu. Focal Loss ist in den wichtigsten Deep-Learning-Frameworks wie PyTorch und TensorFlow verfügbar, entweder über eingebaute Funktionen oder benutzerdefinierte Implementierungen. Es ist besonders effektiv, wenn das Klassenungleichgewicht extrem ist, wie bei der Objekterkennung mit Tausenden von Hintergrundboxen pro Bild, kann aber bei mildem Ungleichgewicht nur marginalen Nutzen bringen.
Siehe auch
Referenzen
Lin, T. Y., Goyal, P., Girshick, R., He, K., & Dollár, P. (2017). Focal loss for dense object detection. In Proceedings of the IEEE international conference on computer vision (pp. 2980-2988).