Dla wektora wejściowego z = [z₁, z₂, ..., zₙ], softmax oblicza: softmax(zᵢ) = exp(zᵢ) / Σⱼ exp(zⱼ). Eksponent sprawia, że większe wartości są wzmacniane, a suma normalizuje do 1. W mechanizmie uwagi transformerów softmax jest stosowany do macierzy iloczynów skalarnych Q·Kᵀ.
Surowe wyjście sieci neuronowej (logity) to liczby nieograniczone, które trudno interpretować jako prawdopodobieństwa. Softmax konwertuje je na poprawny rozkład prawdopodobieństwa (wartości 0–1 sumujące się do 1).
exp(x) dla x>709 przekracza float64 range — naiwne softmax(x) = exp(x)/sum(exp(x)) powoduje overflow lub underflow. Stabilna implementacja: softmax(x - max(x)).
Gdy jeden logit jest znacznie większy od pozostałych, softmax zwraca wartości bliskie 0 lub 1 — gradienty zanikają. W attention mechanizmach prowadzi to do "attention collapse" (jeden token dominuje).