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)는 실수 벡터 를 양수이고 합이 1인 벡터, 즉 확률분포로 보내는 사상으로
로 정의된다. 여기서 를 로짓(logit), 를 온도(temperature)라 부른다. 이름은 “부드러운 최댓값”이지만 실제로 부드럽게 근사하는 대상은 가 아니라 다. 진짜 의 매끄러운 판본은 로그-합-지수 이고, 소프트맥스는 정확히 그것의 기울기다.1
이 한 줄이 소프트맥스의 성질을 거의 다 함축한다. LSE는 볼록함수이므로 그 기울기인 소프트맥스는 단조 사상이고, 야코비안은 LSE의 헤세 행렬이라 항상 준양정부호다. 분류기의 출력층, 어텐션 메커니즘의 가중치, 볼츠만 탐험 정책, 이산 잠재변수의 완화까지 — 이 함수가 안 들어가는 현대 심층 학습 파이프라인을 찾는 게 더 어렵다.
2. 상수 이동 불변성과 수치 안정화[편집]
가장 먼저 알아야 할 성질은 임의의 상수 에 대해 라는 것이다. 분자와 분모에 가 똑같이 곱해져 상쇄되므로 자명하다. 이 자명한 사실이 두 가지 중요한 결과를 낳는다.
(1) 실무에서 제일 자주 만나는 수치 함정의 해법. 로짓을 그대로 지수함수에 넣으면 안 된다. 배정밀도에서 는 에서 오버플로해 inf 가 되고, inf/inf 는 곧 NaN 이다. 단정밀도라면 한계가 로 훨씬 낮아 어텐션 로짓 정도로도 쉽게 넘긴다. 표준 처방은 최댓값 빼기다.
이동 불변성 덕에 값은 정확히 동일한데, 이제 지수의 인수가 전부 이라 최대 항이 정확히 1이고 분모는 항상 구간에 있다. 오버플로가 원천 차단되고, 작은 항이 언더플로로 0이 되는 것은 어차피 무시할 만한 기여라 문제가 되지 않는다. 로그 확률이 필요하면 나눗셈-로그를 하지 말고 log-softmax 를
로 직접 계산한다. 를 먼저 구한 뒤 로그를 취하면 가 언더플로로 0이 된 성분에서 가 나오지만, 위 식은 그런 성분에도 유한한 큰 음수를 준다. 프레임워크의 손실 함수가 하나같이 CrossEntropyLoss(logits) 처럼 로짓을 직접 받는 이유가 이것이다. 사용자가 softmax를 먼저 씌우고 log를 취하는 순간 이 안정화가 무력화된다.2
(2) 파라미터 하나가 남아돈다. 이동 불변성은 소프트맥스가 단사가 아니라는 뜻이다. 와 이 같은 출력을 주므로, 개의 로짓 중 실질적 자유도는 개뿐이다. 야코비안이 특이하고(널벡터가 ) 랭크가 인 것도 같은 이야기다. 통계학의 다항 로짓 모형이 한 범주를 기준으로 고정해 계수를 없애는 것은 이 잉여를 제거하는 정석이고, 이진 분류에서 소프트맥스가 로지스틱 시그모이드와 정확히 같아지는 것도 하나만 남기 때문이다. 신경망에서는 보통 그냥 놔두는데, 그 결과 헤세 행렬이 특이해져 조건수가 나빠지므로 가중치 감쇠가 사실상 이 방향을 고정하는 역할을 겸한다.
3. 야코비안과 교차엔트로피의 마법[편집]
에서 미분하면
이다. 이 행렬은 정확히 다항분포의 공분산 행렬이고(대각이 , 비대각이 ), 준양정부호이며 이다.
여기에 교차엔트로피 손실 를 얹으면 유명한 축약이 일어난다. 연쇄법칙으로
즉 기울기가 정확히 로 접힌다. 예측 확률에서 정답 원핫을 뺀 것, 그 이상도 이하도 아니다. 이 결과가 실용적으로 중요한 이유는 세 가지다. 첫째, 야코비안 를 명시적으로 만들 필요가 없어 가 로 줄어든다( 가 어휘 크기 수십만인 언어 모형에서 이 차이는 결정적이다). 둘째, 라는 폭발 가능한 항이 소거되어 수치적으로 안전하다. 셋째, 기울기가 잔차 형태라 경사하강법이 포화 구간에서도 죽지 않는다 — 시그모이드 + 제곱오차 조합이 겪는 기울기 소실이 여기서는 일어나지 않는다. 프레임워크가 softmax와 교차엔트로피를 한 연산으로 묶어 파는 이유가 바로 이 융합이며, 굳이 분리하면 자동 미분이 두 단계를 따로 미분해 위 이점을 전부 잃는다.
한 걸음 물러서면 이 손실은 결국 경험분포와 모형분포 사이의 쿨백-라이블러 발산이고, 그 최소화는 최대우도추정 그 자체다. 잠재변수가 끼면 소프트맥스는 기댓값 최대화 알고리즘의 E-단계에서 책임도(responsibility) 계산으로 등장한다 — 가우시안 혼합 모형의 가 정확히 로그 결합확률에 대한 소프트맥스다.
4. 온도, 그리고 볼츠만 분포[편집]
온도 는 분포의 뾰족함을 조절한다. 극한이 명확하다.
- : 최대 로짓 하나에 확률 1이 몰려 원핫()으로 수렴한다. 로짓이 동점이면 그 사이에서 균등하게 갈린다.
- : 로짓 차이가 전부 0으로 눌려 균등분포 가 된다.
- : 표준 소프트맥스.
형태가 통계물리의 맥스웰-볼츠만 분포와 완전히 같다는 점은 우연이 아니다. 에너지 인 상태의 확률이 인 정준 분포에서 , 로 두면 그대로 소프트맥스이고, 분모의 는 분배함수 다. 그래서 로그-합-지수는 자유에너지 에 대응하고, “엔트로피 제약하에 기대 에너지를 최소화하면 볼츠만 분포가 나온다”는 정준 앙상블의 변분 원리가 곧 “소프트맥스는 엔트로피 정칙화된 ” 라는 최적화 명제와 같은 말이 된다.
응용에서의 온도 사용례도 이 그림에서 바로 읽힌다. 강화 학습의 볼츠만 탐험(소프트맥스 정책)은 로 탐험-이용을 조절하고, 담금질 모사는 를 내리며 전역 탐색에서 국소 탐색으로 옮겨간다. 지식 증류는 를 2~5 정도로 올려 교사 모형의 “틀린 답들 사이 상대 순위”까지 학생에게 넘긴다. 반대로 모형 보정(calibration) 문제에서는 학습이 끝난 뒤 검증셋으로 하나만 다시 맞추는 온도 스케일링이, 과신하는 심층 분류기의 신뢰도를 고치는 가장 저렴하고 강력한 방법으로 알려져 있다.
어텐션 메커니즘의 도 사실상 온도다. 질의·키 성분이 평균 0, 분산 1로 독립이면 내적 의 분산은 , 표준편차는 다. 나눠주지 않으면 만 돼도 로짓이 수십 단위로 벌어져 소프트맥스가 사실상 로 포화하고, 야코비안 가 거의 0이 되어 기울기가 사라진다. 로 나누는 것은 를 쓰는 것과 같고, 목적은 로짓 규모를 로 유지해 포화를 막는 것이다.
5. 이산 표본추출과 검벨-소프트맥스[편집]
소프트맥스로 확률을 만들었으면 다음 수순은 표본추출인데, 나 범주형 샘플링은 미분 불가능해서 역전파가 끊긴다. 여기서 등장하는 것이 검벨-최대 트릭이다. 를 독립인 표준 검벨 분포 난수라 할 때
가 정확히 성립한다. 정규화 상수를 계산하지 않고도 정확한 범주형 표본을 얻는 우아한 항등식이다. 그리고 여기서 를 온도 짜리 소프트맥스로 완화한 것이 검벨-소프트맥스(concrete distribution)다.
이면 원래의 이산 표본으로 수렴하고, 가 크면 매끄럽지만 편향된 완화가 된다. 편향-분산 트레이드오프를 로 조절하면서 이산 잠재변수 모형을 재파라미터화 기울기로 학습할 수 있게 해 준 것이 이 기법의 공헌이다. 실무에서는 순전파는 하드 원핫, 역전파는 완화된 값을 쓰는 straight-through 변형이 널리 쓰인다.3
6. 관련 문서[편집]
- 어텐션 메커니즘 · 트랜스포머 · 순환 신경망
- 쿨백-라이블러 발산 · 최대우도추정 · 젠센 부등식
- 기댓값 최대화 알고리즘 · 가우시안 혼합 모형 · 변분 추론
- 맥스웰-볼츠만 분포 · 정준 앙상블 · 담금질 모사
- 강화 학습 · 정책경사 · 부동소수점 연산
7. Footnotes[편집]
-
그래서 “소프트맥스”라는 이름이 잘못됐다는 지적이 오래전부터 있었다. 정직한 이름은 소프트아그맥스(softargmax)인데, 이미 수십만 편의 논문이 softmax라고 부른 뒤라 되돌릴 방법이 없다. 수치해석의 “의사스펙트럼”이 가짜가 아니듯, 소프트맥스도 max를 부드럽게 만든 게 아니다. ↩
-
모델 마지막 층에
Softmax를 넣고 손실로CrossEntropyLoss를 쓰면 소프트맥스가 두 번 적용된다. 학습이 안 되는 게 아니라 미묘하게 덜 되는 상태가 되어 며칠을 태우기 딱 좋다. 초심자 디버깅 체크리스트 상위권에 늘 올라 있는 항목이다. ↩ -
straight-through 추정량은 순전파와 역전파가 서로 다른 함수를 쓰는, 엄밀히 말하면 편향된 기울기다. 수학적으로는 께름칙하지만 잘 작동한다. 이 바닥에는 “이론적으로 정당하지만 안 되는 것”과 “정당화가 애매한데 잘 되는 것”이 늘 공존하고, 벤치마크는 후자의 편을 든다. ↩