Machine Learning with Tensorflow) 4. Logistic Classification


Logistic Classification은 전 강의와 다르게 Regression 부류가 아닌 Classification ML이다. Classification은 어떤 input data에 대해 양자화된, 유한한 값을 유추하는 것이다.

그 중 Logistic Classification은 이 편지가 Spam이다 아니다, 이 사람이 여자냐 남자냐 등 어떤 이분법적인 것을 분류할 때 스이는 기법이다.


Logistic Classification에서는 Hypothesis function이 다음과 같다. output 값이 이분 법적으로 나와야하기 때문에 0과 1사이 값으로 output값이 정해지고,
0.5가 넘으면 1로 바뀐다는지, 0.5를 못 넘으면 0으로 바뀐다는지 어떠한 내부적 Rule에 따라 data를 분류한다.


Hypothesis function과 cost function은 다음과 같다.


만약 cost function이 regression과 똑같이 설정되어 있다면 왼쪽 그림처럼 cost function이 울퉁불퉁하게 설정된다. 그렇기 때문에 local minimum에서 빠져나오지 못하고 global minimum을 찾지 못하는 경우가 매우 많이 발생한다.

그렇기 때문에 logistic classification을 위해 새로운 cost function을 설정해주어야 한다. label과 예측 값이 다를 경우 cost가 무한대로 발산, 예측 값이 같을 때 cost가 0으로 수렴하도록 cost function을 짜면 오른쪽의 그림과 같이 설정된다.

이 식을 다시 정리해보면 cost funciton은 다음과 같고 여기에도 SGD를 사용하면 된다.



코드는 다음과 같다. 먼저 x data와 y data를 받아와 hypothesis function node와 cost function node를 설정하고, train node를 이용하여 이를 학습시킨다.
그 후 학습시키면 Result 그림과 같은 결과가 나온다.

댓글

가장 많이 본 글