Softmax

Eine mathematische Funktion, die einen Vektor von Zahlen in eine Wahrscheinlichkeitsverteilung umwandelt – zentral für Klassifikation und Attention in neuronalen Netzen.

Fortgeschritten2 Min Lesezeit

Erklärung starten

Auf einen Blick

3 Punkte

  1. Wandelt beliebige Zahlen (Logits) in Wahrscheinlichkeiten um
  2. Ausgaben summieren sich immer zu 1 (100%)
  3. Verwendet in Klassifikation (Output Layer) und Attention

Sofortantwort

Softmax einfach erklärt

Wandelt Zahlen in Wahrscheinlichkeiten um (Summe = 1).

Kurz gesagt
Wandelt beliebige Zahlen (Logits) in Wahrscheinlichkeiten um
Typischer Einsatz
Klassifikation, Attention, Token-Vorhersage
Wichtig zu wissen
Verwendet in Klassifikation (Output Layer) und Attention

Softmax im Überblick

Softmax ist eine Aktivierungsfunktion, die in der letzten Schicht von Klassifikationsmodellen eingesetzt wird. Sie wandelt die rohen Ausgaben (Logits) des Modells in eine Wahrscheinlichkeitsverteilung um: Alle Werte werden positiv und summieren sich zu 1. Das ermöglicht es, die Ausgaben als Wahrscheinlichkeiten zu interpretieren – “72% Katze, 26% Hund, 2% Vogel”. In Sprachmodellen entscheidet Softmax, welches Token als nächstes generiert wird.

Softmax wandelt beliebige Zahlen in Wahrscheinlichkeiten um. Egal wie groß oder klein die Eingaben sind – die Ausgaben summieren sich immer zu 1.

Beispiel:

Logits (rohe Scores): [2.0, 1.0, 0.1]

Softmax:
e^2.0 / (e^2.0 + e^1.0 + e^0.1) = 7.39 / 10.49 = 0.70
e^1.0 / (e^2.0 + e^1.0 + e^0.1) = 2.72 / 10.49 = 0.26
e^0.1 / (e^2.0 + e^1.0 + e^0.1) = 1.11 / 10.49 = 0.04

Wahrscheinlichkeiten: [0.70, 0.26, 0.04]
Summe: 1.0 ✓

Wo wird Softmax verwendet?

  • Klassifikation: “70% Katze, 26% Hund, 4% Vogel”
  • Attention: Gewichte für jeden Token
  • LLM Token-Vorhersage: Wahrscheinlichkeit für jedes Wort im Vokabular

Technisch betrachtet

Formel

softmax(x_i) = e^(x_i) / Σ e^(x_j)

Mit Temperatur

softmax(x_i, T) = e^(x_i/T) / Σ e^(x_j/T)

T = 0.1: Sehr spitz (fast deterministisch)
T = 1.0: Standard
T = 2.0: Flacher (mehr Zufälligkeit)

PyTorch Beispiel

import torch
import torch.nn.functional as F

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

# Standard Softmax
probs = F.softmax(logits, dim=0)
# tensor([0.6590, 0.2424, 0.0986])

# Mit Temperatur
temperature = 0.5
probs_cold = F.softmax(logits / temperature, dim=0)
# tensor([0.8360, 0.1420, 0.0220])  # Spitzer

Numerische Stabilität

# Problem: e^1000 = Overflow
# Lösung: Subtrahiere Maximum

def stable_softmax(x):
    x_max = x.max()
    exp_x = torch.exp(x - x_max)  # Verhindert Overflow
    return exp_x / exp_x.sum()

01Einsatzbereiche

Wann ist Softmax sinnvoll?

Geeignet für

  • KlassifikationWahrscheinlichkeiten für jede Klasse berechnen
  • AttentionAttention-Gewichte normalisieren
  • Token-VorhersageWahrscheinlichkeitsverteilung über Vokabular

↑ Inhalt

02Werkzeuge

Womit Softmax umgesetzt wird

↑ Inhalt

Merksatz

Softmax ist wie ein Wahlsystem, das Stimmen in Prozente umrechnet

Egal wie viele Stimmen jeder Kandidat hat, am Ende bekommt jeder einen Prozentanteil, und alle zusammen ergeben 100%.

  1. Wandelt beliebige Zahlen (Logits) in Wahrscheinlichkeiten um
  2. Ausgaben summieren sich immer zu 1 (100%)
  3. Verwendet in Klassifikation (Output Layer) und Attention

04Redaktion

Herkunft und Stand

Redaktion und Aktualität

Ebenex RedaktionRedaktion

Veröffentlicht
Aktualisiert

Dieses Feld entwickelt sich schnell. Oben stehen Veröffentlichung und letzte Änderung; ein Prüfdatum kommt dazu, sobald die Erklärung nach ihrer letzten Änderung geprüft wurde.

↑ Inhalt

05FAQ

Häufige Fragen zu Softmax

Warum Softmax statt einfacher Normalisierung?

Softmax verstärkt Unterschiede exponentiell: Große Werte werden noch größer, kleine noch kleiner. Das macht die Verteilung 'spitzer' und die Entscheidung klarer. Einfache Normalisierung würde das nicht tun.

Was ist der Zusammenhang zwischen Softmax und Temperatur?

Temperatur skaliert die Logits vor Softmax: softmax(logits/T). Hohe Temperatur → flachere Verteilung (mehr Zufälligkeit). Niedrige Temperatur → spitzere Verteilung (deterministischer).

Wann verwende ich Sigmoid statt Softmax?

Sigmoid für binäre oder Multi-Label-Klassifikation (jede Klasse unabhängig). Softmax für Multi-Class-Klassifikation (genau eine Klasse, Summe = 1).

↑ Inhalt

06Weiterlernen

Was möchtest du als Nächstes verstehen?

  • Grundlage nachholen

    Logits

    Unnormalisierte Ausgabewerte eines neuronalen Netzes vor der Umwandlung.

  • Technisch vertiefen

    Aktivierungsfunktion

    Funktionen, die Nicht-Linearität in neuronalen Netzen ermöglichen.

↑ Inhalt