뒤로
권예영
권예영 ·

학습 속도 저하 현상의 원인 (MSE와 SIgmoid함수, Gradient Descent의 특성)

참고: 라온피플 아카데미 네이버 블로그

신경망 학습 속도의 문제점 - “학습 속도 저하”

옛날에 요줌싸가 어린이는 키를 쓰윽 써서 동네 한 바퀴를 돌게 했고, 그 이후는 아이가 크게 망신을 당해 다음부터는 요줌을 가리도록 해주기 위함이라고 했다. 물론 지금은 잘못된 이론이라는 말도 있다.

이처럼, 사람은 크게 망신을 당할 정도로 큰 실수를 하게 되면, 그 충격으로 인해 다음부터는 그 실수를 하지 않게 되는 경향이 있다. 즉, 큰 에러가 발생할수록 학습이 잘 되는 경우가 종종 있다. (물론, 늘 그런 것은 아니지만)

신경망 학습에서도 이런 일이 일어날까? 원래 나와야 할 값(훈련 데이터의 결과 값)과 망에서 실제로 수행을 한 결과와의 차이가 크면 학습을 정말로 잘 하게 될까?

일반적으로 신경망의 cost function으로 사용하는 MSE(평균제곱오차, Mean Square Error) 방식을 사용하면 유감스럽게도 그렇지 못하다.

왜 그럴까? 이는 cost function으로 MSE 방식을 사용하고 활성함수로 Sigmoid 함수를 사용하는 경우 Sigmoid 함수의 특성 상 발생하면서 문제가 생기기 때문이다.

MSE와 Sigmoid의 결합 문제

MSE와 Sigmoid 함수를 함께 사용할 때 문제가 되는 이유는 다음과 같습니다:

  1. Sigmoid 함수의 출력이 포화될 때:
    Sigmoid 함수는 출력값을 0과 1 사이로 압축합니다. 그러나 입력 값이 매우 크거나 매우 작을 경우, 그 출력값이 거의 0이나 1에 가까워집니다. 이때 미분 값이 0에 가까워져, 가중치 업데이트를 위한 기울기 값이 사라지게 됩니다. 그 결과 역전파를 통해 오류를 전파할 때 가중치가 거의 업데이트되지 않고, 학습 속도가 매우 느려집니다.

  2. MSE의 큰 오차에 민감한 특성:
    MSE는 큰 오차에 민감하게 반응합니다. Sigmoid 함수의 포화 구간에서 MSE는 큰 오차를 계산하게 되지만, Sigmoid 함수가 오차에 대해 거의 반응하지 않기 때문에 큰 오차에도 불구하고 학습이 제대로 이루어지지 않습니다. 즉, MSE는 오차를 크게 반영하려 하지만 Sigmoid의 특성상 그 오차가 효과적으로 반영되지 않는 문제점이 있습니다.

예시로 설명

  • 예시: 만약 모델의 실제 출력값이 0.1이고 예측값이 0.9라면, MSE는 이 차이를 크게 보고 학습률을 높이려고 할 것입니다. 그러나, Sigmoid 함수는 출력이 0.9에 매우 가까울 경우, 이미 포화 상태에 도달해 기울기가 0에 가까워져 학습이 거의 이루어지지 않게 됩니다. 그 결과, MSE가 큰 오차를 인식해도 Sigmoid 함수의 특성 때문에 학습이 잘 이루어지지 않는 현상이 발생합니다.

-> MSE가 큰 오차에 민감하게 반응하는 특성을 지니고 있는데 Sigmoid 함수는 극단값을 0과 1에 매우 가깝게 수렴해 학습에 오차가 나는 것이다. 오차에 대한 계산이 명확히 이루어지지 않아, 역전파도 제대로 이뤄지지 않는다는 뜻이다.


Gredient Descent

image.png

경사 하강법은 오차 함수의 기울기를 따라 가중치를 업데이트하며 최적의 값을 찾아가는 방식입니다. 학습 초기에는 오차가 크기 때문에 기울기가 크고, 이로 인해 가중치 업데이트가 빠르게 진행됩니다. 하지만 학습이 진행될수록 오차가 줄어들고, 기울기도 점점 작아지면서 가중치의 변화가 점점 미세해지게 됩니다.

이 과정이 마치 오목한 그릇에서 공이 바닥으로 굴러가는 것과 비슷합니다. 처음에는 기울기가 크기 때문에 공이 빠르게 움직이지만, 바닥 근처로 갈수록 기울기가 작아지면서 공이 느리게 움직입니다. 이처럼 학습이 수렴하는 과정에서 속도가 저하되며, 이는 경사 하강법의 본질적인 특성입니다. 결국, 최적값에 가까워질수록 학습 속도가 느려지는 것이 경사 하강법을 사용할 때 나타나는 학습 속도 저하의 주요 원인입니다.

-> 학습이 수렴하는 과정에서 속도가 저하된다. 예측값과 실제값이 유사해지는 과정에서 속도가 저하되므로 학습의 효율이 개선되지 않는 문제가 발생된다. 이런 경우에는 적절한 지점에서 stop을 해줘야 한다.

1

댓글

로그인 후 댓글을 남길 수 있습니다.

아직 댓글이 없습니다.