반응형
고양이인지 아닌지를 인식하기를 원하는 이미지가 input vector X로 주어질 때, Y에 대한 추정을 의미하는 Y^으로 표현가능한 ‘관측값’을 낼 수 있는 알고리즘이 필요하다. 우리는 확률값으로 주어지는 Y^(관측값)이 Y(실제값)와 동일하기를 바란다. 즉 이미지가 주어질 때, 해당 이미지가 고양이 사진인지 아닌지를 Y^이 정확히 말해줄 수 있어야 한다.
이를 위해 X-dimensional 벡터인 input과 X와 동일한 차원인 W, 그리고 실수값인 b가 주어질 것이다. 이렇게 W,X,b가 주어졌을 때 output값을 어떻게 만들어낼 수 있을까?
한가지 시도해볼 수 있는 건, input에 대하여 linear function을 만드는 것이다. 하지만 linear regression에서 사용하는 모델이기 때문에, 우리가 지금 하고자 하는 문제인 분류문제(binary classification)에는 적합하지 않다. 다시 말해, Y^과 Y값이 확률적으로 얼마나 같은지 살펴보고 싶은 상황이기 때문에, 확률값을 봐야 한다. 다시 말해, 함수의 결과가 0과 1사이의 값으로 나와야만 한다.
linear function을 사용하면 값으로 음수가 나올 수도 있고, 1보다 큰 값이 나와버릴 수도 있기 때문에 적합하지 않다. 따라서 logistic regression을 사용한다. logistic regression이란, linear function에 sigmoid function 공식을 적용하여 나온 값을 말한다. 우리는 이 값을 사용하면 된다.(즉 0과 1사이의 값으로 나올 것이라고 추정가능하다.)
sigmoid 함수의 대략적인 모습은 다음의 그래프와 같다. 0에서 1까지 부드럽게 올라가는 모습이 보인다.
이 함수는 z값이 0일 때 0.5의 값을 지나간다. 여기서 z값이란 다음의 quantity를 의미한다;
sigmoid function 공식은 다음과 같다; "1 over 1+E to the negative Z"
Z값이 매우 커지면, 값은 0에 가까워지게 된다. 따라서 sigmoid값은 1에 가까워진다.
반대로, Z값이 매우 작아지면, 혹은 아주 큰 음수라면, 값은 아주 큰 수가 된다. 따라서, sigmoid값은 0에 가까워진다.
학습시에 우리가 할 일은 W와 b를 학습시켜 최적의 값을 찾도록 하는 것이다. 그래야 Y^(관측값)이 Y(결과값)와 같은 값을 나타내게 된다.
W와 b에 대하여 또 다른 notation을 살펴보자. (단, 아래의 notation을 앞으로 쓸 것은 아니다!)
parameter를 theta로 표현하고 있다. 이 때 theta0가 bias라는 것에 유의한다. (따라서 feature의 개수 + 1개의 파라미터로 표현가능하다.)
deeplearning.ai course에서 위의 notation을 쓰는 일은 없을 것이다.
반응형
'Artificial Intelligence > Deep Learning' 카테고리의 다른 글
coursera_week2_4_Gradient Descent (0) | 2017.10.04 |
---|---|
coursera_week2_3_Logistic Regression Cost Function (0) | 2017.10.04 |
coursera_week2_1_Binary Classification (0) | 2017.10.04 |
coursera_week1_2_Supervised Learning with Neural Networks (0) | 2017.10.04 |
coursera_week1_1_Waht is a neural network? (0) | 2017.10.04 |