Softmax ist eine Aktivierungsfunktion für die Ausgabeschicht von Klassifikationsnetzen und Sprachmodellen: Sie verwandelt die rohen Logits in eine Wahrscheinlichkeitsverteilung, deren Werte zwischen 0 und 1 liegen und in der Summe genau 1 ergeben.

Die Formel

Für einen Logit-Vektor z mit K Einträgen berechnet Softmax für jede Klasse i:

softmax(z)_i = exp(z_i) / (exp(z_1) + exp(z_2) + … + exp(z_K))

Die Exponentialfunktion macht alle Werte positiv und verstärkt Unterschiede: Der größte Logit bekommt die höchste Wahrscheinlichkeit, aber auch kleinere Klassen behalten eine Chance. Das weiche Maximum (soft maximum) steht damit im Gegensatz zum harten Argmax, der nur die eine Gewinnerklasse auswählt.

Eigenschaften und Stolperfallen

  • Numerische Stabilität: exp() großer Logits kann überlaufen. Praktisch wird vor der Berechnung der größte Logit abgezogen — das ändert das Ergebnis nicht (exp(z_i − max) / Σ exp(z_j − max)) und verhindert Overflow.
  • Temperatur: Vor Softmax können die Logits durch eine Temperatur T geteilt werden. T > 1 macht die Verteilung flacher (kreativer), T < 1 schärfer (deterministischer). Bei T → 0 nähert sich Softmax dem Argmax an. Dieser Mechanismus steuert die Zufälligkeit bei Sprachmodellen (siehe Temperatur (LLM)).
  • Mehrklassen-Standard: Für binäre Entscheidungen genügt ein einzelnes Sigmoid; Softmax ist die natürliche Erweiterung auf beliebig viele Klassen.

Wo Softmax überall steckt

Neben der Klassifikation arbeitet auch die Aufmerksamkeit im Transformer mit Softmax: Dort normalisiert sie die Aufmerksamkeitsgewichte über die Token einer Sequenz. Beim Training wird die Softmax-Ausgabe mit dem Cross-Entropy-Loss verglichen.

Verwandte Grundlagen: Logits, Cross-Entropy, Klassifikation.