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 wandelt einen Vektor aus Rohzahlen, oft als Logits bezeichnet, in einen Wahrscheinlichkeitsvektor um. Diese Transformation stellt sicher, dass die Ausgabewerte alle positiv sind und sich genau zu eins summieren, wodurch effektiv eine gültige probability distribution entsteht. Aufgrund dieser Eigenschaft ist Softmax die Standard-activation function in der Ausgabeschicht von neural networks, die für die Multiklassen-Klassifizierung entwickelt wurden, 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 (DL)-Workflow führen die Schichten eines Netzwerks komplexe Matrixmultiplikationen und -additionen durch. Die Ausgabe der letzten Schicht besteht vor der Aktivierung aus Rohen Werten, die als logits bekannt sind. Diese Werte können von minus unendlich bis plus unendlich reichen, was es schwierig macht, sie direkt als Vertrauensniveaus 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: Sie summiert diese exponentierten Werte und teilt jeden einzelnen Exponenten durch diese Gesamtsumme. Dieser normalization process skaliert die Zahlen so, dass sie Teile eines Ganzen darstellen, sodass Entwickler sie als prozentuale Konfidenzwerte interpretieren können.
Praxisanwendungen#
Die Fähigkeit, klare Wahrscheinlichkeiten auszugeben, macht Softmax in verschiedenen Branchen und bei machine learning (ML)-Aufgaben unverzichtbar.
- Bildklassifizierung: In der Computer Vision verwenden Modelle Softmax, um Bilder zu kategorisieren. Wenn beispielsweise das Klassifizierungsmodell Ultralytics YOLO26 ein Foto analysiert, erzeugt es möglicherweise Bewertungen für Klassen wie „Golden Retriever“, „Deutscher Schäferhund“ und „Pudel“. Softmax wandelt diese Bewertungen 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 bei AI in Healthcare reichen.
- Natürliche Sprachverarbeitung (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 wandelt diese Werte in Wahrscheinlichkeiten um, sodass das Modell das wahrscheinlichste nächste Wort auswählen kann, was eine flüssige machine translation und konversatorische KI ermöglicht.
- Reinforcement Learning: Agenten im reinforcement learning verwenden häufig Softmax, um Aktionen auszuwählen. Anstatt immer die Aktion mit dem höchsten Wert zu wählen, kann ein Agent die Wahrscheinlichkeiten nutzen, um verschiedene Strategien zu untersuchen und Exploration und Exploitation in Umgebungen wie der Robotersteuerung oder beim Spielen auszubalancieren.
Python Code-Beispiel#
Das folgende Beispiel zeigt, wie ein vortrainiertes YOLO26-Klassifizierungsmodell geladen wird und wie 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 zu verwandten Konzepten#
Während Softmax bei Multiklassen-Szenarien vorherrscht, ist es wichtig, es von anderen mathematischen Funktionen zu unterscheiden, die beim model training und beim Architekturdesign verwendet werden:
- Sigmoid: Die Sigmoid-Funktion skaliert Werte ebenfalls zwischen 0 und 1, behandelt jedoch jede Ausgabe unabhängig voneinander. Dies macht Sigmoid ideal für die binary classification (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 erzwingt, dass sich die Wahrscheinlichkeiten zu eins summieren, wodurch die Klassen miteinander konkurrieren.
- ReLU (Rectified Linear Unit): ReLU wird hauptsächlich in den verdeckten 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 erzeugt keine Wahrscheinlichkeitsverteilung.
- Argmax: Während Softmax die Wahrscheinlichkeiten für alle Klassen liefert, wird die Argmax function oft 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“ Endentscheidung trifft.
Erweiterte Integration#
In modernen ML-Pipelines wird Softmax häufig implizit innerhalb von Verlustfunktionen berechnet. Beispielsweise kombiniert Cross-Entropy Loss Softmax und den negativen Log-Likelihood zu 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 Benutzer robuste Modelle trainieren können, ohne diese mathematischen Operationen manuell implementieren zu müssen.






