LLM 수학 기초 2: softmax와 확률 해석
·4 min read·llm-research
왜 필요한가요
LLM 논문에서는 점수를 계산한 뒤 바로 사용하지 않고 softmax를 자주 적용합니다.
Attention에서도, 다음 토큰 예측에서도 softmax가 핵심 역할을 합니다.
이 노트를 읽으면 아래 수식을 만났을 때 덜 막힙니다.
softmax(x_i) = exp(x_i) / sum_j exp(x_j)
원본 개념과 수식
점수 배열이 있다고 하겠습니다.
scores = [2.0, 1.0, 0.1]
softmax는 각 점수에 exp를 적용하고, 전체 합으로 나눕니다.
softmax(x_i) = exp(x_i) / sum_j exp(x_j)
결과는 다음 성질을 가집니다.
- 모든 값은 0보다 큽니다.
- 전체 합은 1입니다.
- 큰 점수는 더 두드러집니다.
1차 해설: 수식이 말하는 것
softmax는 여러 후보 중 어디에 비중을 둘지 정하는 함수입니다.
exp를 쓰는 이유는 큰 점수와 작은 점수의 차이를 더 분명하게 만들기 위해서입니다.
그 다음 전체 합으로 나누기 때문에 결과를 확률 분포처럼 볼 수 있습니다.
즉, softmax는 다음 변환입니다.
점수 목록 -> 비율 목록
쉬운 예시
세 사람이 발표했고, 심사위원이 점수를 줬다고 하겠습니다.
A: 2.0점
B: 1.0점
C: 0.1점
softmax는 이 점수를 "상금 배분 비율"로 바꿉니다.
A: 가장 큰 몫
B: 중간 몫
C: 작은 몫
중요한 점은 A가 2점이라고 해서 2만원을 받는 것이 아니라는 점입니다.
softmax는 절대 점수를 그대로 쓰지 않고, 후보들 사이의 상대적인 비중을 만듭니다.
Attention에서 다시 만났을 때 읽는 법
Attention 수식은 보통 이렇게 생겼습니다.
Attention(Q, K, V) = softmax(QK^T / sqrt(d_k)) V
여기서 softmax 부분은 이렇게 읽으면 됩니다.
각 토큰을 얼마나 참고할지 비율로 바꾼다.
QK^T는 관련도 점수표이고, softmax는 그 점수표를 가중치표로 바꿉니다.
그 가중치로 V를 섞으면 최종 문맥 벡터가 됩니다.
자주 하는 오해
- softmax 출력이 항상 "정답 확률"은 아닙니다.
- Attention 안의 softmax는 정답 확률이라기보다 참고 비율에 가깝습니다.
- 점수 하나만 보면 의미가 약합니다. softmax는 후보들 사이의 상대 비교입니다.
최소 체크포인트
- softmax는 점수를 합이 1인 비율로 바꿉니다.
- 큰 점수는 더 큰 비중을 받습니다.
- Attention에서는 "어떤 토큰을 얼마나 볼지"를 정하는 단계입니다.