3-2 Logistic Regression Model 본문

ML & DL/Coursera-ML

3-2 Logistic Regression Model

eremo2002 2019. 1. 9. 23:03


로지스틱 회귀에서 파라미터를 fitting 시키기 위한 Cost function 정의에 대해 알아본다.








트레이닝 셋이 m 있고 n개의 feature 있다면 feature 벡터 x n+1차원의 벡터가 된다.

계속 언급하는 부분이지만 x_0=1이다. 일단 이진분류만 것이기 때문에 y 0 또는 1이된다.

로지스틱 회귀에서의 가설 h(x) 위와 같이 정의하였다.

그러면 적절한 파라미터 θ를 어떻게 찾을 있을까?









선형회귀에서 비용함수 J 이렇게 정의하였다. (1/2 시그마 안으로 넣은 뿐이다.)










선으로 그은 부분을 간단하게 cost(h(x), y)라고 하자. 그러면 cost(h(x), y) 오차제곱에 1/2 곱한 값이 된다.

(눈에 들어오기 위해 위의 첨자를 일부러 지운 것임)

선형회귀에서의 비용함수를 똑같이 로지스틱 회귀 알고리즘에 적용했을 최소화 있다면 문제가 없을 것이다.

그러나 비용함수는 θ에 대해 볼록한 함수가 아니기 때문에 문제가 된다.











로지스틱 회귀로 문제를 우리의 가설 h(x) 비선형성을 가지기 때문에 sigmoid함수를 안에 대입하고 다시 cost함수를 정의한다면 비용함수 J(θ) non-convex 된다. Non-convex 함수는 local minimum 여러 존재하기 때문에 gradient descent 적용해도 global minimum 도달한다는 보장이 없다.

다시 말해, 로지스틱 회귀에서 사용하는 h(x) 비선형 함수 sigmoid이기 때문에 J(θ) 볼록하지 않은 함수가 된다는 것이다.

따라서 우리는 gradient descent 적용할 있도록 볼록한 비용함수를 사용해야 한다.











Logistic regression에서의 cost function 다음과 같다.

가설 h(x) 예측한 값을 토대로 비용을 계산한다. Target y 0 또는 1 존재한다. 여기선 y 0 1 때를 나누어 그에 맞는 cost function 적용하여 cost 계산한다.

먼저 y=1 때를 보자, 때의 cost function 이렇게 그려진다.

만약 h(x) 1이라고 대답했다면, h(x) 1에서의 cost값은 0 된다. 이것은 제대로 정답을 맞췄기 때문에 cost 0 되는 것이다.

만약 h(x) 0 가까운 대답을 했다면 그때의 cost 엄청 것이다. 이것은 정답을 제대로 맞추지 못했기 때문에 그만큼 cost 커지는 것이다.











다시 y=1 경우를 정리해보자

y=1인데 h(x)=1이라면 정답을 제대로 맞춘 것이기 때문에 cost 0이된다.

그러나 h(x) 0 가까운 대답을 했을 경우 정답에서 멀어지기 때문에 cost 무한대에 가까운 값을 받게 것이다.

이는 실제 악성 종양이 있는 환자에게 당신의 종양은 악성 종양이 아닐 확률이 100%니까 안심해도 된다고 하는 것과 같다. 이렇게 엄청나게 잘못된 대답을 했다면 그만큼 cost값으로 알고리즘은 벌을 받게 되는 것이다.












y=0 경우 cost function 이렇게 그려진다.

y=0인데 h(x) 0으로 대답했다면 정답을 제대로 맞췄으므로 이때 cost 0이다.

만약 h(x) 1 가까운 답을 낼수록 정답에서 멀어지는 답을 했기 때문에 cost 점점 커진다.

 

 

 

 

 

따라서 로지스틱 회귀에서의 비용함수는 모두 convex하기 때문에 non-convex인지 아닌지 고민할 필요가 없다.























로지스틱 회귀의 비용함수를 간단히 해보고 gradient descent 적용해본다.













J(θ) 풀어서 써보면 다음과 같다. 앞에 마이너스가 붙는 안에 있던 밖으로 것이다.

이제 우리는 이렇게 정의한 비용함수 J 최소화하여 최적화된 파라미터 θ를 찾아내는 것이다.











최적화된 파라미터 θ를 찾기 위해 Gradient descent 사용한다.

파라미터가 업데이트 되는 식은 우리가 선형회귀를 배울 사용했던 방법과 동일하다.












다만 로지스틱 회귀이기 때문에 h(x) 다르다. 따라서 선형 회귀에서의 gradient descent와는 조금 다르다.

어쨌든 gradient descent 메커니즘을 통해 파라미터 θ를 반복하여 업데이트 하면 된다.

로지스틱 회귀에서도 우리가 적용했던 feature scaling 통해 gradient descent 빠르게 수렴할 있도록 있다.


























'ML & DL > Coursera-ML' 카테고리의 다른 글

3-4 Solving the Problem of Overffiting  (0) 2019.01.11
3-3 Multiclass Classification  (0) 2019.01.10
3-1 Classification and Representation  (0) 2019.01.09
2-2 Computing Parameters Analytically  (0) 2019.01.08
2-1 Multivariate Linear Regression  (0) 2019.01.08
Comments