본문 바로가기
머신러닝

머신러닝(Machin Learning) 6장 - Logistic Regression 의 cost function -

by ChocoPeanut 2017. 5. 24.

머신러닝(Machin Learning) 6

- Logistic Regression cost function -

 

Cost function은 예측을 하는 값과 실제 결과 값의 차이를 나타내는 함수이다. 예측을 하는 데이터를 바꾸어가면서 실제 결과 값과 차이를 그래프로 나타낼 수 있다. 제일 적절한 예측을 하는 가설은 바로 cost function이 최소가 되는 가설일 것이다. Linear Regression을 사용할 때는 다음과 같은 cost function을 사용하였다. 



앞의 cost function을 이용하여 Logistic Regression에 해당하는 그래프를 그리게 되면 볼록한 형태가 아니라 울퉁불퉁한 형태가 나와서 Gradient descent algorithm을 통해 최솟값을 구할 수 없게 된다. 따라서 가설이 바뀐 것과 같이 cost function의 형태도 조금 바뀌게 된다.



Logistic Regression에 해당하는 cost function은 다음과 같이 정의할 수 있다. cost function은 데이터에 대한 평균을 나타내므로 c라는 함수에 대한 평균으로 나타낼 수 있다. Logistic Regression의 경우 바로 이 c라는 함수가 달라지는데 결과 값인 y에 따라 다른 함수를 대입시킨다. log에 대한 값이 들어간 이유는 바로 e에 대한 값을 처리하기 위해서 이다. 실제로 결과 값은 01 사이에서만 가질 수 있다



log의 값을 사용하게 되어 y1일 때의 함수부터 살펴보자. cost function을 최소화 시키는 값이 바로 우리가 원하는 예측 값이 될 것이다. 실제 데이터의 결과 값인 y1일 때의 함수의 그래프를 그려보게 되면 예측 값이 1에 가까워질수록 cost function의 값은 작아진다. 반대로 0에 가까워질수록 cost function의 값이 무한대로 증가하게 되어 예측이 틀렸다는 것을 보여준다. y0일 때도 같은 결과를 보여주게 된다. 예측이 0으로 맞게 되면 cost function은 매우 작은 값을 가지게 되고 반대로 예측이 1로 하게 되어 예측에 실패할 경우 cost 값이 무한대로 증가하여 틀렸다는 것을 알 수 있게 된다.



두 경우를 하나의 식으로 표현하게 되면 다음과 같이 나타날 수 있다. y의 값에 따라 하나의 함수를 없애줄 수 있는 값을 넣게 된다.



cost function을 구한 이유는 이를 최소화 하여 가장 적절한 예측을 하게 하는 것이다. 그러기 위해서는 Linear Regression과 같이 Gradient descent algorithm을 사용하게 된다. cost function의 기울기를 계산하여 최소 값을 가지게 변화시키게 되면 된다