해당 자료는 "모두를 위한 머신러닝/딥러닝 강의"를 보고 개인적으로 정리한 내용입니다.
Linear regression의 Cost Function에 Logistic classification 적용
Linear regression | Logistic classification | |
가설 | ||
cost function 형태 | ||
특징 |
- H(x)는 1차 방정식으로 Cost function에서 제곱하면 구부러진 선으로 나타남 |
- 시그모이드 함수 형태가 전체 Cost function에 구간별로 계속적으로 나타남 |
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
- H(x)인 가설의 값이 1이면
- 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
- H(x)인 가설의 값이 0이면
- => 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))
'도서,강의 요약 > 모두를 위한 머신러닝' 카테고리의 다른 글
ML lec 6-1 - Softmax Regression: 기본 개념 소개 (0) | 2020.05.28 |
---|---|
ML lab 05: TensorFlow로 Logistic Classification의 구현하기 (0) | 2020.05.28 |
ML lec 5-1: Logistic Classification의 가설 함수 정의 (0) | 2020.05.19 |
ML lab 04: multi-variable linear regression을 TensorFlow에서 구현하기 (0) | 2020.05.12 |
ML lec 04 - multi-variable linear regression (0) | 2020.05.04 |