Logistic Regression
- Cost function / Gradient Descent-
아래 내용은 Andrew Ng 교수님의 강의와 자료를 기반으로 학습한 내용을 정리하여 작성하였습니다.
개인의 학습 내용이기에 잘못 해석 및 이해하고 있는 부분도 있을 수 있으니, 다양한 자료를 기반으로 참고하시는 걸 추천드립니다.
- Cost function
그렇기 때문에 convex형태의 cost function사용해야 하는데, 이 때 log를 이용하여 cost function을 표현합니다!
하나가 아닌 두개의 cost function을 이용하는 것이죠. 그럼 각각 나눠서 살펴보시죠.
먼저, y = 1인 경우의 graph입니다.
y = 1일 때 cost function은 -log(h(x))로 표현되며 위와 같은 graph로 나타납니다. 만약 y = 1인데, 입력에 대한 h(x)가 0에 수렴한다면, cost function J의 값이 무한대로 증가함을 알 수 있습니다.
다음은 y = 0인 경우의 graph입니다.
y = 1인 경우와 반대로, 만약 y = 0 인데, 입력에 대한 예측값 h(x)가 1이라면 cost function J가 무한대로 발산함을 알 수 있습니다.
cost function은 Linear regression에서 사용했던 Squared error 방법을 사용하면 convex 형태의 cost function을 얻기 힘드므로 Logistic regression은 log를 사용한 cost function을 사용했었죠.
위의 cost function을 보면 2개로 표현될 수 있습니다. 이 때 하나의 cost function 단순화 하기 위해 아래와 같이 표현을 하게 됩니다.
전체 training set에 대해서 cost function을 구하고 평균은 내는 것은 Linear regression과 동일합니다. 하지만 내부의 수식이 조금 다르죠, 위에서 2개로 표현했을 cost function을 하나의 수식으로 표현, 단순화 할 수 있는 이유는 y 의 값이 결국 0 아니면 1이기 때문입니다.
Cost function 에서 y = 1인 경우와 y = 0인 경우가 앞의 y(i)와 1-y(i)의 수식에 의해 2개 중 하나가 삭제되어 동일하게 표현되는 것이지요, 즉 2개의 식을 하나의 수식으로 표현을 하되, 결과는 동일함을 알 수 있습니다.
- Gradient descent
Cost function으로 결과를 얻었다면, 얻은 결과가 Convex의 형태를 띈다면 Gradient descent는 큰 문제가 되지 않습니다. Linear regression처럼 처음 설정한 theta 값에 대해 반복적으로 J가 최소값이 되도록 theta를 변경해 나가는 것이죠.
최초 설정한 theta로 부터 구해진 Hypothesis model의 cost function을 계산하고, 그 값을 이용해 지속적으로 반복해 나가는 것입니다.
보시는 바와 같이 linear regression과 굉장히 유사하며, h(x) 가 다르게 Sigmoid function에 의해 다르게 표현되는 것만 주의하시면 될 것 같습니다.
다음 글에서는 class가 2개가 아닌 Multi-class에 대한 classification을 살펴보겠습니다.
감사합니다.
'AI > Machine Learning' 카테고리의 다른 글
Solving the problem of overfitting (2) | 2018.01.25 |
---|---|
Logistic Regression - Multi class classification (0) | 2018.01.23 |
Logistic Regression - Model representation / Decision boundary (0) | 2018.01.22 |
Linear Regression - Gradient Descent (0) | 2018.01.17 |
Linear Regression - Model Representation / Cost function (0) | 2018.01.16 |