본문 바로가기
IT 기록/머신러닝

[머신러닝]05-2.Logistic Regression의 cost 함수

by Lazy Quant 2018. 7. 30.
반응형

※본 포스팅은 직접 강의하는 내용이 아닌, 김성훈 교수님의 머신러닝 강의를 정리하기 위한 포스팅입니다.

김성훈 교수님의 강의는 모두를 위한 머신러닝/딥러닝(http://hunkim.github.io/ml)에서 들을 수 있습니다.


Linear Regression의 Cost function

Linear Regression에서는 가설, cost 함수, 그래프가 아래와 같이 그려졌었다.


Linear Regression의 가설 : 

 

Linear Regression의 cost 함수 : 

 

이 경우에는 경사하강법(Gradient descent algorithm)을 사용하여 최소값을 찾을 수 있었다. 기울기가 최소가 되는 그 지점의 값이 최소값이다. Linear Regression의 경우 하나의 최소 기울기를 가지기 때문에 경사하강법을 이용할 수 있었지만, 우리가 지난 시간에 구한 Logistic Regression의 가설을 그래프로 그리면 아래와 같이 그려진다.


Logistic Regression의 가설 : 

 

Logistic Regression의 그래프 : 


이렇게 여러개의 최소 기울기를 가지는 그래프에서 경사하강법을 사용하면 잘못된 최소값을 찾게 된다. 시작하는 위치에 따라 다른 local minimum을 찾게 된다. 우리는 global minimum을 찾는 것이 목표이다. 그래서 Linear Regression에서 사용한 cost 함수를 그대로 사용할 수 없다.


Logistic Regression의 Cost function

 두 가지로 나누어서 cost 함수를 정의한다. 왜 이렇게 해야 하는가? 구부러진 것을 잡기 위해서. 지수함수(exponential function)와 상극이 되는 것이 log 함수이다. 실제로 로그 함수의 그래프 모습을 보면 우리가 사용해야할 모습과 상당히 잘 맞는다. cost 함수의 의미는 무엇인가? cost는 우리의 예측과 실제 값의 차이이다. 그리고 이 차이가 크면 우리의 예측의 비용이 크다는 의미이다. 

 


실제 label y=1일 때

H(x) = 1로 예측을 했으면, cost(1) = 0

H(x) = 0으로 예측이 틀렸으면, cost(0) = 무한대

실제 label y=0일 때

H(x) = 0로 예측을 했으면, cost(0) = 0

H(x) = 1으로 예측이 틀렸으면, cost(1) = 무한대

 

텐서플로우에서 더 쉽게 적용하기 위해 if 조건을 없애면 아래와 같은 식으로 정리할 수 있다.


y=1, c=-log(H(x)) 

y=0, c=-1*log(1-H(x))

결국 위 식과 동일한 의미이다. 단지 수식을 한 줄로 써서 프로그래밍 하기에 편하도록 변경한 것.


Minimize cost - Gradient descent algorithm

이렇게 지수함수에 log를 사용해 그래프를 단순화 시키고, 경사하강법을 사용해서 최소값을 찾는다.


반응형

댓글