[ ML ] 모두를 위한 TensorFlow (7) Logistic Classification의 cost 함수

본 글은 홍콩과기대 김성훈 교수님의 강의를 바탕으로 함
(참고 : https://hunkim.github.io/ml/ )


본 포스팅은 로지스틱 분류 기본 개념에 이은 로지스틱 분류의 cost 함수에 관한 포스팅입니다.

선형 모델과 로지스틱 모델 비교

로지스틱이 아닌 선형 모델의 경우 cost 함수의 형태는 아래와 같습니다. ▼

선형 모델의 cost 함수와 로지스틱 모델의 cost 함수를 비교해보면 아래와 같은 차이가 있습니다. 하지만 로지스틱 모델의 cost 함수의 경우는 local minimum의 문제가 발생합니다.▼

  • Local minium과 Global minimum 을 구분하지 못하는 문제
  • 어느 지점에서 시작하느냐에 따라서 minimum을 다르게 판단함
  • Local minimum을 minimum이라고 판단할 수 있음

결론은 로지스틱 모델의 경우는 기존 cost function을 활용할 수 없습니다.


로지스틱 모델을 위한 새로운 cost 함수

로지스틱의 경우는 선형과 같은 cost function을 사용할 수 없기 때문에 선형 모델과 다른 새로운 cost function이 존재합니다. y가 1 혹은 0 에 따라서 다른 함수를 적용합니다. ▼

로지스틱의 cost function에 log함수를 활용하는 이유는 다음과 같습니다.▼

  • H(x)의 경우는 결과값으로 0이나 1을 갖게 됨
  • 이때 실제값 y도 0이나 1의 값을 갖게 됨
  • 실제값 y 가 1인 경우 : 
    H(x)가 1이면 예측이 맞았으므로 cost는 0이고, 
    H(x)가 0이면 예측이 틀렸으므로 cost는 무한대로 수렴함
  • 실제값 y 가 0인 경우 : 
    H(x)가 0이면 예측이 맞았으므로 cost는 0이고, 
    H(x)가 1이면 예측이 틀렸으므로 cost는 무한대로 수렴함
  • 이렇게 총 4가지 case로 나뉘게 됩니다.
결국 포물선 모양의 cost function을 갖는다.

이제는 y가 1일 때와 0일 때를 나눠서 표현하지 않고 하나의 식으로 표현할 수 있습니다. 프로그래밍하기 쉽게 수식을 표현했다 할 수 있습니다.▼


Gradient descent algorithm

cost 함수를 알아보았으니 이제 cost를 최소화하는 알고리즘 Gradient descent algorithm에 대해 알아볼 차례입니다. 로지스틱 모델의 cost 함수도 결국 log함수를 활용하여 이차포물선 형태로 만들고, Local minimum 문제를 해결하였으므로 Gradient descent 알고리즘을 사용할 수 있습니다.

코드로 표현해보면 아래와 같습니다. ▼


다음 포스팅에는 logistic classification을 코드로 구현해보도록하겠습니다.

— 
다른 글 보러 가기