Chapter 11

소프트맥스 (확률로 바꾸기)

소프트맥스 함수(확률 분포화). 출력을 0~1 사이로 바꾸고 합이 1이 되게 한다.

챕터별 딥러닝 도식화

챕터를 하나씩 진행할 때마다 아래 도식이 조금씩 채워져요. 지금까지의 구조예요.

Softmax점수 → 확률(예시: e를 3으로 가정)
점수
3
1
0
중간
27
3
1
3의 거듭제곱
3³=27
3¹=3
3=1
확률
27/31
3/31
1/31
합으로 나누기
27÷31=27/31
3÷31=3/31
1÷31=1/31

3를 키우면 27(3의 3제곱)

27/31=27 ÷ 31

딥러닝에서 보는 소프트맥스

소프트맥스(Softmax)여러 개의 점수(숫자)를 확률로 바꿔주는 함수예요. 모든 값이 0~1 사이가 되고, 전부 더하면 정확히 1이 돼요. 그래서 '확률'처럼 읽을 수 있어요.

점수를 한 번 키운 뒤(예: $e^z$), 그 합으로 나누면 확률이 돼요. 이렇게 하면 가장 큰 점수가 더욱 크게 부각되고 나머지는 상대적으로 작아져요. 1등과 2등의 차이가 원래보다 뚜렷해지는 거예요.

예: 점수 [3, 1, 0]을 키우면 [약 20, 2.7, 1]이고, 합은 약 23.7이에요. 이걸 합으로 나누면 [0.84, 0.11, 0.04]처럼 확률이 됩니다. 3이 1보다 3배인데, 확률로는 약 8배 차이가 나요!

왜 '키운 뒤 나누기'인가요? 점수 차이를 뚜렷하게 만들기 위해서예요. 차이가 작아도 키우고 나누면 확률 차이가 커져서, '가장 그럴듯한 답'을 골라내기 쉬워요.

분류 문제의 마지막 층에서 거의 항상 소프트맥스를 써요. '강아지 70%, 고양이 25%, 새 5%'처럼 각 클래스별 확률을 구할 수 있어서, 모델이 얼마나 확신하는지도 알 수 있어요.

학습할 때 소프트맥스와 교차 엔트로피 손실을 함께 쓰면 기울기가 깔끔하게 나와서 학습이 안정적이에요. '정답 확률을 높이고 나머지를 낮추는' 방향으로 자연스럽게 학습돼요.

'모든 값이 양수 + 합이 1'이면 확률 분포의 정의와 맞아요. 그래서 통계적으로 가장 자연스러운 확률 변환 방법이에요.

이미지 분류: 마지막 층 점수에 소프트맥스를 적용해 각 클래스 확률(강아지 70%, 고양이 25%, 새 5% 등)을 구해요. 가장 높은 확률이 최종 답이에요.

번역·챗봇: 다음 단어를 고를 때, 후보 단어들에 대한 점수를 소프트맥스로 확률로 바꾸고, 그 확률에 따라 단어를 뽑아요. 높은 확률이 자주 뽑히지만 낮은 확률도 가끔 뽑혀서 다양한 문장이 나와요.

번역에서 집중할 단어 정하기: '어느 단어에 얼마나 집중할지' 관련도 점수에 소프트맥스를 씌워 가중치(확률)로 만들어요. 이 가중치로 가중 평균하면 '집중할 부분'이 강조돼요. 검색에서 '어느 문서를 더 쓸지' 정할 때도 비슷해요.

스팸 필터: '스팸일 확률 / 정상일 확률'을 소프트맥스로 구한 뒤, 더 높은 쪽으로 분류해요.

계산 순서: ① 점수(Z) 구하기 → ② 각 점수를 '키운 값'으로 바꾸기(문제에서는 3의 거듭제곱 사용) → ③ 키운 값들을 전부 더한 '합' 구하기 → ④ 각 키운 값을 합으로 나누면 확률(Y). 이 순서를 따르면 돼요.

빈 칸 찾기: Y가 빈 칸이면 '해당 키운 값 ÷ 합'으로 구해요. 키운 값이 빈 칸이면 '확률 × 합'으로 역계산하고, Z가 빈 칸이면 키운 값에서 역으로 구해요. 합이 빈 칸이면 키운 값들을 전부 더하면 돼요.

검산: 계산이 끝나면 Y의 모든 값이 0~1 사이인지, 전부 더하면 1이 되는지 확인하세요. 1이 안 되면 어딘가 계산이 틀린 거예요. 문제에서 '3의 거듭제곱'을 쓰는지 꼭 확인하세요.

소프트맥스는 점수(숫자)들을 0과 1 사이로 바꾸고, 전부 더하면 1이 되게 만드는 함수예요. 점수 ZZ에 대해 지수(예: 3Z3^Z)를 구한 뒤, 그 합으로 나누면 확률처럼 쓸 수 있어요.

점수(ZZ) → 지수(3Z3^Z) → 합으로 나누기 → 확률(YY)

XX
1
1
\cdot
W
1
1
0
1
+
b
1
1
=
ZZ
3
2
3Z3^Z
27
9
Σ\Sigma
36
YY
3/4
1/4

다중 클래스 분류에서 마지막 층에 자주 사용됩니다.

예시: 한 번에 계산 과정

Z1=11+11+1=3Z_1 = 1 \cdot 1 + 1 \cdot 1 + 1 = 3
Z2=01+11+1=2Z_2 = 0 \cdot 1 + 1 \cdot 1 + 1 = 2
3Z1=33=273^{Z_1} = 3^3 = 27
3Z2=32=93^{Z_2} = 3^2 = 9
Σ=27+9=36\Sigma = 27 + 9 = 36
Y1=3Z1Σ=2736=34Y_1 = \frac{3^{Z_1}}{\Sigma} = \frac{27}{36} = \frac{3}{4}
Y2=3Z2Σ=936=14Y_2 = \frac{3^{Z_2}}{\Sigma} = \frac{9}{36} = \frac{1}{4}

문제

점수(ZZ) → 지수(3Z3^Z) → 합으로 나눈 값(확률 YY) 순서로 계산한 뒤 빈 칸(?)을 채우세요.

이 문제에서는 e 대신 3을 씁니다. 3Z3^Z (예: Z=1이면 3, Z=2이면 9)

점수(ZZ) → 3Z3^Z → 합(Σ\Sigma)으로 나누기 → 확률(YY)

X
1
1
·
W
1
1
1
-1
+
b
-1
1
=
Z
1
1
eZ
3
Σ\Sigma
6
Y
1/2
1/2
확률
0.5
0.5
1 / 20