AI/Machine Learning

Logistic Regression - Model representation / Decision boundary

Linuxias 2018. 1. 22. 23:37
반응형

Logistic Regression

 - Model Representation / Decision boundary -


아래 내용은 Andrew Ng 교수님의 강의와 자료를 기반으로 학습한 내용을 정리하여 작성하였습니다.

개인의 학습 내용이기에 잘못 해석 및 이해하고 있는 부분도 있을 수 있으니, 다양한 자료를 기반으로 참고하시는 걸 추천드립니다.



이번 글에서는 Logistic Regression에 대해 확인해보겠습니다.

지난 시간 Linear Regression은 continuous한 values에 대해 학습하고, 입력에 대해 예측되는 출력을 제공하기 위한 내용이였습니다. 이번 시간에는 continuous가 아닌 discrete하게 classification(이하 분류)를 위한 Logistic Regression입니다.



실생활에서 분류의 예시로서 위의 3가지 경우가 있다. Email에서 해당 Email이 Spam인지 아닌지, 진행 중인 온라인 거래가 사기인지 아닌지, 악성 종양인지 아닌지를 판단하여 분류하는 것입니다.


다양한 예시에서 여러 Class에 대해서 분류를 할 수도 있겠지만 이번에는 Negative or Positive로 딱 2개의 class로 분류하는 것에 대해 알아보겠습니다.


아래 Graph에서 x축은 종양에 크기, y축은 악성의 여부 (1 == Yes, 0 == No)로 분류한 것입니다. 아래 Graph에 대해 악성인지 아닌지에 대한 판단은 Linear Regression에서 사용한 hypothesis model h(x) = theta1 * x + theta0 을 사용해도 어느정도 가능 할 것 같습니다. 그럼 어떻게 해야 할까요? 분류를 위한 h(x)의 threshold의 값을 0.5로 잡으면, 0.5이상은 악성이고, 그 이하이면 악성이 아니다 라고 분석을 할 수 도 있을 것 같네요.



위 그래프에서 악성종양의 크기가 매우 큰 값이 들어왔을 때, 우리가 위에서 사용한 h(x)를 최적화 시켜 변경되어 기울기가 좀감소한다고 해보죠, 그럼 기준이 되는 종양의 사이즈는 커지고, 아까는 악성이라고 판단했던 종양들이..  악성이 아니다 라고 잘못 판단할 것 같습니다. 



Linear regression에서 사용했던 h(x)는 classification에서 사용하기엔 조금 어려울 것 같습니다.


두 개의 class로 분류하기 위한 가장 좋은 방법은 output이 0 또는 1로 정해지는 것이죠, 하지만 Linear regression에서 사용했던 h(x)에서는 output이 1보다 클 수도, 0보다 작을 수도 있습니다.  Linear Regression에서 사용한 hypothesis Medel은 사용하지 못한다는 것을 알 수 있죠, 그럼 어떻게 해야 할까요. 



  • Model Representation

Logistic Regression을 output을 0과 1사이로 만드는 방식으로 분류를 하는게 가장 좋습니다. 우리가 원하는 것이죠. Logistic에서는 어떠한 input x(feature)에 대해서 output 이 0과 1사이가 되기 위해서 특별한 함수를 사용합니다. 바로 Sigmoid function이란 함수죠. 우리가 사용했던 h(x) = theta1 * x + theta0를 sigmoid function에 대입한 것이 Logistic Regression의 새로운 Hypothesis Model이 됩니다. 



Sigmoid 함수는

g(z) =  1 / (1 + e^-z) 

로 표현이 가능하고 가능합니다. 



우측의 그림을 보시면 Sigmoid함수는 z가 0보다 작은경우 g(z)는 0으로 수렴하고, 0보다 큰 경우에는 1로 수렴함을 알 수 있습니다. 그렇다면 Thread hold를 0.5로 한다면 z가 0보다 크면 1, 0보다 작으면 0으로 분류할 수 있을 것 같네요. 이렇게 Sigmoid function을 사용하면 0보다 크고, 1보다 작은 결과를 얻을 수 있습니다. 


조건부 확률로 살펴보면, Input x와 parameter theta에 대해 y = 0일 확률과 1일 확률을 합치면 1이 됩니다.

즉, 특정 종양의 크기가 들어왔을 때 악성일 확률과 아닐 확률의 합의 1이 된다라는 것이죠.


  • Decision Boundary
위에서 정의한  Logistic Regression의 hypothesis model을 이용해서 정의하여 보았습니다. 그 Model을 이용해서 Decision Boundary에 대해 살펴보시죠. Decision boundary는 class를 나뉘기 위함 경계로서, Linear 또는 Non-linear하게 표현될 수 있습니다.

먼저 Linear decision으로 표현되는 boundary를 이용해서 class를 분류할 수 있죠, 아래와 같이 2개의 다른 class에 값이 입력 x1, x2에 대해서 Graph로 표시되어 있습니다.  


class를 분류하기 위해서 아래와 같은 hypothesis model을 표현할 수 있습니다.

위 Hypothesis model에서 theta 0, 1, 2를 각각 -3, 1, 1이라 하여 식을 풀어 쓰면 -3 + x1 + x2 >= 0으로 표현할 수 있습니다. 다시 정리하면 x1 + x2 >= 3이 되겠죠, 이때 선을 그으면 아래 graph가 표현이 될 것이다. 이 선을 Decision boundary라고 합니다. Sigmoid function의 graph 기억나시나요? Decision boundary는 g(z)에서 z = 0또는 h(x) = 0.5인 지점을 나타내는 것입니다.


h(x) >= 0.5이면, y = 1 (graph에서 x표) h(x) < 0.5이면 y = 0 (graph에서 O표) 로 분류할 수 있습니다.

다음은 Non-Linear decision boundaries 입니다. 위와 같이 Linear가 아닌 Boundary가 곡선, 원 등 Non-Linear하게 표현될 수 있습니다.


아래 graph를 보면 O은 원점 주변에 X는 좀 더 거리를 두고 퍼져있습니다. 명확하게 class를 분리하기 위한 Decision boundary를 원으로 표현될 수 있겠죠. 이 때, h(x) = g(z) 에서 z는 2차원으로 표현이 됩니다. 



다음 글에서는 여기서 확인한 Cost function과 Gradient Descent에 대해서 알아보겠습니다.

감사합니다.






반응형