본문으로 건너뛰기
임커밋조회 18

Softmax 구현의 비밀: 왜 최댓값을 빼는가?

Softmax 계산 시 수치적 안정성을 확보하기 위해 입력값에서 최댓값을 빼는 기법의 원리와 효과를 설명한다.

챕터별 상세

00:00

Softmax 공식과 지수 함수의 불안정성

Softmax 함수는 각 입력값의 지수(exponential)를 전체 지수의 합으로 나누어 확률 분포를 만든다. 지수 함수는 입력값이 커짐에 따라 결과값이 기하급수적으로 증가하는 특성을 가진다. 예를 들어 exp(1)은 약 2.7이지만 exp(10)만 되어도 22,000을 넘어서며, 이는 컴퓨터 연산에서 수치적 불안정성을 야기한다.

Softmax는 다중 클래스 분류 문제에서 모델의 출력을 확률로 해석하기 위해 마지막 레이어에 주로 사용된다.

01:17

수치 안정화를 위한 최댓값 뺄셈 기법

Softmax의 분자와 분모에 동일한 값인 exp(-C)를 곱해도 전체 결과값은 변하지 않는다. 여기서 C를 입력 벡터의 최댓값으로 설정하면 모든 입력값 xi에서 C를 뺀 값은 0 이하가 된다. 결과적으로 지수 함수의 입력이 0 이하가 되어 결과값이 항상 0과 1 사이로 제한되며 오버플로우 문제를 원천적으로 차단한다.

지수 법칙 e^(a-b) = e^a / e^b를 이용한 수학적 트릭이다.

02:18

실전 코드 비교 및 float16에서의 효과

PyTorch의 float16 자료형을 사용하여 최댓값 뺄셈 기법의 유무에 따른 차이를 확인했다. [10, 11, 12]와 같은 입력을 넣었을 때 일반적인 Softmax는 float16의 표현 범위를 벗어나 연산에 실패하지만, 최댓값을 뺀 방식은 [0, 1, 2]를 입력했을 때와 동일한 정확한 결과를 산출했다. 이 기법은 Flash Attention과 같은 고성능 최적화 기술의 기초가 된다.

float16은 표현 가능한 수의 범위가 좁아 오버플로우에 매우 취약하다.

AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 03. 17.수집 2026. 03. 17.출처 타입 YOUTUBE

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.