Softmax Funktion Rechner
Online Rechner für Wahrscheinlichkeitsverteilungen in Machine Learning
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:
📊 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
acos - Arkuskosinus
acot - Arkuskotangens
acsc - Arkuskosekans
asec - Arkussekans
asin - Arkussinus
atan - Arkustangens
atan2 - Arkustangens von y/x
cos - Kosinus
cot - Kotangens
csc - Kosekans
sec - Sekans
sin - Sinus
sinc - Kardinalsinus
tan - Tangens
hypot - Hypotenuse
deg2rad - Grad in Radiant
rad2deg - Radiant in Grad
Hyperbolik
acosh - Arkuskosinus hyperbolikus
asinh - Areasinus hyperbolikus
atanh - Arkustangens hyperbolikus
cosh - Kosinus hyperbolikus
sinh - Sinus hyperbolikus
tanh - Tangens hyperbolikus
Logarithmus
log - Logarithmus zur angegebene Basis
ln - Natürlicher Logarithmus zur Basis e
log10 - Logarithmus zur Basis 10
log2 - Logarithmus zur Basis 2
exp - Exponenten zur Basis e
Aktivierung
Softmax
Sigmoid
Derivate Sigmoid
Logit
Derivate Logit
Softsign
Derivate Softsign
Softplus
Logistic
Gamma
Eulersche Gamma Funktion
Lanczos Gamma-Funktion
Stirling Gamma-Funktion
Log Gamma-Funktion
Beta
Beta Funktion
Logarithmische Beta Funktion
Unvollstaendige Beta Funktion
Inverse unvollstaendige Beta Funktion
Fehlerfunktionen
erf - Fehlerfunktion
erfc - komplementäre Fehlerfunktion
Kombinatorik
Fakultät
Semifakultät
Steigende Fakultät
Fallende Fakultät
Subfakultät
Permutationen und Kombinationen
Permutation
Kombinationen
Mittlerer Binomialkoeffizient
Catalan-Zahl
Lah Zahl