Ultralytics YOLO27: Trag dich in die Warteliste ein.
YOLO lizenzieren
Zurück zum Ultralytics-Glossar

Softmax

Softmax wandelt einen Vektor aus Logits in Wahrscheinlichkeiten um, deren Summe eins ergibt. Behandelt werden die Formel, die Temperatur, numerische Stabilität, Attention und Code.

Softmax ist eine Funktion, die einen Vektor mit Rohwerten, sogenannten Logits, in eine Wahrscheinlichkeitsverteilung umwandelt: Jeder Ausgabewert liegt zwischen 0 und 1, und die Ausgabewerte summieren sich genau zu 1. Für einen Vektor z berechnet sie softmax(z)ᵢ = e^(zᵢ) / Σⱼ e^(zⱼ), indem sie jeden Wert exponentiert und durch die Summe aller Exponentialwerte teilt. Softmax ist die standardmäßige Ausgabeschicht von neuronalen Netzen, die eine Klasse aus mehreren auswählen. Die Funktion wandelt Ähnlichkeitswerte innerhalb des Attention-Mechanismus von Transformern in Gewichte um und konvertiert die Werte eines Sprachmodells für dessen Vokabular in Wahrscheinlichkeiten für das nächste Token. Der Name spiegelt wider, dass Softmax eine glatte, differenzierbare Version von argmax ist, das die gesamte Wahrscheinlichkeit dem einzelnen größten Wert zuweisen würde.

So funktioniert Softmax#

Die Exponentialfunktion macht alle Ausgaben positiv und verstärkt die Unterschiede zwischen den Werten. Dadurch erhält der größte Logit einen überproportionalen Anteil der Wahrscheinlichkeit. Softmax erhält die Reihenfolge der Logits, sodass der höchste Wert immer die höchste Wahrscheinlichkeit erhält. Es zählen nur die Unterschiede zwischen den Logits: Wenn zu jedem Logit dieselbe Konstante addiert wird, bleibt die Ausgabe unverändert. Bibliotheken nutzen diese Eigenschaft für numerische Stabilität, indem sie vor dem Exponentieren den maximalen Logit abziehen, da e¹⁰⁰⁰ bei 32-Bit-Gleitkommazahlen einen Überlauf verursacht.

Eine Temperatur T steuert, wie stark die Verteilung zugespitzt ist: softmax(z / T). Werte von T unter 1 schärfen die Verteilung zugunsten der obersten Klasse, während Werte über 1 sie in Richtung einer Gleichverteilung abflachen. Dieselbe Formel findet sich in der statistischen Mechanik als Boltzmann-Verteilung, wobei T tatsächlich die Temperatur bezeichnet. Das folgende PyTorch-Codebeispiel zeigt beide Effekte:

import torch

logits = torch.tensor([2.0, 1.0, 0.1])

# Divide logits by a temperature before softmax: low sharpens, high flattens
for temperature in [0.5, 1.0, 2.0]:
    probs = torch.softmax(logits / temperature, dim=0)
    print(f"T={temperature}: {[round(p, 3) for p in probs.tolist()]}")

# Adding a constant leaves softmax unchanged, so libraries subtract the max to avoid overflow
big = logits + 1000
naive = big.exp() / big.exp().sum()
print(f"Naive: {naive.tolist()}, torch.softmax: {[round(p, 3) for p in torch.softmax(big, dim=0).tolist()]}")

Bei T = 1 werden die Logits 2.0, 1.0 und 0.1 zu [0.659, 0.242, 0.099]. Eine Halbierung der Temperatur spitzt die Verteilung auf [0.864, 0.117, 0.019] zu, während eine Verdoppelung sie auf [0.502, 0.304, 0.194] abflacht. Addiert man 1.000 zu jedem Logit, verursacht die naive Formel einen Überlauf und gibt [nan, nan, nan] aus, während torch.softmax weiterhin [0.659, 0.242, 0.099] zurückgibt.

Softmax beim Training#

