머신러닝/개념공부

logistic regression 개념 복습

0.genius 2018. 10. 12. 13:29

이전의 linear regression에서 H(x), Cost(x) 는 다음과 같았다.



이 경우에는 결과 값인 y가 제한없는 linear한 숫자일때 사용이 됐다.


하지만 yes or no로 분류하고 싶은 경우에는 비효율적인 공식이다.


yes - 1 , no - 0 으로 결과 값을 0과 1로만 나누고 싶을 때는 어떻게 해야 할까 ?


linear regression을 적용시키면 결과값 y와 H(x)의 범위는 0과 1를 벗어날 수 있다.


따라서 , 우리는 H(x)를 0과 1사이로 제한을 두는 함수를 찾고 싶다.


이 함수는 위의 조건을 만족한다. logistic function 또는 sigmoid function이라고도 한다.


1+e-x에 대한 이미지 검색결과


이 함수의 경우 H(x)의 범위가 0과 1사이 인것을 알수 있다.


그렇다면 Cost(W,b) 는 어떻게 구할까 ? linear regression을 그대로 적용시키면 Cost(W)는 구불구불해지는 이차함수꼴이 되어 버린다.


이 함수를 미분하여 최저점을 찾으면 global minimum이 아닌, local minimum을 구하게 된다. 


따라서, 다른 cost function을 구해야 한다. 생각해보면 H(x)는 0과 1사이일 것이고, 실제 결과값 y가 1일때 H(x)가 1에 가까우면 cost는 0으로 수렴하고, H(x)가 0일때 cost는 1로 수렴해야한다. 반대로 y가 0일때 H(x)가 0에 가까우면 cost는 0, 1에 가까우면 cost는 1로 수렴해야한다.


구불구불한 함수를 보완해줄 로그함수를 이용하여 다음과 같은 cost함수를 만들 수 있다.



따라서, 위 식을 만족하는 cost function은 다음과 같다.