본문 바로가기
Python

4일째 4.2 odds, logit, 시그모이드함수, 소프트맥스

by 통컨이 2020. 8. 18.
728x90

소프트맥스 정리하기

 

이제 딥러닝 4일째 들어섭니다. 다층신경망, 심층신경망 그리고 가중치 문제 등

을 익힙니다. 그러다가 보면 출력층에 값들이 생성됩니다.

그런데 분류문제라고 하면 이들 출력층의 값들을 확률값으로 변환하면 편리합니다.

그러기에 앞서 몇 가지 용어를 정리해 봅니다.

 

중간단계에 사용되는 활성화함수 중 시그모이드 함수 등을 적용하게 되는데 

시그모이드 시그모이드 하는데 시그모이드가 뭐지? 우선 시그모이드를 살펴 봅니다.

sigmoid의 뜻은  " shaped like the letter S:" "S랑 비슷한" 뜻이구나.

 

이와 관련하여 여러가지 용어가 나오는데 하나하나 살펴 보겠습니다.

오즈,odds

성공할 확률이 실패할 확률보다 몇 배인가?를 나타내는 비율 p/(1-p)

비가 올 확률이 75% 이고, 비가 오지 않을 확률은 25%라고 하면

비가 올 확률이 3배가 됩니다. odds=3  (3 :1) 

오즈가 클수록 비올 확률(성공할 확률)이 높게 됩니다.

 

로짓(logit) 

오즈에 loge 를 덮어 쒸은 것입니다.

로그변환(loge)은 증가하면 할수록 커지는 형태입니다.

곱셈/나눗셈을 더하기, 빼기로 전환됩니다.

 

시그모이드 함수군 - S 자와 비슷하게 생긴 함수

(1) 대표적인 함수인 로지스틱 함수

소프트맥스(softmax)

소프트맥스는 분류에서 많이 사용됩니다. 함수식은 다음과 같습니다.

n: 출력층의 뉴런 갯수

s2_log_soft_01

소프트맥스의 한계?

exp 를 취하므로 숫자가 엄청 큽니다. exp(ak)는 엄청나게 큰 수이므로 다음과 같이 조정해 봅니다.

(1) 분모, 분자에 임의의 수를 곱합니다.(그래도 변함이 없음)

(2) 곱의 형태이므로 합의 형태로 변환이 가능합니다.

(3) logC를 C'로 치환합니다. C'로는 어떤 값이 들어가도 되는데 ak 의 최대값을 뺍니다.

 

s2_log_soft_02_

소프트맥스의 특징

소프트맥스함수의 출력은 합이 1입니다. => 확률로 해석 가능하게 됩니다

소프트맥스 함수를 적용해도 각 원소의 값의 크기 순서는 변하지 않습니다

가장 크기가 큰 출력층의 값을 분류로 지정하게 됩니다.

 

참고문헌:

밑바닥부터 시작하는 딥러닝(한빛미디어, 사이토 고키 지음, 개앞맵시 옮김)

딥러닝 첫걸음(한빛미디어, 김성필 저)