오구의코딩모험

[ML/DL] 로지스틱 회귀(Logistic Regression) 본문

AI/ML,DL

[ML/DL] 로지스틱 회귀(Logistic Regression)

오구.cpp 2022. 12. 15. 22:47
반응형

오늘은

선형 회귀에 이어

로지스틱 회귀(Logistic Regression)에 대해 공부하자!

 

 

앞서 공부했던

한 개 이상의 독립 변수 x y의 선형 관계를 모델링하는

선형 회귀와 달리

 

로지스틱 회귀는 시험의 합/불 여부, 메일이 스팸인지 아닌지 와 같이

두 개의 선택지 중 정답을 고르는 이진 분류(Binary Classification) 문제를 풀기 위한 알고리즘이다.

 

 

예를 들어보자

60점 이상을 받으면 합격(=1)인 시험이 있다.

그럼 자연스럽게 60점 미만은 불합격(=0)일 것이다!

 

그래프로 표현하니 알파벳 S 형태로 표현되어 있다.

만약 y=wx+b의 직선을 사용할 경우, 

y값이 음의 무한대부터 양의 무한대와 같은 큰 수들도 가질 수 있어

0과 1값만 있는 분류에는 적합하지 않다.

 

하지만

우리가 앞서 공부했던

활성화 함수시그모이드 함수(Sigmoid Function)의 형태를 기억해보자!

 


 

 

 

 

출력이 0과 1사이의 값을 가지면서 S자 형태로 그려지는 함수였다!

 

이 시그모이드 함수를 사용하면,

우리가 원하던 이진 출력이 가능하다.

즉, 로지스틱 회귀의 활성화 함수는 시그모이드를 사용한다.

 

 

 

  선형 회귀 로지스틱 회귀
활성화 함수 Linear Sigmoid
비용 함수 MSE ?

 

로지스틱 회귀 또한

선형 회귀와 같이 경사 하강법(sgd)를 통해 가중치 w를 찾아간다.

그럼 비용 함수 또한 MSE를 사용할까?

 

MSE를 로지스틱 회귀의 비용 함수로 사용한다면,

경사 하강법을 사용하였을때 찾고자 하는 최소값(글로벌 미니멈)이 아닌

잘못된 최소값(로컬 미니멈)에 빠질 가능성이 있다.

 

 

때문에 MSE를 비용 함수로 사용하지 않는다.

 

로지스틱 회귀라는 문제에서 가중치 w를 최소로 만드는 적절한 새로운 비용 함수를 찾아야 한다.

 

 


크로스 엔트로피(Cross Entropy)

 

샘플 데이터의 개수가 n개, 어떤 함수 f의 실제값 yi, 예측값 H(xi)의 오차

 

 

시그모이드 함수는 0과 1사이의 y값을 반환한다.

즉, 실제값이 0일 때 y값이 1에 가까워지면 오차가 커지며

실제값이 1일 때, y값이 0에 가까워지면 오차가 커짐을 의미한다.

 

그리고 이를 반영할 수 있는 함수는

로그 함수를 통해 표현할 수 있을 것이다.

 

파란 곡선(실제값 y가 1), 빨간 곡선(실제값 y가 0)

 

위의 그래프를 아래와 같이

수식으로 표현하고 정리할 수 있다.

 

 

[좌측 수식]

실제값이 1일 때, 예측값인 H(x)의 값이 1이면 오차가 0이므로 당연히 cost는 0

실제값이 1일 때, H(x)가 0으로 수렴하면 cost는 무한대로 발산

 

[우측 수식]

좌측 수식을 정리하면,

우측과 같이 나타낼 수 있다.

 

찾아낸 비용 함수를 크로스 엔트로피(Cross Entropy)함수라고 한다.

 

 

 

 

결론적으로 로지스틱 회귀는 비용 함수로 크로스 엔트로피 함수를 사용하며,

가중치를 찾기 위해서 크로스 엔트로피 함수의 평균을 취한 함수를 사용한다.

 

크로스 엔트로피 함수는 소프트맥스 회귀의 비용 함수이기도 하므로

다음 포스팅에서 자세하게 알아보자!

반응형
Comments