A Fix for Softmax and Cross-Entropy
Paper

A Fix for Softmax and Cross-Entropy

Dan Gnanapragasam
2026.10.26
·Arxiv·by Homin.Lee
#Cross-Entropy#Deep Learning#Gradients#Numerical Stability#Softmax

핵심 포인트

  • 1기존의 Softmax와 Cross-Entropy 구현체는 특정 마진에서 그래디언트가 소실되거나 부동소수점 오차로 인해 노이즈가 발생하는 'Softmax Collapse'와 'Softmax Cancellation'이라는 두 가지 수치적 버그를 가지고 있습니다.
  • 2본 논문은 이러한 문제를 해결하기 위해 `logsumexp`와 `softplus`, `expm1`, `log1p`를 활용한 개선된 수식과 JAX 코드를 제시하여 정밀도 한계점(precision cliff)에서도 안정적인 그래디언트 계산을 보장합니다.
  • 3제안된 기법은 학습 과정에서 발생하는 'Slingshot' 현상을 제거하고 grokking의 속도를 향상시키며, weight decay와 Adam의 $\epsilon$ 하이퍼파라미터 간의 평형을 통해 logit 성장을 안정적으로 제어할 수 있습니다.

본 논문은 현대 딥러닝 프레임워크에서 사용되는 softmax, log-softmax, cross-entropy 구현에 내재된 두 가지 수치적 오류를 정의하고, 이를 해결하기 위한 안정적인 알고리즘을 제안합니다.

1. 핵심 수치적 오류

  • Softmax Collapse (소프트맥스 붕괴): 모델이 정답 클래스에 대해 과도한 확신을 가질 경우, logit margin m=zt−log⁡∑j≠tezjm = z_{t} - \log\sum_{j\neq t} e^{z_{j}}가 증가합니다. 표준 구현에서는 1+e−m1 + e^{-m} 형태의 분모를 계산할 때, mm이 정밀도 임계값(precision cliff, cdc_{d})을 넘어서면 e−me^{-m}이 1에 비해 너무 작아져 반올림 오차로 인해 사라집니다. 이로 인해 정답 클래스의 그래디언트 g~t\tilde{g}_{t}가 0으로 수렴하는 반면, 비정답 클래스의 그래디언트는 0이 되지 않아 그래디언트 합이 0이 되지 않는 비대칭적 오류가 발생합니다. 이는 Adam 등 적응형 최적화 알고리즘에서 Slingshot 현상을 유발합니다.
  • Softmax Cancellation (소프트맥스 상쇄): 지식 증류(Knowledge Distillation) 과정에서 학생 로짓 zS\mathbf{z}_{\mathrm{S}}와 교사 로짓 zT\mathbf{z}_{\mathrm{T}}가 매우 가까울 때, softmax 확률값 간의 뺄셈 연산(q - p) 과정에서 정밀도 손실이 발생합니다. 표준 구현은 미세한 차이를 노이즈로 처리하여, 로짓이 동일함에도 불구하고 0이 아닌 그래디언트가 남는 현상을 보입니다.

2. 제안 방법론

저자들은 logit을 명시적으로 이동시키고 log-sum-exp 및 softplus 연산을 재구성하여 위 문제를 해결합니다.
  • Softmax Collapse 해결: imax⁡=arg⁡max⁡izii_{\max} = \arg\max_{i} z_{i}를 기준으로 로짓을 이동시켜 z~imax⁡=0\tilde{z}_{i_{\max}} = 0이 되게 합니다. 이후 log-softmax를 z~k−softplus⁡(−m)\tilde{z}_{k} - \operatorname{softplus}(-m) 형태로 구현하여, 11을 직접 더하지 않고도 그래디언트가 −e−m/(1+e−m)-e^{-m}/(1+e^{-m}) 형태를 유지하게 함으로써 정밀도를 보존합니다.
  • Softmax Cancellation 해결: 확률값의 뺄셈 대신 로짓 차이 δ=zS−zT\boldsymbol{\delta} = \mathbf{z}_{\mathrm{S}} - \mathbf{z}_{\mathrm{T}}를 사용하여 log-space에서 계산합니다. expm1⁡(x)=ex−1\operatorname{expm1}(x) = e^x - 1과 log1p⁡(x)=log⁡(1+x)\operatorname{log1p}(x) = \log(1+x) 함수를 활용하여 q−p\mathbf{q} - \mathbf{p}를 직접 유도함으로써, zS→zT\mathbf{z}_{\mathrm{S}} \to \mathbf{z}_{\mathrm{T}} 상황에서도 그래디언트가 0으로 정밀하게 수렴하게 합니다.

3. 연구 결과 및 기여

  • Slingshot 제거: 제안된 기법은 학습 과정에서 발생하는 손실 함수의 급격한 스파이크를 제거하여 grokking 현상을 안정화하고 학습 속도를 높입니다.
  • Margin Equilibrium: 가중치 감쇠(weight decay)와 Adam의 ϵ\epsilon 하이퍼파라미터가 로짓 마진의 상한선 m⋆(ϵ)≈log⁡(1/ϵ)m^{\star}(\epsilon) \approx \log(1/\epsilon)을 결정하는 평형 상태를 형성함을 증명했습니다.
  • 범용성: 제안된 알고리즘은 bf16, fp32, fp64 등 모든 부동소수점 정밀도 환경에서 기존의 정밀도 임계값 문제를 근본적으로 해결함을 확인했습니다.