소프트맥스 함수

편집 역사 토론
수치해석 통계 소프트웨어 마지막 수정: 2026-08-06 05:29:44

1. 개요[편집]

소프트맥스 함수
Softmax function
정의$p_i = e^{z_i/T} \big/ \sum_j e^{z_j/T}$
정의역 → 치역$\mathbb{R}^K \to$ 확률 단체 $\Delta^{K-1}$
야코비안$\mathrm{diag}(p) - p p^\top$ (PSD, 랭크 $K-1$)
동일 형태볼츠만 분포 ($T$ = 온도)
수치 함정최댓값 빼기를 잊으면 `exp` 오버플로

소프트맥스 함수(softmax function)는 실수 벡터 zRK\mathbf{z} \in \mathbb{R}^K 를 양수이고 합이 1인 벡터, 즉 확률분포로 보내는 사상으로

pi=exp(zi/T)j=1Kexp(zj/T)p_i = \frac{\exp(z_i / T)}{\sum_{j=1}^{K} \exp(z_j / T)}

로 정의된다. 여기서 ziz_i 를 로짓(logit), T>0T > 0 를 온도(temperature)라 부른다. 이름은 “부드러운 최댓값”이지만 실제로 부드럽게 근사하는 대상은 max\max 가 아니라 argmax\arg\max 다. 진짜 max\max 의 매끄러운 판본은 로그-합-지수 LSE(z)=logjezj\mathrm{LSE}(\mathbf{z}) = \log\sum_j e^{z_j} 이고, 소프트맥스는 정확히 그것의 기울기다.1

zilogjezj=pi\frac{\partial}{\partial z_i}\log\sum_j e^{z_j} = p_i

이 한 줄이 소프트맥스의 성질을 거의 다 함축한다. LSE는 볼록함수이므로 그 기울기인 소프트맥스는 단조 사상이고, 야코비안은 LSE의 헤세 행렬이라 항상 준양정부호다. 분류기의 출력층, 어텐션 메커니즘의 가중치, 볼츠만 탐험 정책, 이산 잠재변수의 완화까지 — 이 함수가 안 들어가는 현대 심층 학습 파이프라인을 찾는 게 더 어렵다.

2. 상수 이동 불변성과 수치 안정화[편집]

가장 먼저 알아야 할 성질은 임의의 상수 cc 에 대해 softmax(z+c1)=softmax(z)\mathrm{softmax}(\mathbf{z} + c\mathbf{1}) = \mathrm{softmax}(\mathbf{z}) 라는 것이다. 분자와 분모에 ec/Te^{c/T} 가 똑같이 곱해져 상쇄되므로 자명하다. 이 자명한 사실이 두 가지 중요한 결과를 낳는다.

(1) 실무에서 제일 자주 만나는 수치 함정의 해법. 로짓을 그대로 지수함수에 넣으면 안 된다. 배정밀도에서 eze^{z}z709z \gtrsim 709 에서 오버플로해 inf 가 되고, inf/inf 는 곧 NaN 이다. 단정밀도라면 한계가 z88z \approx 88 로 훨씬 낮아 어텐션 로짓 정도로도 쉽게 넘긴다. 표준 처방은 최댓값 빼기다.

m=maxjzj,pi=exp(zim)jexp(zjm)m = \max_j z_j, \qquad p_i = \frac{\exp(z_i - m)}{\sum_j \exp(z_j - m)}

이동 불변성 덕에 값은 정확히 동일한데, 이제 지수의 인수가 전부 0\le 0 이라 최대 항이 정확히 1이고 분모는 항상 [1,K][1, K] 구간에 있다. 오버플로가 원천 차단되고, 작은 항이 언더플로로 0이 되는 것은 어차피 무시할 만한 기여라 문제가 되지 않는다. 로그 확률이 필요하면 나눗셈-로그를 하지 말고 log-softmax

logpi=(zim)logjexp(zjm)\log p_i = (z_i - m) - \log\sum_j \exp(z_j - m)

로 직접 계산한다. pip_i 를 먼저 구한 뒤 로그를 취하면 pip_i 가 언더플로로 0이 된 성분에서 -\infty 가 나오지만, 위 식은 그런 성분에도 유한한 큰 음수를 준다. 프레임워크의 손실 함수가 하나같이 CrossEntropyLoss(logits) 처럼 로짓을 직접 받는 이유가 이것이다. 사용자가 softmax를 먼저 씌우고 log를 취하는 순간 이 안정화가 무력화된다.2