Klassifikatoren werden gemeinsam mit Softmax und dem Kreuzentropieverlust trainiert. Der Verlust ist −log(pᵧ), der negative Logarithmus der Wahrscheinlichkeit, die der korrekten Klasse y zugewiesen wird. Sein Gradient bezüglich der Logits ist einfach p − y, also die vorhergesagten Wahrscheinlichkeiten abzüglich des One-Hot-Labels. Frameworks kombinieren die beiden Funktionen daher: PyTorchs CrossEntropyLoss nimmt rohe Logits entgegen und berechnet intern log-softmax. Das ist stabiler, als den Logarithmus separat berechneter Wahrscheinlichkeiten zu bilden. Ein auf diese Weise trainiertes Modell gibt Logits aus; Softmax wird erst angewendet, wenn bei der Inferenz Wahrscheinlichkeiten benötigt werden.

Einsatzbereiche von Softmax#

  • Bildklassifizierung: Die letzte Schicht eines Klassifikators gibt für jede Klasse ein Logit aus. Softmax wandelt diese in die Konfidenzwerte um, die Nutzende sehen.
  • Attention: Transformer berechnen softmax(QKᵀ / √dₖ) über die Ähnlichkeitswerte zwischen einer Anfrage und jedem Schlüssel, sodass sich die Attention-Gewichte jedes Tokens zu 1 summieren. Die Division durch √dₖ verhindert, dass die Werte mit der Dimension wachsen und Softmax sättigen.
  • Textgenerierung: Ein großes Sprachmodell (LLM) wendet bei jedem Schritt Softmax auf ein Vokabular mit Zehntausenden oder Hunderttausenden Tokens an. Die Temperatur beim Sampling ist das oben genannte T. Beim Nucleus-Sampling wird anschließend aus der kleinsten Tokenmenge gezogen, deren Wahrscheinlichkeiten einen Schwellenwert erreichen.
  • Bestärkendes Lernen: Softmax über Aktionswerte ergibt eine Strategie, die normalerweise die beste Aktion auswählt, aber zugleich die anderen ausprobiert. Die Temperatur steuert dabei den Kompromiss zwischen Erkunden und Ausnutzen.

Klassifizierungsmodelle von YOLO26 wenden bei der Inferenz Softmax in ihrem Klassifizierungskopf an. Das Attribut probs jedes Ergebnisses enthält die vollständige Verteilung über die 1.000 ImageNet-Klassen:

from ultralytics import YOLO

# Load a YOLO26 classification model trained on ImageNet
model = YOLO("yolo26n-cls.pt")
results = model("https://ultralytics.com/images/bus.jpg")

# probs holds the softmax output of the classification head
probs = results[0].probs
for index, conf in zip(probs.top5, probs.top5conf.tolist()):
    print(f"{results[0].names[index]}: {conf:.3f}")
print(f"Sum over all 1,000 classes: {probs.data.sum().item():.3f}")

Die Ausgabe zeigt die fünf wahrscheinlichsten Klassen mit ihren Wahrscheinlichkeiten. Die Summe über alle 1.000 Klassen beträgt 1.000, da der Kopf eine Softmax-Verteilung zurückgibt.

  • Sigmoid: Drückt jeden Wert unabhängig auf einen Bereich von 0 bis 1 zusammen, sodass sich die Ausgabewerte nicht zu 1 summieren müssen. Sigmoid eignet sich für binäre Probleme und Mehrfachklassenprobleme, etwa wenn ein Bild sowohl eine Person als auch einen Rucksack enthält. Objektdetektoren bewerten damit häufig jede Klasse. Bei zwei Klassen entspricht Softmax genau einer Sigmoid-Funktion der Differenz zwischen den beiden Logits.
  • Argmax: Gibt den Index des größten Werts zurück – eine feste Entscheidung ohne Gradienten. Softmax erhält dieselbe Rangfolge, bleibt aber differenzierbar und kann daher trainiert werden. Die Anwendung von argmax auf Softmax-Wahrscheinlichkeiten ergibt dasselbe Ergebnis wie argmax auf die Logits.
  • Log-softmax: Der zur Stabilität direkt berechnete Logarithmus von Softmax, den der Kreuzentropieverlust verwendet.
  • Temperaturskalierung: Ein Kalibrierungsverfahren, bei dem nach dem Training anhand von Validierungsdaten eine einzelne Temperatur angepasst wird, damit die Softmax-Wahrscheinlichkeiten damit übereinstimmen, wie oft das Modell tatsächlich richtig liegt. Die vorhergesagte Klasse bleibt unverändert, da die Division jedes Logits durch dasselbe positive T deren Reihenfolge erhält.

