Softmax Funktion Rechner

Online Rechner für Wahrscheinlichkeitsverteilungen in Machine Learning


🧠 Softmax Funktion

Aktivierungsfunktion für Machine Learning

Wählen Sie die Anzahl der Eingabewerte
🧠
Softmax: Wandelt einen Vektor in eine Wahrscheinlichkeitsverteilung um. Summe aller Ausgaben = 1.
⚠️ Fehler:

Geben Sie die Eingabewerte (Vektor) ein und klicken Sie auf Berechnen um die Softmax-Funktion zu ermitteln. Die Softmax-Funktion wandelt einen Vektor reeller Zahlen in eine Wahrscheinlichkeitsverteilung um, bei der alle Ausgabewerte zwischen 0 und 1 liegen und ihre Summe gleich 1 ist.


💡 Softmax-Funktion

\(\sigma(z_i) = \frac{e^{z_i}}{\sum_{j=1}^{K} e^{z_j}} \text{ für } i = 1, 2, \ldots, K\)


Die Softmax-Funktion verstehen

Die Softmax-Funktion ist eine fundamentale Aktivierungsfunktion in Machine Learning und neuronalen Netzen. Sie transformiert einen Vektor beliebiger reeller Zahlen in eine Wahrscheinlichkeitsverteilung, bei der jede Komponente zwischen 0 und 1 liegt und die Summe aller Komponenten gleich 1 ist. Dies macht sie ideal für Mehrklassen-Klassifikation.

🧠 Grunddefinition

Fundamentale Formel:

\(\sigma(z_i) = \frac{e^{z_i}}{\sum_{j=1}^{K} e^{z_j}}\)
Wandelt Vektor in Wahrscheinlichkeiten um
📊 Eigenschaften
  • • \(0 < \sigma(z_i) < 1\) für alle i
  • • \(\sum_{i=1}^{K} \sigma(z_i) = 1\)
  • • Differenzierbar
  • • Monoton steigend
🔬 Anwendungen
  • • Mehrklassen-Klassifikation
  • • Neuronale Netze (Output Layer)
  • • Attention-Mechanismen
  • • Reinforcement Learning
⭐ Vorteile
  • • Interpretierbare Wahrscheinlichkeiten
  • • Glatte, differenzierbare Funktion
  • • Verstärkt große Werte
  • • Numerisch stabil (mit Tricks)

Mathematische Grundlagen

🧠 Softmax-Definition

Vollständige mathematische Definition:

\[\text{Gegeben: Vektor } \mathbf{z} = (z_1, z_2, \ldots, z_K)\] \[\text{Softmax-Funktion: } \sigma(\mathbf{z})_i = \frac{e^{z_i}}{\sum_{j=1}^{K} e^{z_j}}\] \[\text{Eigenschaften:}\] \[\sum_{i=1}^{K} \sigma(\mathbf{z})_i = 1 \quad \text{(Wahrscheinlichkeitsverteilung)}\] \[0 < \sigma(\mathbf{z})_i < 1 \quad \text{für alle } i\]

🔄 Numerische Stabilität

Vermeidung von Overflow durch Subtraktion des Maximums:

\[\text{Problem: } e^{z_i} \text{ kann sehr groß werden}\] \[\text{Lösung: } \sigma(z_i) = \frac{e^{z_i - \max(\mathbf{z})}}{\sum_{j=1}^{K} e^{z_j - \max(\mathbf{z})}}\] \[\text{Mathematisch äquivalent, numerisch stabil}\] \[\text{Grund: } \frac{e^{z_i}}{e^c} \cdot \frac{e^c}{\sum e^{z_j}} = \frac{e^{z_i-c}}{\sum e^{z_j-c}}\]

📊 Temperatur-Parameter

Steuerung der "Schärfe" der Verteilung:

\[\text{Softmax mit Temperatur: } \sigma(z_i) = \frac{e^{z_i/T}}{\sum_{j=1}^{K} e^{z_j/T}}\] \[T \to 0: \text{ "harte" Verteilung (one-hot-ähnlich)}\] \[T \to \infty: \text{ "weiche" Verteilung (uniform)}\] \[T = 1: \text{ Standard-Softmax}\]

Praktische Berechnungsbeispiele

📝 Beispiel 1: Einfache Klassifikation

Aufgabe: Softmax für 3-Klassen-Problem
Eingabe: z = [1, 2, 3]
Berechnung:

\[e^{z_1} = e^1 \approx 2{,}718\] \[e^{z_2} = e^2 \approx 7{,}389\] \[e^{z_3} = e^3 \approx 20{,}086\] \[\text{Summe: } S = 2{,}718 + 7{,}389 + 20{,}086 = 30{,}193\] \[\sigma(z_1) = \frac{2{,}718}{30{,}193} \approx 0{,}090 \quad (9{,}0\%)\] \[\sigma(z_2) = \frac{7{,}389}{30{,}193} \approx 0{,}245 \quad (24{,}5\%)\] \[\sigma(z_3) = \frac{20{,}086}{30{,}193} \approx 0{,}665 \quad (66{,}5\%)\]

Ergebnis: Klasse 3 hat die höchste Wahrscheinlichkeit (66,5%)

📝 Beispiel 2: Extreme Werte

Aufgabe: Softmax mit großen Unterschieden
Eingabe: z = [0, 5, 10]
Berechnung:

