12.8 소프트맥스(Softmax) 함수
소프트맥스 함수(softmax function)는 실수 벡터를 확률 분포로 변환하는 함수이다. 소프트맥스는 다중 분류 문제의 출력층에서 가장 광범위하게 사용되는 활성화 함수이며, 학술적으로는 범주형 분포(categorical distribution)의 매개 변수를 표현하는 정준적 형태로 알려져 있다. 이 절에서는 소프트맥스의 정의, 학술적 동기, 도함수, 수치 안정성, 교차 엔트로피와의 결합, 활용 사례를 학습 순서에 따라 기술한다.
1. 정의
길이 K의 실수 벡터 \mathbf{z} = (z_1, z_2, \dots, z_K)^\top에 대하여 소프트맥스 함수는 다음과 같이 정의된다.
\text{softmax}(\mathbf{z})_i = \frac{e^{z_i}}{\sum_{j=1}^{K} e^{z_j}}, \quad i = 1, 2, \dots, K
이 함수는 입력 벡터의 각 성분을 양수로 변환한 후 그 합으로 정규화하므로, 출력은 다음의 두 조건을 만족한다.
- 각 성분이 0과 1 사이이다: 0 < \text{softmax}(\mathbf{z})_i < 1
- 모든 성분의 합이 1이다: \sum_{i=1}^{K} \text{softmax}(\mathbf{z})_i = 1
따라서 소프트맥스의 출력은 K개의 범주에 대한 확률 분포로 해석된다.
12.8.2 학술적 동기
소프트맥스는 다음의 학술적 동기에 기반한다.
- 범주형 분포의 표현: 다중 분류 과제에서 출력은 각 범주에 대한 확률을 표현해야 하며, 소프트맥스는 임의의 실수 벡터를 확률 분포로 변환하는 가장 자연스러운 방법이다.
- 최대 우도 추정과의 결합: 소프트맥스와 음의 로그 우도(즉, 교차 엔트로피)의 결합은 학습의 손실 함수로서 정합적이다.
- 일반화 선형 모형: 소프트맥스 회귀(softmax regression 또는 multinomial logistic regression)는 일반화 선형 모형의 하나로서, 이 모형의 정준적 연결 함수가 소프트맥스이다.
- Boltzmann 분포와의 관계: 통계 역학에서 Boltzmann 분포는 동일한 형태를 가지며, e^{z_i}는 상태의 비정규화 확률에 대응한다.
12.8.3 도함수
소프트맥스의 출력 p_i = \text{softmax}(\mathbf{z})_i에 대한 입력 z_j의 편미분은 다음과 같다.
\frac{\partial p_i}{\partial z_j} = \begin{cases} p_i (1 - p_i), & i = j \\ -p_i p_j, & i \neq j \end{cases}
이 도함수는 소프트맥스가 벡터 입력에 대한 벡터 출력의 함수이므로 자코비안(Jacobian) 행렬로 표현된다. 자코비안 행렬은 \text{diag}(\mathbf{p}) - \mathbf{p}\mathbf{p}^\top의 형태로 표현될 수 있다.
2. 수치 안정성
소프트맥스의 직접적 평가는 입력의 절대값이 큰 경우 지수 함수의 오버플로우 또는 언더플로우가 발생할 수 있다. 학술적·실용적으로는 다음의 안정화 기법이 사용된다.
\text{softmax}(\mathbf{z})_i = \frac{e^{z_i - z_{\max}}}{\sum_{j=1}^{K} e^{z_j - z_{\max}}}
여기서 z_{\max} = \max_{j} z_j이다. 이 변형은 수학적으로 동등하지만, 모든 지수의 인수가 0 이하가 되므로 오버플로우가 회피된다.
12.8.5 교차 엔트로피와의 결합
다중 분류 학습에서 소프트맥스의 출력 \mathbf{p}와 실제 라벨에 해당하는 원-핫 벡터 \mathbf{t} 사이의 교차 엔트로피 손실은 다음과 같이 정의된다.
\mathcal{L} = -\sum_{i=1}^{K} t_i \log p_i
이 손실의 입력 z_j에 대한 기울기는 다음과 같이 매우 단순한 형태로 표현된다.
\frac{\partial \mathcal{L}}{\partial z_j} = p_j - t_j
이 단순한 형태는 학술적·실용적으로 매우 중요한 결과이다. 소프트맥스와 교차 엔트로피의 결합은 학습 신호가 분류 오류에 비례하도록 하며, 학습의 안정성과 수렴성을 향상시킨다.
12.8.6 활용 사례
소프트맥스는 다음의 학술적 활용 사례에서 사용된다.
- 다중 분류 출력층: 영상 분류, 텍스트 분류, 음성 인식 등의 다중 분류 과제의 출력층
- 어텐션 가중치: 트랜스포머의 어텐션 메커니즘에서 키와 질의의 내적 점수를 정규화하는 데에 사용
- 정책 표현: 강화 학습의 정책 망에서 이산 행동 공간에 대한 확률 분포를 표현
- 혼합 모형: 가우시안 혼합 모형 등의 혼합 가중치를 표현
12.8.7 온도 매개 변수
소프트맥스에 온도 매개 변수(temperature) T > 0를 도입하면 다음과 같이 일반화된다.
\text{softmax}_T(\mathbf{z})_i = \frac{e^{z_i / T}}{\sum_{j=1}^{K} e^{z_j / T}}
T가 작으면 분포가 가장 큰 성분에 집중되고, T가 크면 분포가 평탄해진다. 온도 매개 변수는 학술적으로 지식 증류(knowledge distillation), 강화 학습의 탐색-활용 균형, 표본 추출의 다양성 조절 등에 활용된다.
3. 출처 및 버전 정보
- Bridle, J. S., Probabilistic Interpretation of Feedforward Classification Network Outputs, with Relationships to Statistical Pattern Recognition, Neurocomputing: Algorithms, Architectures and Applications, Springer, 1990
- Bishop, C. M., Pattern Recognition and Machine Learning, Springer, 2006
- Goodfellow, I., Bengio, Y., Courville, A., Deep Learning, MIT Press, 2016
- Hinton, G., Vinyals, O., Dean, J., Distilling the Knowledge in a Neural Network, NIPS Deep Learning Workshop, 2014
- McCullagh, P., Nelder, J. A., Generalized Linear Models, Chapman and Hall, 1989