(2) 파라미터 하나가 남아돈다. 이동 불변성은 소프트맥스가 단사가 아니라는 뜻이다. z\mathbf{z}z+c1\mathbf{z} + c\mathbf{1} 이 같은 출력을 주므로, KK 개의 로짓 중 실질적 자유도는 K1K - 1 개뿐이다. 야코비안이 특이하고(널벡터가 1\mathbf{1}) 랭크가 K1K-1 인 것도 같은 이야기다. 통계학의 다항 로짓 모형이 한 범주를 기준으로 고정해 계수를 없애는 것은 이 잉여를 제거하는 정석이고, 이진 분류에서 K=2K=2 소프트맥스가 로지스틱 시그모이드와 정확히 같아지는 것도 z1z2z_1 - z_2 하나만 남기 때문이다. 신경망에서는 보통 그냥 놔두는데, 그 결과 헤세 행렬이 특이해져 조건수가 나빠지므로 가중치 감쇠가 사실상 이 방향을 고정하는 역할을 겸한다.

3. 야코비안과 교차엔트로피의 마법[편집]

T=1T = 1 에서 미분하면

pizj=pi(δijpj),행렬로는J=diag(p)pp\frac{\partial p_i}{\partial z_j} = p_i(\delta_{ij} - p_j), \qquad\text{행렬로는}\qquad J = \mathrm{diag}(\mathbf{p}) - \mathbf{p}\mathbf{p}^\top

이다. 이 행렬은 정확히 다항분포의 공분산 행렬이고(대각이 pi(1pi)p_i(1-p_i), 비대각이 pipj-p_ip_j), 준양정부호이며 J1=0J\mathbf{1} = \mathbf{0} 이다.

여기에 교차엔트로피 손실 L=iyilogpi\mathcal{L} = -\sum_i y_i \log p_i 를 얹으면 유명한 축약이 일어난다. 연쇄법칙으로

Lzj=iyipipi(δijpj)=yj+pjiyi=pjyj\frac{\partial \mathcal{L}}{\partial z_j} = -\sum_i \frac{y_i}{p_i}\, p_i(\delta_{ij} - p_j) = -y_j + p_j \sum_i y_i = p_j - y_j

기울기가 정확히 py\mathbf{p} - \mathbf{y} 로 접힌다. 예측 확률에서 정답 원핫을 뺀 것, 그 이상도 이하도 아니다. 이 결과가 실용적으로 중요한 이유는 세 가지다. 첫째, 야코비안 JJ 를 명시적으로 만들 필요가 없어 O(K2)O(K^2)O(K)O(K) 로 줄어든다(KK 가 어휘 크기 수십만인 언어 모형에서 이 차이는 결정적이다). 둘째, 1/pi1/p_i 라는 폭발 가능한 항이 소거되어 수치적으로 안전하다. 셋째, 기울기가 잔차 형태라 경사하강법이 포화 구간에서도 죽지 않는다 — 시그모이드 + 제곱오차 조합이 겪는 기울기 소실이 여기서는 일어나지 않는다. 프레임워크가 softmax와 교차엔트로피를 한 연산으로 묶어 파는 이유가 바로 이 융합이며, 굳이 분리하면 자동 미분이 두 단계를 따로 미분해 위 이점을 전부 잃는다.

한 걸음 물러서면 이 손실은 결국 경험분포와 모형분포 사이의 쿨백-라이블러 발산이고, 그 최소화는 최대우도추정 그 자체다. 잠재변수가 끼면 소프트맥스는 기댓값 최대화 알고리즘의 E-단계에서 책임도(responsibility) 계산으로 등장한다 — 가우시안 혼합 모형γik\gamma_{ik} 가 정확히 로그 결합확률에 대한 소프트맥스다.

4. 온도, 그리고 볼츠만 분포[편집]

온도 TT 는 분포의 뾰족함을 조절한다. 극한이 명확하다.

  • T0+T \to 0^+: 최대 로짓 하나에 확률 1이 몰려 원핫(argmax\arg\max)으로 수렴한다. 로짓이 동점이면 그 사이에서 균등하게 갈린다.
  • TT \to \infty: 로짓 차이가 전부 0으로 눌려 균등분포 1/K1/K 가 된다.
  • T=1T = 1: 표준 소프트맥스.

형태가 통계물리의 맥스웰-볼츠만 분포와 완전히 같다는 점은 우연이 아니다. 에너지 EiE_i 인 상태의 확률이 pieEi/kBTp_i \propto e^{-E_i/k_BT} 인 정준 분포에서 zi=Eiz_i = -E_i, kB=1k_B = 1 로 두면 그대로 소프트맥스이고, 분모의 jeEj/kBT\sum_j e^{-E_j/k_BT} 는 분배함수 ZZ 다. 그래서 로그-합-지수는 자유에너지 TlogZ-T\log Z 에 대응하고, “엔트로피 제약하에 기대 에너지를 최소화하면 볼츠만 분포가 나온다”는 정준 앙상블의 변분 원리가 곧 “소프트맥스는 엔트로피 정칙화된 argmax\arg\max” 라는 최적화 명제와 같은 말이 된다.

