IT용어위키


Softargmax

softargmax(soft arg‑max, 또는 soft‑argmax)는 비정형적인 arg max의 미분 가능(연속) 근사 버전이다.

정의 및 개념

softargmax는 입력 벡터 \( \mathbf{z} = (z_1, z_2, \dots, z_K) \in \mathbb{R}^K \)에 대해, 각 성분에 확률 형태로 점유율을 부여하는 함수다. 보통 softmax 함수가 “softargmax”라고 불리기도 한다. [1]

표준 softmax 정의는 \[ \sigma(\mathbf{z})_k = \frac{\exp(z_k)}{\sum_{j=1}^K \exp(z_j)} \] 이며, 이 값은 각 인덱스가 얼마나 “최댓값 쪽에 가까운가”를 부드럽게 나타낸다.

softargmax는 다음과 같은 특성을 가진다:

  • 입력이 매우 뾰족하게 분포되어 있을 때 (즉, 한 성분이 다른 성분들보다 훨씬 클 때), softargmax의 출력은 거의 one‑hot 벡터가 된다.
  • 반대로 입력 간 차이가 작을 경우, softargmax는 여러 인덱스에 걸쳐 값을 분배한다 — 즉 여러 후보들이 가능성 있게 반영된다.
  • softargmax는 연속이고 미분 가능하므로, 신경망 학습 중 역전파(backpropagation)에 사용할 수 있다.

또한, softargmax는 온도(temperature) 파라미터 \(\beta\) (또는 \(1/T\))을 도입해 조정할 수 있다. \[ \sigma_\beta(\mathbf{z})_k = \frac{\exp(z_k / \beta)}{\sum_{j=1}^K \exp(z_j / \beta)} \] 이렇게 하면 \(\beta \to 0\)일 때 출력이 argmax 쪽으로 수렴하고, \(\beta\)가 클수록 분포가 평평해진다.

성질

  • softargmax는 출력 벡터가 확률 분포가 되며 (모든 성분 ≥ 0이고 합이 1)
  • softargmax는 입력 벡터에 상수 벡터를 더해도 결과가 변하지 않는다 (translation invariance)
  • softargmax는 연속이고 미분 가능 — 반면 일반 argmax는 불연속이고 미분 불가능
  • softargmax는 argmax의 부드러운 근사 (smooth approximation)로 간주된다. [2]

응용

  • 신경망 분류기: 출력층에서 softargmax(즉 softmax)를 사용해 클래스별 확률을 얻고, 이후 argmax로 최종 클래스를 예측
  • 위치 추정 / 객체 탐지: heatmap 기반 예측에서 가장 높은 위치를 argmax로 선택하는 대신 softargmax를 써서 미분 가능하게 학습하는 방식이 쓰인다.
  • 구조 예측 / 연속 선택: 결정적(argmax) 선택이 어려운 문제에서 부드러운 선택을 허용하며 최적화 가능하게 만드는 데 활용

한계 및 주의점

  • softargmax는 argmax처럼 단일 인덱스를 반환하지 않고, 확률 분포을 반환하므로 어떤 인덱스가 “정답”인지 단 하나로 지칭하기는 어렵다
  • \(\beta\) 값 설정이 중요하다 — 너무 작으면 수치 불안정성이 생기고, 너무 크면 분포이 완만해져 “모두 비슷함” 상태가 됨
  • softargmax는 argmax의 불연속성을 완전히 대체할 수 없으며, 특히 입력 값 차이가 거의 없는 경우에 수렴 속도가 느릴 수 있다

같이 보기

참고 문헌

각주

  1. “Softmax function”, Wikipedia
  2. “Soft version of the maximum function?”, Cross Validated

  출처: IT위키 (IT위키에서 최신 문서 보기)

  * 본 페이지는 IT Wiki에서 미러링된 페이지입니다. 일부 오류나 표현의 누락이 있을 수 있습니다. 원본 문서는 IT Wiki에서 확인하세요!