모두의 AI
머신러닝AI논문
로딩 중…

배우기

🏅내 업적

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이 돼요. 그래서 '확률'처럼 읽을 수 있어요.

점수를 한 번 키운 뒤(예: eZe^ZeZ), 그 합(Σ\SigmaΣ)으로 나누면 확률이 돼요. 이렇게 하면 가장 큰 점수가 더욱 크게 부각되고 나머지는 상대적으로 작아져요. 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이 되게 만드는 함수예요. 점수 ZZZ에 대해 지수(예: 3Z3^Z3Z)를 구한 뒤, 그 합으로 나누면 확률처럼 쓸 수 있어요.

점수(ZZZ) → 지수(3Z3^Z3Z) → 합으로 나누기 → 확률(YYY)

XXX
1
1
⋅\cdot⋅
W
1
1
0
1
+
b
1
1
=
ZZZ
3
2
→
3Z3^Z3Z
27
9
→
Σ\SigmaΣ
36
→
YYY
3/4
1/4

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

예시: 한 번에 계산 과정

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

문제

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

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

점수(ZZZ) → 3Z3^Z3Z → 합(Σ\SigmaΣ)으로 나누기 → 확률(YYY)

X
1
1
·
W
1
0
0
1
+
b
1
2
=
Z
3
→
3Z3^Z3Z
9
27
→
Σ\SigmaΣ
36
→
Y
1/4
3/4
확률
0.25
0.75
1 / 10