<EbeneX/>
Grundlagen Architektur · Updated 3. März 2026

Softmax

Definition

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

Fortgeschritten 2 Min. Lesezeit EN: Softmax Function

Einfach erklärt

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

Technischer Deep Dive

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()

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%.

Wandelt beliebige Zahlen (Logits) in Wahrscheinlichkeiten um

Ausgaben summieren sich immer zu 1 (100%)

Verwendet in Klassifikation (Output Layer) und Attention

Klassifikation

Wahrscheinlichkeiten für jede Klasse berechnen

Attention

Attention-Gewichte normalisieren

Token-Vorhersage

Wahrscheinlichkeitsverteilung über Vokabular

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).

Dein persönliches Share-Bild für Instagram – 1080×1080px, bereit zum Posten.