Softmax
Erforsche die Softmax-Funktion in der KI. Lerne, wie sie Logits für Multi-Class-Klassifikationen mit Ultralytics YOLO26 und neuronalen Netzen in Wahrscheinlichkeiten umwandelt.
Softmax ist eine mathematische Funktion, die für den Bereich der künstlichen Intelligenz von zentraler Bedeutung ist und insbesondere als letzter Schritt in vielen Klassifizierungsalgorithmen dient. Sie transformiert einen Vektor aus Rohzahlen, die oft als Logits bezeichnet werden, in einen Wahrscheinlichkeitsvektor. Diese Transformation stellt sicher, dass die Ausgabewerte alle positiv sind und sich zu exakt eins summieren, wodurch effektiv eine gültige Wahrscheinlichkeitsverteilung erzeugt wird. Aufgrund dieser Eigenschaft ist Softmax die Standard-Aktivierungsfunktion, die in der Ausgabeschicht von neuronalen Netzen verwendet wird, die für die Multiklassen-Klassifizierung konzipiert sind, bei denen das System eine einzelne Kategorie aus mehr als zwei sich gegenseitig ausschließenden Optionen auswählen muss.
Link to this sectionDie Mechanik von Softmax#
In einem typischen Deep Learning (DL)-Workflow 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 bekannt sind. Diese Werte können von negativer Unendlichkeit bis positiver Unendlichkeit reichen, was es schwierig macht, sie direkt als Konfidenzniveaus zu interpretieren.
Softmax begegnet dem durch zwei Hauptoperationen:
-
Exponentiation: Es berechnet die Exponentialfunktion jeder Eingabezahl. Dieser Schritt stellt sicher, dass alle Werte nicht-negativ sind (da $e^x$ immer positiv ist) und bestraft Werte, die deutlich niedriger als das Maximum sind, während die höchsten Werte hervorgehoben werden.
-
Normalisierung: Es summiert diese exponentierten Werte und teilt jeden einzelnen Exponentialwert durch diese Gesamtsumme. Dieser Normalisierungsprozess skaliert die Zahlen so, dass sie Teile eines Ganzen darstellen, wodurch Entwickler sie als prozentuale Konfidenzwerte interpretieren können.
Link to this sectionPraxisanwendungen#
Die Fähigkeit, klare Wahrscheinlichkeiten auszugeben, macht Softmax über verschiedene Branchen und Machine Learning (ML)-Aufgaben hinweg unverzichtbar.
- Bildklassifizierung: Im Computer Vision Bereich nutzen Modelle Softmax, um Bilder zu kategorisieren. Wenn beispielsweise das Ultralytics YOLO26-Klassifizierungsmodell ein Foto analysiert, könnte es Werte für Klassen wie „Golden Retriever“, „Deutscher Schäferhund“ und „Pudel“ erzeugen. Softmax wandelt diese Werte in Wahrscheinlichkeiten um (z. B. 0,85, 0,10, 0,05), was auf eine hohe Konfidenz hinweist, dass das Bild einen Golden Retriever enthält. Dies ist entscheidend für Anwendungen, die von der automatisierten Fotoorganisation bis hin zur medizinischen Diagnose im Bereich KI im Gesundheitswesen reichen.
- Natural Language Processing (NLP): Softmax ist der Motor hinter der Textgenerierung in Large Language Models (LLMs). Wenn ein Modell wie ein Transformer einen Satz generiert, sagt es das nächste Wort (Token) voraus, indem es einen Wert für jedes Wort in seinem Vokabular berechnet. Softmax verwandelt diese Werte in Wahrscheinlichkeiten, wodurch das Modell das wahrscheinlichste nächste Wort auswählen kann, was flüssige maschinelle Übersetzung und konversationelle KI ermöglicht.
- Reinforcement Learning: Agenten im Reinforcement Learning nutzen oft Softmax, um Aktionen auszuwählen. Anstatt immer die Aktion mit dem höchsten Wert zu wählen, könnte ein Agent die Wahrscheinlichkeiten nutzen, um verschiedene Strategien zu erkunden und so Exploration und Ausnutzung in Umgebungen wie der Robotersteuerung oder beim Spielen von Spielen auszubalancieren.
Link to this sectionPython Code-Beispiel#
Das folgende Beispiel zeigt, wie man ein vortrainiertes YOLO26-Klassifizierungsmodell lädt und auf die via Softmax generierten Wahrscheinlichkeitswerte zugreift.
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}")Link to this sectionUnterscheidung von Softmax zu verwandten Konzepten#
While Softmax is dominant in multi-class scenarios, it is important to distinguish it from other mathematical functions used in model training and architecture design:
- Sigmoid: Die Sigmoid-Funktion skaliert Werte ebenfalls zwischen 0 und 1, behandelt jedoch jede Ausgabe unabhängig. Dies macht Sigmoid ideal für die binäre Klassifizierung (Ja/Nein) oder die Multilabel-Klassifizierung, bei der sich Klassen nicht gegenseitig ausschließen (z. B. kann ein Bild sowohl eine „Person“ als auch einen „Rucksack“ enthalten). Softmax zwingt die Wahrscheinlichkeiten dazu, sich zu eins zu summieren, wodurch die Klassen miteinander konkurrieren.
- ReLU (Rectified Linear Unit): ReLU wird hauptsächlich in den verborgenen Schichten eines Netzwerks verwendet, um Nichtlinearität einzuführen. Im Gegensatz zu Softmax begrenzt ReLU die Ausgaben nicht auf einen bestimmten Bereich (es gibt für negative Eingaben einfach Null und für positive die Eingabe selbst aus) und generiert keine Wahrscheinlichkeitsverteilung.
- Argmax: Während Softmax die Wahrscheinlichkeiten für alle Klassen bereitstellt, wird die Argmax-Funktion oft in Verbindung damit verwendet, um den einzelnen Index mit der höchsten Wahrscheinlichkeit auszuwählen. Softmax liefert das „weiche“ Konfidenzniveau, während Argmax die „harte“ endgültige Entscheidung liefert.
Link to this sectionErweiterte Integration#
In modernen ML-Pipelines wird Softmax oft implizit innerhalb von Verlustfunktionen berechnet. Beispielsweise kombiniert Cross-Entropy Loss 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 Platform handhaben diese Komplexitäten automatisch, sodass du robuste Modelle trainieren kannst, ohne diese mathematischen Operationen manuell implementieren zu müssen.






