소프트맥스 정리하기
이제 딥러닝 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: 출력층의 뉴런 갯수
소프트맥스의 한계?
exp 를 취하므로 숫자가 엄청 큽니다. exp(ak)는 엄청나게 큰 수이므로 다음과 같이 조정해 봅니다.
(1) 분모, 분자에 임의의 수를 곱합니다.(그래도 변함이 없음)
(2) 곱의 형태이므로 합의 형태로 변환이 가능합니다.
(3) logC를 C'로 치환합니다. C'로는 어떤 값이 들어가도 되는데 ak 의 최대값을 뺍니다.
소프트맥스의 특징
소프트맥스함수의 출력은 합이 1입니다. => 확률로 해석 가능하게 됩니다
소프트맥스 함수를 적용해도 각 원소의 값의 크기 순서는 변하지 않습니다
가장 크기가 큰 출력층의 값을 분류로 지정하게 됩니다.
참고문헌:
밑바닥부터 시작하는 딥러닝(한빛미디어, 사이토 고키 지음, 개앞맵시 옮김)
딥러닝 첫걸음(한빛미디어, 김성필 저)
'Python' 카테고리의 다른 글
4일째 4.1 각 층의 신호 전달 구현 & 델타 규칙 (0) | 2020.08.18 |
---|---|
3일째 3.2 활성화 함수(activation function) 이 뭔가요? (0) | 2020.08.14 |
2일째 2.2 그림그리기 -matplotlib (0) | 2020.08.13 |
제2강 2.1 넘파이 사용 - import, np.array( ) (0) | 2020.08.13 |