\[e^0 = 1\] \[e^5 \approx 148{,}413\] \[e^{10} \approx 22.026{,}466\] \[\text{Summe: } S \approx 22.174{,}880\] \[\sigma(z_1) \approx \frac{1}{22.174{,}880} \approx 0{,}000045 \quad (0{,}0045\%)\] \[\sigma(z_2) \approx \frac{148{,}413}{22.174{,}880} \approx 0{,}0067 \quad (0{,}67\%)\] \[\sigma(z_3) \approx \frac{22.026{,}466}{22.174{,}880} \approx 0{,}993 \quad (99{,}3\%)\]

Verhalten: Softmax verstärkt den größten Wert stark

📝 Beispiel 3: Uniform-ähnliche Eingabe

Aufgabe: Softmax mit ähnlichen Werten
Eingabe: z = [1, 1.1, 0.9]
Berechnung:

\[e^1 \approx 2{,}718\] \[e^{1{,}1} \approx 3{,}004\] \[e^{0{,}9} \approx 2{,}460\] \[\text{Summe: } S \approx 8{,}182\] \[\sigma(z_1) \approx \frac{2{,}718}{8{,}182} \approx 0{,}332 \quad (33{,}2\%)\] \[\sigma(z_2) \approx \frac{3{,}004}{8{,}182} \approx 0{,}367 \quad (36{,}7\%)\] \[\sigma(z_3) \approx \frac{2{,}460}{8{,}182} \approx 0{,}301 \quad (30{,}1\%)\]

Verhalten: Bei ähnlichen Eingaben entstehen ähnliche Wahrscheinlichkeiten

Machine Learning Anwendungen

🧠 Neuronale Netze

Verwendung als Output-Aktivierungsfunktion:

\[\text{Letzter Layer: } \mathbf{z} = \mathbf{W}\mathbf{h} + \mathbf{b}\] \[\text{Softmax-Output: } \mathbf{p} = \text{softmax}(\mathbf{z})\] \[\text{Interpretation: } p_i = P(\text{Klasse } i | \text{Input})\] \[\text{Verlustfunktion: } L = -\sum_{i} y_i \log(p_i) \quad \text{(Cross-Entropy)}\]

🎯 Attention-Mechanismen

Softmax in Transformer-Modellen:

\[\text{Attention-Scores: } e_{ij} = \frac{\mathbf{q}_i \cdot \mathbf{k}_j}{\sqrt{d_k}}\] \[\text{Attention-Weights: } \alpha_{ij} = \text{softmax}(e_{ij})\] \[\text{Kontext: } \mathbf{c}_i = \sum_j \alpha_{ij} \mathbf{v}_j\] \[\text{Eigenschaft: } \sum_j \alpha_{ij} = 1\]

Ableitung und Gradientenberechnung

📈 Jacobi-Matrix

Ableitung der Softmax-Funktion:

\[\frac{\partial \sigma_i}{\partial z_j} = \begin{cases} \sigma_i(1 - \sigma_i) & \text{wenn } i = j \\ -\sigma_i \sigma_j & \text{wenn } i \neq j \end{cases}\] \[\text{Kompakte Form: } \frac{\partial \sigma_i}{\partial z_j} = \sigma_i(\delta_{ij} - \sigma_j)\] \[\text{wobei } \delta_{ij} = \begin{cases} 1 & i = j \\ 0 & i \neq j \end{cases}\]

Anwendungen in verschiedenen Bereichen

🖼️ Computer Vision
  • • Bildklassifikation (ImageNet)
  • • Objekterkennung
  • • Szenenverständnis
  • • Medizinische Bildanalyse
💬 Natural Language Processing
  • • Sprachmodelle (GPT, BERT)
  • • Maschinelle Übersetzung
  • • Sentimentanalyse
  • • Named Entity Recognition
🎯 Reinforcement Learning
  • • Policy-Gradient-Methoden
  • • Actor-Critic-Modelle
  • • Multi-Agent-Systeme
  • • Strategieschätzung
📊 Empfehlungssysteme
  • • Collaborative Filtering
  • • Content-basierte Filterung
  • • Ranking-Algorithmen
  • • Personalisierung

Implementierung und Best Practices

💻 Code-Implementierungen

Numerisch stabile Implementierungen:

Python (NumPy):
def softmax(x):
  exp_x = np.exp(x - np.max(x))
  return exp_x / np.sum(exp_x)

TensorFlow/Keras:
tf.nn.softmax(logits)
# oder als Layer:
tf.keras.layers.Softmax()

PyTorch:
torch.nn.functional.softmax(input, dim=-1)
# oder als Layer:
torch.nn.Softmax(dim=-1)

⚡ Performance-Optimierung

Tipps für effiziente Softmax-Berechnung:

\[\text{1. Log-Sum-Exp Trick verwenden}\] \[\text{2. Batch-Verarbeitung nutzen}\] \[\text{3. GPU-Beschleunigung einsetzen}\] \[\text{4. Sparse Softmax für große Vokabulare}\] \[\text{5. Mixed Precision Training}\]
💡 Wichtige Eigenschaften der Softmax-Funktion:
  • Wahrscheinlichkeitsverteilung: Ausgabe summiert sich zu 1
  • Differenzierbar: Ermöglicht Gradientenberechnung für Training
  • Verstärkung: Größere Eingabewerte erhalten höhere Wahrscheinlichkeiten
  • Interpretierbar: Direkte Interpretation als Klassenwahrscheinlichkeiten
🔬 Anwendungsgebiete der Softmax-Funktion:
  • Deep Learning: Output-Layer für Klassifikation, Attention-Mechanismen
  • Computer Vision: Bildklassifikation, Objekterkennung, Segmentierung
  • NLP: Sprachmodelle, Übersetzung, Textklassifikation
  • Reinforcement Learning: Policy-Gradients, Strategieauswahl