Logit에 대한 이해가 먼저 필요!
$$ Logit = log_e(\frac{p}{1-p}) $$
로짓(logit)과 확률(p)은 서로 변환 가능하다!
$x$축이 확률이고, $y$축이 로짓인 위의 그래프에서
확률이 0이면, 로짓은 $-\infty$
확률이 1이면, 로짓은 $+\infty$
어떤 Multi-class Classification, 다중 클래스 분류 모델이
Input, Hidden Layer를 지나서 각각 4, 2, -2라는 Logit을 출력한 상황
가장 위에 Logit이 4인 부분을 보면, 위의 Logit의 수식을 활용하여
$$ 4 = log_{e}(\frac{p}{1-p}) $$
양변에 자연지수를 취해주면
$$ e^{4} = e^{log_{e}(\frac{p}{1-p})} $$
$$ e^{4} = \frac{p}{1-p} $$
$$ \frac{p}{1-p} = 54.598,\quad p = 0.982 $$
다른 노드도 같은 방식으로 계산하면
여기서 말하는 $p_{1}=0.982$는
각각의 Class에 대한 확률이지
모든 Class에 대한 확률이 아니다!
($p_{1} + p_{2} + p_{3} > 1$)
모든 Class에 대한 확률을 구하기 위해
자연지수를 취한 로짓값($e^{4}$)을
자연지수를 취한 로짓값들의 합($e^{4} + e^{2} + e^{-2}$)으로 나눠줌!
→ Softmax function
$$ Softmax(z) = \frac{e^{z_{i}}}{\sum_{j=1}^{k} e^{z_{j}}}\quad for\ i = 1,2,...,k $$
이 문제의 경우 $k=3$이므로
3차원 벡터 $z = [z_1, z_2, z_3]$의 로짓 입력을 받으면 소프트맥스 함수는 다음과 같은 출력을 리턴함
$$ Softmax(z) = [\frac{e^{z_{1}}}{\sum_{j=1}^{3} e^{z_{j}}} \frac{e^{z_{2}}}{\sum_{j=1}^{3} e^{z_{j}}} \frac{e^{z_{3}}}{\sum_{j=1}^{3} e^{z_{j}}}] = [p_1, p_2, p_3] = \hat{y} = 예측값 $$
출처 : Youtube, Minsuk Heo 허민석 - [딥러닝 기본] 소프트맥스와 로짓에 대한 이해
https://chacha95.github.io/2019-04-04-logit/
'Programming > DL, Deep Learning' 카테고리의 다른 글
Epoch, Batch size, Step, Iteration (0) | 2023.01.17 |
---|---|
PyTorch (0) | 2023.01.11 |
Odds(오즈) and Logit(로짓) (0) | 2022.05.14 |
PyTorch Tutorial (0) | 2022.02.15 |