[머신러닝] Logistic Regression 이해하기 2
어제보다 나은 사람이 되기

걱정보단 실행을, 그러나 계획적으로

Box World 자세히보기

AI/Coursera ( Machine Learning )

[머신러닝] Logistic Regression 이해하기 2

Box형 2020. 4. 30. 23:25
반응형

시작하며

저번 포스팅에선 Supervised Learning 중 하나인 Classification 에 대해 알아보고, 여기에 사용되는 Logistic Regression 의 기초를 공부하였습니다.

 

이번 포스팅에서는 Logistic Regression에서 사용되는 Cost Function 은 무엇이며, 이를 Gradient Descent Algorithm 에 적용하여 어떻게 최적의 Decision Boundary 를 만드는 θ를 구하는지 알아보겠습니다.


Logistic Regression - Cost Function

우선 Logistic Regression에서 이용하는 Cost Function을 알아보겠습니다.

우선 우리가 배운 Logistic Regression의
h 함수를 기존에 알던 Cost Function 에 넣어보겠습니다.

그 결과, 왼쪽처럼 볼록하지 않고 꼬불꼬불한 'non-convex'한 함수 가 나오게 됩니다.

이는 Linear regression에서 쓰던 h 함수를 바로 대입한 것이 아니라, Logistic(sigmoid) Function에 대입하여 나온 함수 g(h(x))를 Cost Function에 대입하였기 때문입니다.

하지만 우리가 배웠듯이 Gradient Descent Algorithm으로 최적의 θ를 구하기 위해서는 Cost Function이 하나의 Global minimum을 가지는 convex(볼록)한 형태를 가져야합니다. 반면에 non-convex는 꼬불꼬불한 탓에 수많은 local minimum을 가지기에 활용하기 적합하지 않습니다. 따라서 Logistic Regression을 위한 별도의 Cost Function이 필요합니다.


Logistic regression의 Cost Function

Logistic regression의 Cost Function은 실제값 y에 따라 두가지로 나뉩니다.

우리가 주목해야할 것은 수학적인 부분이 아닌 비용함수의 본질적인 부분 입니다.

비용 이라는 것은 예측값과 실제값의 차이 입니다.
다시 말해서 Classification의 실제 값은 true일때 1 그리고 false일 때 0 무조건 이 두가지 중 하나입니다.

따라서 실제값은 1인데 예측값이 사실상 0이라면, 그 차이에서 나오는 비용은 매우 커질 것입니다. 이 사실을 염두에 두면서 두가지의 비용함수를 살펴보겠습니다.

1) 실제값 y=1일 때

-log(h(x))

이때 Cost 함수는 -log(h(x)) 입니다. 이에따라 h(x) (예측값)는 1에 가까울수록 비용은 줄어들고, 0에 가까워질수록 실제값과 다르다는 것이므로 양의 무한으로 발산되는 것을 볼 수 있습니다.

2) 실제값 y=0일 때

-log(1-h(x))

이때 Cost 함수는 -log(1-h(x)) 으로 예측값이 h(x)가 0에 가까울수록 비용이 줄어들고 1에 가까워질수록 양의 무한으로 발산됩니다.

지금까지 배운 것들을 정리한 것입니다. 그렇다면 Logistic Regression은 분명 결과값이 0 혹은 1인데 왜 Regression에 속하는 것일까요?

그것은 결과값이 0과 1이 아닌 0,7, 0,3 등 가능성(Probability)에 해당하는 특정 값을 도출하기 때문입니다.


Simplied Cost Function

최종적인 Logistic regression의 Cost Function

위의 Cost Function은 새로운 것이 아니라 방금 우리가 보았던 두가지 함수를 합쳐놓은 것으로 두개의 항으로 구성됩니다.

만약 y = 1일때 뒷쪽 (1-y) 항이 0이 되고, y=0일때는 앞쪽 y가 0이 되면서 우리가 배운 것과 똑같다는 것을 알 수 있습니다.

따라서 우리는 앞으로 이것을 Logistic Regression의 Cost Function으로 사용할 것입니다.


Gradient Descent Algorithm

우리가 방금 Cost Function을 하나로 합친 이유는 이것을 Gradient Descent Algorithm 식에 대입해야하기 때문입니다.

다음에서 Logistic Regression에서 Gradient Descent Algorithm을 어떻게 적용하는지 알아보겠습니다.

기존과 크게 다를 건 없습니다. Linear Regression에서 Logistic Regression에서 바뀌면서 미분하여 Learning rate와 곱해줄 Cost Function만 Logistic Regression에 맞게 바뀌었습니다.


Advanced Optimization Algorithm

.

Logistic Regression에서는 Gradient Descent Algorithm 이외에도 위와 같이 적용할 수 있는 다양한 최적화 알고리즘이 있습니다.

이 최적화 알고리즘들은 Linear Regression에서의 Normal Equation처럼 반복적인 갱신을 거치지 않고 한번에 찾아내어 훨씬 빠르지만, 그만큼 복잡하다는 단점이 있습니다.

 

요약

1) Logistic Regression의 Cost Function은 기존과 다르면 y 값에 따라 두가지로 나뉘지만 이를 하나의 식으로 표현할 수 있다.

2) 이를 Gradient Descent Algorithm에 적용하는 것은 Cost Function만 바뀌었을 뿐 그 차이는 없다.

반응형