본문 바로가기
Deep Learning 개념정리

[로지스틱 회귀] 시그모이드 함수와 MSE, Cross entropy

by inhovation97 2021. 2. 9.
로지스틱 회귀에 대한 스터디를 하는 도중에 시그모이드 함수를 최적화하는 데에 왜 mse를 쓰지 못하는지에 대한 질문이 나왔습니다. 그때 바로 명확하고 자세하게 설명할 수 없었기에 개념을 한번 정리해보려고합니다.

 

 

먼저 로지스틱 회귀부터 살펴봅니다. 

로지스틱 회귀는 목표 변수 y가 이산형, 범주형일 때 쓰는 회귀 기법입니다.

그 중에서도 이진 분류를 하는 시그모이드 함수를 살펴볼 겁니다.

시그모이드 함수입니다. 우리는 어떤 데이터를 입력하면, 그 데이터가 어느 범주에 속하는지가 궁금하죠. 어느 범주에 속하는지 확률값(0~1)을 뱉도록 시그모이드 함수를 이용합니다.

 

독립변수들에 가중치 w를 부여하고, 최적화를 통해 cost(log 함수) 값이 가장 작게 나오는 최종 모델을 채택합니다.

 

그렇다면 왜 직선 회귀에서 썼던 MSE(Mean Squared Error)를 cost function으로 쓰면 안될까요? 

MSE로 cost function을 채택했을 때의 gradient descent를 봅시다.

경사 하강법은 w와 cost function의 관계식을 살펴봐야합니다. 

위 그래프는 직선 회귀에서 mse를 이용했을 때 w와 cost function의 관계식입니다.

보시다시피 2차 함수로 극소점이 명확합니다. 

cost값이 최소가 되도록 기울기를 조절하여 최적의 선을 긋는 것입니다.

 

 

 

https://wikidocs.net/57805

이번에는 로지스틱 회귀에서 mse를 이용했을 때 w와 cost function의 관계식입니다.

시그모이드 함수를 보면 비선형 함수로 기울기가 0이 되는 지점이 2곳입니다.

그렇다보니 cost와 w의 관계식이 저렇게 극솟값이 여러개가 나오게 됩니다. 이게 바로 경사 하강법에서 가장 큰 문제가 되는 부분입니다.

 

optimizer를 SGD(Stochastic Gradient Descent)로 설정했을 때는 위 2가지가 큰 문제가 됩니다.

 

1. local minima

local minima는 기울기가 0인 지점으로 학습을 완료했는데 그 지점이 최극소지점이 아닌 경우의 문제입니다.

위 그림처럼 시그모이드의 cost function(mse)을 편미분해서 기울기가 0인 지점으로 경사 하강을 해나가는데, 중간에 로컬 미니멈에 걸리게 됩니다. 아직 cost값이 더 작은 글로벌 미니멈이 있는데도 말이죠.

 

2. saddle point

saddle point는 극소점은 아니지만 기울기가 굉장히 작은 완만한 지점에 왔을 때, 경사 하강법이 잘 진행되지 않아 학습이 굉장히 느려지는 경우입니다.

 

결론적으로는 이진 분류 로지스틱 회귀를 진행할 때, mse는 local minima 문제에 걸릴 수 있기 때문에 binary cross entropy를 cost function으로 쓰는 것이 옳습니다.

댓글