소프트맥스

  • 2017-05-29 (modified: 2025-11-15)

임의의 실수 벡터확률 분포로 바꿔주는 함수.

길이가 KK인 실수 벡터 ZZii번째 softmax 값을 구하는 식은 보통 이렇게 표현한다.

σ(Z)i=ezij=1Kezj\sigma(\mathbf{Z})_i = \frac{e^{z_i}}{\sum_{j=1}^K e^{z_j}}
  • ZZ의 각 원소 ziz_i에 각각 지수 함수를 적용하여 모든 원소를 0보다 큰 어떤 실수로 바꾼다.
  • 지수 함수는 단조 증가하므로 변환 전/후의 원소들의 순위rank가 그대로 보존된다.
  • 지수 함수의 특성으로 인해 큰 값과 작은 값 사이의 비율이 더욱 커진다.
  • 정규화로 인해 전체 원소의 값을 합치면 1이 되도록 스케일이 보정된다.

이렇게 얻어진 벡터는 확률 분포가 갖춰야할 모든 성질에 부합한다. 추가로, 가장 큰 값이 더욱 두드러지게 된다는 점에서 그 결과가 argmax와 유사하다. 즉, 가장 큰 원소의 위치는 원래 벡터의 argmax와 동일.