[모두의 딥러닝] lec 06-2. Softmax classifier의 cost 함수
Where is sigmoid?
X를 주게 되면 이전처럼 0, 1로 나오지 않고 vector로 나올 것임. (A, B, C)
빨간색처럼 실수 값이 나오는 것이 아니라 우리는 0~1 사이의 값으로 나오길 원한다!
정리
- logistic classifier를 이용하여 벡터를 주어 계산을 하게 되면 y와 같은 입력 값에 대한 세 개의 vector 값이 나오게 된다.
- A: 2.0 B: 1.0 C: 0.1 (각각 해당되는 값들)
- p의 값을 모두 더하면 1이 되는 형태로 표현하면 어떨까?
--> 이것을 하기 위한 것이 Softmax
Softmax 함수
n개의 값을 softmax에 넣게 되면 값이 산출된다. 여기에는 우리가 원하는 것들이 다 들어있다.
1) 이것이 0~1 사이의 값이다.
2) 전체의 합이 1이 된다. --> 각각을 확률로 볼 수 있다.
A가 나올 확률이 0.7, B가 나올 확률이 0.2, C로 나올 확률이 0.1이라고 말할 수 있음.
- 'ONE-HOT' ENCODING 기법
: 이들 중 하나를 고를 수 있는 기법
: 제일 큰 값을 1로 두고 나머지를 0으로 둔다.
: argmax 이용 (tensorflow)
==> 여기까지 우리의 hypothesis는 완성됨.
Cost function
예측 값과 실제 값이 얼마나 차이나는 지 알려주는 cost function을 설계해야 함.
cost function을 최소화함으로써 학습을 완성.
- CROSS-ENTROPY cost function
L(=이전에서는 Y라 함): 실제 값
S(Y) (=Y의 hat. softmax 함수에 넣은 값.): 예측 값
: 이 둘 사이의 차이를 알기 위하여 CROSS-ENTROPY 함수를 통하여 구한다. (파란 네모)
: -log 함수는 지난번에 본 그래프임.
: softmax를 통과한 값이라 항상 0~1 사이의 값을 가진다.
이 함수는 값이 0일 때는 무한대, 1일 때는 0에 가까워진다.
(ex1) 실제 값은 B가 나왔음.
두 가지 label (A, B)이 있다고 가정
예측 경우 두 가지)
- cost function이 하고 싶은 것은 예측이 맞을 때는 값이 작고, 틀릴 때는 값이 큰 것일 것
1) 예측이 맞은 경우(B)
element wise 곱 후 각 element를 합한다. 최종 값 = 0.
--> good! (이유: 예측이 맞았을 때는 cost가 최소화되어야 함)
2) 예측이 틀린 경우(A)
최종 값 = 무한대
--> good! (이유: 예측이 틀렸을 때 cost가 큰 값이 나와야 함)
(ex2) 실제 값은 A가 나왔음.
L(실제 값)이 A가 나왔을 때!
예측 경우 두 가지)
1) 예측이 맞은 경우(A)
최종 값 = 0
2) 예측이 틀린 경우(B)
최종 값 = 무한대
==> 우리가 원하는 형태의 cost 함수!!!!
Logistic cost VS cross entropy
이 두 줄은 같은 것이다.
(왜 그런지 한번 생각해보기)
많은 형태의 training data가 있을 경우에는?
전체의 거리를 (D) 구한 후 합하여 개수 나누기(평균)
마지막 단계: Gradient descent (cost를 최소화하는 W vector 찾기)
LOSS(Cost) function은 밥그릇 모양.
어디서 시작하든 경사면을 타고 내려가면 최저값을 찾을 수 있다.
경사면(기울기) = 함수를 미분하는 것.
여기에서는 loss 함수가 복잡하기 때문에 미분하는 것은 다루지 않을 것.
알파 값만큼 한 발자국씩 내려가면서 최저값을 찾게 됨.
'인공지능' 카테고리의 다른 글
[모두의 딥러닝] lab 06-2. TensorFlow로 Fancy Softmax Classification 구현하기 (0) | 2019.05.03 |
---|---|
[모두의 딥러닝] lab 06-1. TensorFlow로 Softmax Classification 구현하기 (1) | 2019.04.10 |
[모두의 딥러닝] lec 06-1. Softmax Regression: 기본 개념 소개 (0) | 2019.04.08 |
[모두의 딥러닝] lab 05. TensorFlow로 Logistic Classification 구현 (0) | 2019.04.08 |
[모두의 딥러닝] lec 05-2. Logistic Regression의 cost 함수 설명 (0) | 2019.04.08 |
댓글