Softmax
Entdecken Sie die Softmax-Funktion in der KI. Erfahren Sie, wie sie Logits in Wahrscheinlichkeiten für die Mehrklassenklassifizierung mit Ultralytics und neuronalen Netzen umwandelt.
Softmax ist eine mathematische Funktion, die im Bereich der künstlichen Intelligenz eine zentrale Rolle spielt und insbesondere als letzter
Schritt in vielen Klassifizierungsalgorithmen dient. Sie wandelt einen Vektor aus Rohzahlen, oft als Logits bezeichnet, in einen Vektor aus
Wahrscheinlichkeiten um. Diese Umwandlung stellt sicher, dass die Ausgabewerte alle positiv sind und sich genau zu eins addieren, wodurch
effektiv eine gültige
Wahrscheinlichkeitsverteilung entsteht. Aufgrund dieser
Eigenschaft ist Softmax die Standard-Aktivierungsfunktion
, die in der Ausgabeschicht von
neuronalen Netzen verwendet wird, die für die Mehrklassenklassifizierung
konzipiert sind, bei der das System eine einzige Kategorie aus mehr als zwei sich gegenseitig ausschließenden Optionen auswählen muss.
Die Mechanik von Softmax
In einem typischen Deep-Learning-Workflow (DL) führen die
Schichten eines Netzwerks komplexe Matrixmultiplikationen und -additionen durch. Die Ausgabe der letzten Schicht vor der
Aktivierung besteht aus Rohwerten, die als
Logits bezeichnet werden. Diese Werte können von
negativer Unendlichkeit bis zu positiver Unendlichkeit reichen, was es schwierig macht, sie direkt als Konfidenzniveaus zu interpretieren.
Softmax löst dieses Problem durch zwei Hauptoperationen:
-
Potenzierung: Sie berechnet die Exponentialfunktion jeder eingegebenen Zahl. Dieser Schritt stellt sicher, dass alle
Werte nicht negativ sind (da $e^x$ immer positiv ist) und bestraft Werte, die deutlich unter dem
Maximum liegen, während die höchsten Werte hervorgehoben werden.
-
Normalisierung: Dabei werden diese exponierten Werte addiert und jeder einzelne Exponent durch diese
Gesamtsumme dividiert. Durch diesen Normalisierungsprozess werden die
Zahlen so skaliert, dass sie Teile eines Ganzen darstellen, sodass Entwickler sie als prozentuale Konfidenzwerte interpretieren können.
Anwendungsfälle in der Praxis
Die Fähigkeit, eindeutige Wahrscheinlichkeiten auszugeben, macht Softmax in verschiedenen Branchen und
Maschinelles Lernen (ML) -Aufgaben unverzichtbar.
-
Bildklassifizierung: In der Bildverarbeitung verwenden Modelle Softmax, um Bilder zu kategorisieren. Wenn beispielsweise
das Ultralytics ein Foto analysiert
, kann es Bewertungen für Klassen wie „Golden Retriever“, „Deutscher Schäferhund“ und
„Pudel“ Softmax wandelt diese Werte in Wahrscheinlichkeiten um (z. B. 0,85, 0,10, 0,05), die eine hohe
Wahrscheinlichkeit anzeigen, dass das Bild einen Golden Retriever enthält. Dies ist entscheidend für Anwendungen, die von der automatisierten Fotoorganisation
bis zur medizinischen Diagnose in der
KI im Gesundheitswesen reichen.
-
Natürliche Sprachverarbeitung (Natural Language Processing, NLP): Softmax ist die Engine hinter der Textgenerierung in
großen Sprachmodellen (Large Language Models, LLMs). Wenn ein
Modell wie ein Transformer einen Satz generiert,
sagt es das nächste Wort (Token) voraus, indem es für jedes Wort in seinem Vokabular eine Punktzahl berechnet. Softmax wandelt diese Punktzahlen
in Wahrscheinlichkeiten um, sodass das Modell das wahrscheinlichste nächste Wort auswählen kann, was eine flüssige
maschinelle Übersetzung und dialogorientierte KI ermöglicht.
-
Verstärkendes Lernen: Agenten im
verstärkenden Lernen verwenden häufig Softmax
zur Auswahl von Aktionen. Anstatt immer die Aktion mit dem höchsten Wert zu wählen, kann ein Agent die
Wahrscheinlichkeiten nutzen, um verschiedene Strategien zu erkunden und so Exploration und Exploitation in Umgebungen wie der Robotersteuerung
oder dem Spielen von Spielen auszugleichen.
Python Code Beispiel
Das folgende Beispiel zeigt, wie ein vortrainiertes
YOLO26-Klassifizierungsmodell geladen und auf die
über Softmax generierten Wahrscheinlichkeitswerte zugegriffen wird.
from ultralytics import YOLO
# Load a pre-trained YOLO26 classification model
model = YOLO("yolo26n-cls.pt")
# Run inference on a sample image
results = model("https://ultralytics.com/images/bus.jpg")
# The model applies Softmax internally. Access the top prediction:
# The 'probs' attribute contains the probability distribution.
top_prob = results[0].probs.top1conf.item()
top_class = results[0].names[results[0].probs.top1]
print(f"Predicted Class: {top_class}")
print(f"Confidence (Softmax Output): {top_prob:.4f}")
Unterscheidung von Softmax und verwandten Konzepten
Obwohl Softmax in Mehrklassen-Szenarien dominiert, ist es wichtig, es von anderen mathematischen
Funktionen zu unterscheiden, die beim Modelltraining und beim Architekturdesign verwendet werden:
-
Sigmoid: Die Sigmoid-Funktion skaliert ebenfalls
Werte zwischen 0 und 1, behandelt jedoch jede Ausgabe unabhängig voneinander. Dadurch eignet sich Sigmoid ideal für die
binäre Klassifizierung (ja/nein) oder die Multi-Label-Klassifizierung
, bei der sich die Klassen nicht gegenseitig ausschließen (z. B. kann ein Bild sowohl eine „Person” als auch einen
„Rucksack” enthalten). Softmax erzwingt, dass die Wahrscheinlichkeiten sich zu eins addieren, wodurch die Klassen miteinander konkurrieren.
-
ReLU (Rectified Linear Unit):
ReLU wird in erster Linie in den versteckten Schichten eines Netzwerks verwendet, um Nichtlinearität einzuführen. Im Gegensatz zu Softmax bindet ReLU die
Ausgaben nicht an einen bestimmten Bereich (es gibt einfach Null für negative Eingaben und die Eingabe selbst für positive
Eingaben aus) und erzeugt keine Wahrscheinlichkeitsverteilung.
-
Argmax: Während Softmax die Wahrscheinlichkeiten für alle Klassen liefert, wird die
Argmax-Funktion häufig in
Verbindung damit verwendet, um den einzelnen Index mit der höchsten Wahrscheinlichkeit auszuwählen. Softmax liefert die „weiche”
Konfidenz, während Argmax die „harte” endgültige Entscheidung liefert.
Erweiterte Integration
In modernen ML-Pipelines wird Softmax oft implizit innerhalb von Verlustfunktionen berechnet. Beispielsweise kombiniert der
Cross-Entropy-Verlust
Softmax und negative Log-Likelihood in einem einzigen mathematischen Schritt, um die numerische Stabilität während des
Trainings zu verbessern. Plattformen wie die Ultralytics bewältigen diese
Komplexitäten automatisch, sodass Benutzer robuste Modelle trainieren können, ohne diese mathematischen
Operationen manuell implementieren zu müssen.