softmax(z/T)=argmaxpΔK1{pz+TH(p)}\mathrm{softmax}(\mathbf{z}/T) = \arg\max_{\mathbf{p} \in \Delta^{K-1}} \left\{ \mathbf{p}^\top \mathbf{z} + T\,H(\mathbf{p}) \right\}

응용에서의 온도 사용례도 이 그림에서 바로 읽힌다. 강화 학습의 볼츠만 탐험(소프트맥스 정책)은 TT 로 탐험-이용을 조절하고, 담금질 모사TT 를 내리며 전역 탐색에서 국소 탐색으로 옮겨간다. 지식 증류TT 를 2~5 정도로 올려 교사 모형의 “틀린 답들 사이 상대 순위”까지 학생에게 넘긴다. 반대로 모형 보정(calibration) 문제에서는 학습이 끝난 뒤 검증셋으로 TT 하나만 다시 맞추는 온도 스케일링이, 과신하는 심층 분류기의 신뢰도를 고치는 가장 저렴하고 강력한 방법으로 알려져 있다.

어텐션 메커니즘1/dk1/\sqrt{d_k} 도 사실상 온도다. 질의·키 성분이 평균 0, 분산 1로 독립이면 내적 qk\mathbf{q}\cdot\mathbf{k} 의 분산은 dkd_k, 표준편차는 dk\sqrt{d_k} 다. 나눠주지 않으면 dk=128d_k = 128 만 돼도 로짓이 수십 단위로 벌어져 소프트맥스가 사실상 argmax\arg\max 로 포화하고, 야코비안 diag(p)pp\mathrm{diag}(p) - pp^\top 가 거의 0이 되어 기울기가 사라진다. dk\sqrt{d_k} 로 나누는 것은 T=dkT = \sqrt{d_k} 를 쓰는 것과 같고, 목적은 로짓 규모를 O(1)O(1) 로 유지해 포화를 막는 것이다.

5. 이산 표본추출과 검벨-소프트맥스[편집]

소프트맥스로 확률을 만들었으면 다음 수순은 표본추출인데, argmax\arg\max 나 범주형 샘플링은 미분 불가능해서 역전파가 끊긴다. 여기서 등장하는 것이 검벨-최대 트릭이다. gig_i 를 독립인 표준 검벨 분포 난수라 할 때

argmaxi(zi+gi)    Categorical(softmax(z))\arg\max_i \left( z_i + g_i \right) \;\sim\; \mathrm{Categorical}(\mathrm{softmax}(\mathbf{z}))

가 정확히 성립한다. 정규화 상수를 계산하지 않고도 정확한 범주형 표본을 얻는 우아한 항등식이다. 그리고 여기서 argmax\arg\max 를 온도 τ\tau 짜리 소프트맥스로 완화한 것이 검벨-소프트맥스(concrete distribution)다.

p~i=exp((zi+gi)/τ)jexp((zj+gj)/τ)\tilde{p}_i = \frac{\exp\big((z_i + g_i)/\tau\big)}{\sum_j \exp\big((z_j + g_j)/\tau\big)}

τ0\tau \to 0 이면 원래의 이산 표본으로 수렴하고, τ\tau 가 크면 매끄럽지만 편향된 완화가 된다. 편향-분산 트레이드오프를 τ\tau 로 조절하면서 이산 잠재변수 모형을 재파라미터화 기울기로 학습할 수 있게 해 준 것이 이 기법의 공헌이다. 실무에서는 순전파는 하드 원핫, 역전파는 완화된 값을 쓰는 straight-through 변형이 널리 쓰인다.3

6. 관련 문서[편집]

7. Footnotes[편집]

  1. 그래서 “소프트맥스”라는 이름이 잘못됐다는 지적이 오래전부터 있었다. 정직한 이름은 소프트아그맥스(softargmax)인데, 이미 수십만 편의 논문이 softmax라고 부른 뒤라 되돌릴 방법이 없다. 수치해석의 “의사스펙트럼”이 가짜가 아니듯, 소프트맥스도 max를 부드럽게 만든 게 아니다.

  2. 모델 마지막 층에 Softmax 를 넣고 손실로 CrossEntropyLoss 를 쓰면 소프트맥스가 두 번 적용된다. 학습이 안 되는 게 아니라 미묘하게 덜 되는 상태가 되어 며칠을 태우기 딱 좋다. 초심자 디버깅 체크리스트 상위권에 늘 올라 있는 항목이다.

  3. straight-through 추정량은 순전파와 역전파가 서로 다른 함수를 쓰는, 엄밀히 말하면 편향된 기울기다. 수학적으로는 께름칙하지만 잘 작동한다. 이 바닥에는 “이론적으로 정당하지만 안 되는 것”과 “정당화가 애매한데 잘 되는 것”이 늘 공존하고, 벤치마크는 후자의 편을 든다.