Lösungen entdecken

Computer Vision im Sport

Computer Vision im Sport

Entdecke, wie Ultralytics YOLO die Sportbildanalyse voranbringt – mit Spieler- und Ballverfolgung, Leistungsanalysen, Erkenntnissen für das Coaching und der Rehabilitation von Athleten.
Mehr erfahren
Computer Vision für Luftbilder

Computer Vision für Luftbilder

Verwandle Drohnen- und Luftbilder mit Ultralytics YOLO in Echtzeit-Erkenntnisse für Landwirtschaft, Aquakultur, Naturschutz und Geodatenanalyse.
Mehr erfahren
Computer Vision in der Luft- und Raumfahrt

Computer Vision in der Luft- und Raumfahrt

Setze Computer Vision in der Luft- und Raumfahrt mit Ultralytics YOLO ein – für Flugzeuginspektionen, die Erkennung von Fremdkörpern auf Start- und Landebahnen, den Bodenbetrieb am Flughafen und die Erkennung von Verbundwerkstofffehlern.
Mehr erfahren
Computer Vision im Sicherheitsbereich

Computer Vision im Sicherheitsbereich

Schütze jeden Standort mit Ultralytics YOLO-Modellen. Vision-KI ermöglicht die Überwachung von Grundstücksgrenzen, die Erkennung von Bedrohungen, die Kennzeichenerkennung und die Sicherheit am Arbeitsplatz.
Mehr erfahren
Computer Vision in der Robotik

Computer Vision in der Robotik

Mach Maschinen mit Ultralytics YOLO-Modellen leistungsfähiger. Vision-KI in der Robotik ermöglicht autonome Navigation, Wahrnehmung, Objektverfolgung und Steuerung in Echtzeit.
Mehr erfahren
Bildverarbeitung in der Logistik

Bildverarbeitung in der Logistik

Optimiere die Logistik mit Ultralytics YOLO-Modellen. Vision AI ermöglicht die Paketprüfung, Sortierung und Fahrzeugverfolgung sowie die Sicherheitsüberwachung von Lagerhäusern in Echtzeit.
Mehr erfahren
Bildverarbeitung im Einzelhandel

Bildverarbeitung im Einzelhandel

Gestalte den Einzelhandel mit Ultralytics YOLO-Modellen neu. Vision AI ermöglicht Bestandsverfolgung, Regalüberwachung und Warteschlangenmanagement und liefert bessere Einblicke in das Kundenverhalten.
Mehr erfahren
Bildverarbeitung im Gesundheitswesen

Bildverarbeitung im Gesundheitswesen

Entwickle Lösungen für das Gesundheitswesen mit Ultralytics YOLO-Modellen. Vision AI ermöglicht im Gesundheitswesen schnellere medizinische Bildgebung, bessere Diagnostik und die Überwachung von Patienten.
Mehr erfahren
Computer Vision in der Fertigung

Computer Vision in der Fertigung

Optimiere die Fertigung mit Ultralytics-YOLO-Modellen. Vision AI ermöglicht Qualitätskontrolle, Fehlererkennung, die Überprüfung der Einhaltung von Vorgaben zu persönlicher Schutzausrüstung und die Automatisierung von Montagelinien.
Mehr erfahren
Computer Vision in der Automobilbranche

Computer Vision in der Automobilbranche

Setze Computer Vision in der Automobilbranche mit Ultralytics-YOLO-Modellen ein. Vision AI verbessert die Verkehrssicherheit, Fahrerassistenz und Fahrzeugautomatisierung – für intelligentere Straßen.
Mehr erfahren
Computer Vision in der Landwirtschaft

Computer Vision in der Landwirtschaft

Setze mit Ultralytics YOLO-Modellen KI für Bildverarbeitung in der intelligenten Landwirtschaft ein. Ermögliche die Überwachung von Nutzpflanzen, die Verfolgung von Nutztieren und Präzisionslandwirtschaft für höhere und nachhaltigere Erträge.
Mehr erfahren

Lass uns gemeinsam die Zukunft der KI gestalten!

Starte deine Reise in die Zukunft des maschinellen Lernens