로지스틱 회귀에 대한 스터디를 하는 도중에 시그모이드 함수를 최적화하는 데에 왜 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값이 최소가 되도록 기울기를 조절하여 최적의 선을 긋는 것입니다.
이번에는 로지스틱 회귀에서 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으로 쓰는 것이 옳습니다.
'Deep Learning 개념정리' 카테고리의 다른 글
Learning rate & batch size best 조합 찾기 (feat.논문리뷰와 실험결과) (21) | 2021.03.31 |
---|---|
Transfer learning & fine tuning의 다양하고 섬세한 기법 (0) | 2021.03.30 |
[소프트맥스 회귀] softmax와 cross entropy 이해하기 (0) | 2021.02.09 |
CNN( Convolutional Neural Network)이해하기 (0) | 2020.08.13 |
댓글