Softmax
Entdecke die Softmax-Funktion in AI. Erfahre, wie sie Logits für die Mehrklassenklassifizierung 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 roher Zahlen, die häufig als Logits bezeichnet werden, in einen Wahrscheinlichkeitsvektor um. Diese Umwandlung stellt sicher, dass alle Ausgabewerte positiv sind und sich exakt zu eins summieren, wodurch eine gültige Wahrscheinlichkeitsverteilung entsteht. Aufgrund dieser Eigenschaft ist Softmax die standardmäßige Aktivierungsfunktion in der Ausgabeschicht von neuronalen Netzen, die für die Mehrklassenklassifizierung entwickelt wurden, bei der das System eine einzelne Kategorie aus mehr als zwei sich gegenseitig ausschließenden Optionen auswählen muss.
Die Funktionsweise von Softmax#
In einem typischen Workflow des tiefen Lernens (DL) führen die Schichten eines Netzes 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 bis zu positiver Unendlichkeit reichen, wodurch sie sich nur schwer direkt als Konfidenzwerte interpretieren lassen.
Softmax löst dieses Problem durch zwei wesentliche Operationen:
-
Exponentiation: Dabei wird der Exponentialwert jeder Eingabezahl berechnet. Dieser Schritt stellt sicher, dass alle Werte nichtnegativ sind (da $e^x$ immer positiv ist), und bestraft Werte, die deutlich kleiner als das Maximum sind, während die größten Werte hervorgehoben werden.
-
Normalisierung: Die Funktion summiert diese exponentierten Werte und dividiert jede einzelne Exponentialzahl durch diese Gesamtsumme. Dieser Normalisierungsprozess skaliert die Zahlen so, dass sie Teile eines Ganzen darstellen, sodass Entwickler sie als prozentuale Konfidenzwerte interpretieren können.
Anwendungen in der Praxis#
Die Fähigkeit, eindeutige Wahrscheinlichkeiten auszugeben, macht Softmax in verschiedensten Branchen und bei Aufgaben des maschinellen Lernens (ML) unverzichtbar.
- Bildklassifizierung: In der Computer Vision verwenden Modelle Softmax zur Kategorisierung von Bildern. Wenn beispielsweise das Ultralytics YOLO26-Klassifizierungsmodell ein Foto analysiert, kann 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 Wahrscheinlichkeit dafür hindeutet, dass das Bild einen Golden Retriever enthält. Dies ist für Anwendungen von der automatisierten Organisation von Fotos bis zur medizinischen Diagnose im Bereich KI im Gesundheitswesen von entscheidender Bedeutung.
- Verarbeitung natürlicher Sprache (NLP): Softmax ist die Grundlage der Texterzeugung in großen Sprachmodellen (LLMs). Wenn ein Modell wie ein Transformer einen Satz erzeugt, sagt es das nächste Wort (Token) voraus, indem es für jedes Wort in seinem Vokabular einen Wert berechnet. Softmax wandelt diese Werte in Wahrscheinlichkeiten um, sodass das Modell das wahrscheinlichste nächste Wort auswählen kann. Dadurch werden flüssige maschinelle Übersetzungen und dialogorientierte KI ermöglicht.
- Bestärkendes Lernen: Agenten im bestärkenden Lernen verwenden Softmax häufig zur Auswahl von Aktionen. Anstatt immer die Aktion mit dem höchsten Wert auszuwählen, kann ein Agent die Wahrscheinlichkeiten nutzen, um verschiedene Strategien zu erkunden und so in Umgebungen wie der Robotersteuerung oder beim Spielen von Computerspielen zwischen Exploration und Ausnutzung abzuwägen.
Python-Codebeispiel#
Das folgende Beispiel zeigt, wie ein vortrainiertes YOLO26-Klassifizierungsmodell geladen und auf die von Softmax erzeugten 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}")Abgrenzung von Softmax gegenüber verwandten Konzepten#
Obwohl Softmax in Mehrklassen-Szenarien vorherrschend ist, muss die Funktion von anderen mathematischen Funktionen unterschieden werden, die beim Trainieren von Modellen und beim Entwurf von Architekturen verwendet werden:
- Sigmoid: Die Sigmoid-Funktion skaliert Werte ebenfalls zwischen 0 und 1, behandelt jedoch jede Ausgabe unabhängig. Dadurch eignet sich Sigmoid ideal für die binäre Klassifizierung (Ja/Nein) oder die Mehrfachlabel-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 (gleichgerichtete lineare Einheit): ReLU wird hauptsächlich in den verborgenen Schichten eines Netzes verwendet, um Nichtlinearität einzuführen. Im Gegensatz zu Softmax begrenzt ReLU die Ausgaben nicht auf einen bestimmten Wertebereich (für negative Eingaben gibt die Funktion einfach null und für positive Eingaben die Eingabe selbst aus) und erzeugt keine Wahrscheinlichkeitsverteilung.
- Argmax: Während Softmax die Wahrscheinlichkeiten für alle Klassen liefert, wird die Argmax-Funktion häufig zusätzlich 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 trifft.
Fortgeschrittene Integration#
In modernen ML-Pipelines wird Softmax häufig implizit innerhalb von Verlustfunktionen berechnet. Beispielsweise kombiniert der Kreuzentropieverlust Softmax und die negative Log-Likelihood in einem einzigen mathematischen Schritt, um die numerische Stabilität während des Trainings zu verbessern. Plattformen wie die Ultralytics Platform übernehmen diese komplexen Berechnungen automatisch, sodass Benutzer robuste Modelle trainieren können, ohne diese mathematischen Operationen manuell implementieren zu müssen.









