본문 바로가기

도서,강의 요약/모두를 위한 머신러닝

ML lec 5-2 Logistic Regression의 cost 함수 설명

해당 자료는 "모두를 위한 머신러닝/딥러닝 강의"를 보고 개인적으로 정리한 내용입니다.

http://hunkim.github.io/ml/

 

모두를 위한 머신러닝/딥러닝 강의

 

hunkim.github.io

Linear regression의 Cost Function에  Logistic classification 적용

  Linear regression Logistic classification
가설
cost function 형태
특징

 - H(x)는 1차 방정식으로 Cost function에서 제곱하면 구부러진 선으로 나타남
 - 어디서 시작해도 최소점으로 이동 가능

 - 시그모이드 함수 형태가 전체 Cost function에 구간별로 계속적으로 나타남
 - 경사하강법으로 시작되는 점에 따라 전체의 최저점(글로벌 미니멈)이 아닌 시그모이드 함수 형태의 최저점(로컬 미니멈)으로 이동되어 Cost 학습이 중간에서 멈춤

 

Logistic classification의 Cost function 

  • 시그모이드 함수로 인한 로컬 최적화를 풀기 위해 지수 형태인 가설 함수를 로그함수를 이용해 해결
  • y=1, y=0  인 값에 따라 2개의 function이 존재
  • y=1인 경우
    • H(x)인 가설의 값이 1이면
      • Cost 함수인  -log(H(x)) = -log(1) = 0
      • Cost 함수는 가설과 Y값이 같을 때 작아야 하므로 Cost 함수로서 적절
    • H(x)인 가설의 값이 1이 아니어서 y와 다른 경우
      • -log(H(x))에 대입하거나 그래프를 보면 Cost 값이 커져서 무한대로 증가함
      • ex)
        • H(x)가 0.1 이면 => -log(0.1) = -1 * (-1) = 1
        • H(x)가 0.01 이면 => -log(-0.01) = -1 * (-2) = 2
        • H(x)가 0.001 이면 => -log(-0.001) = -1 * (-3) = 3   
  • y=0인 경우
    • H(x)인 가설의 값이 0이면
      • Cost 함수인  -log(1-H(x)) = -log(1-0) = 0
      • Cost 함수는 가설과 Y값이 같을 때 작아야 하므로 Cost 함수로서 적절
    • H(x)인 가설의 값이 0이 아니어서 y와 다른 경우
      • -log(1-H(x))에 대입하거나 그래프를 보면 Cost 값이 커져서 무한대로 증가함
      • ex)
        • H(x)가 0.9 이면 => -log(1-0.9) = -1 * log(0.1) = -1 * -1 = 1
        • H(x)가 0.99 이면 => -log(1-0.99) = -1 * log(0.01) = -1 * -2 = 2
        • H(x)가 0.999 이면 => -log(1-0.999) = -1 * log(0.001) = -1 * -3 = 3
  • => y=0 일때와 y=1일때의 그래프를 연결하면 Linear Regression의 Cost function 그래프와 유사하게 됨
    • => Gradient decent 알고리즘 적용이 가능

 

방정식을 Code로 구현하기 위해 변경

  • y = 1이면
    • -1log(H(x)) - (1-1)log(1-H(x)) = log(H(x)) - 0log(1-H(x)) = -log(H(x))
  • y=0이면
    • 0*log(H(x)) - (1-0)log(1-H(x)) = -log(1-H(x))