AI바라기의 인공지능

최적화 문제와 경사 하강법이란? 본문

딥러닝

최적화 문제와 경사 하강법이란?

AI바라기 2023. 4. 5. 16:47

최적화란?

 

 

딥러닝에서 최적화는 모델의 학습을 통해 가중치(weight)와 편향(bias)을 조정하여 손실(loss) 함수를 최소화하는 과정을 말합니다. 이를 위해서는 최적화 알고리즘이 필요합니다.

 

즉 입력값을 통해서 예측값이 도출 되는데 이 예측값과 실제값의 차이를 줄이기 위한 방법입니다.

 

대표적인 최적화 알고리즘으로는 경사 하강법(Gradient Descent)이 있습니다.

 

가중치를 조정하면서 모델을 업데이트 하는 과정을 거칩니다. 즉 w에 따라 손실함수의 값이 결정 되는 것이죠

 

경사 하강법은 손실 함수의 기울기(gradient) 방향으로 가중치와 편향을 업데이트하는 방법입니다. 이 때, 학습률(learning rate)이 중요한데, 학습률이 크면 수렴 속도는 빨라지지만, overshooting이 발생할 수 있으며, 학습률이 작으면 수렴 속도는 느려지지만, overshooting을 방지할 수 있습니다.

 

 

경사 하강법에는 크게 다음과 같은 종류가 있습니다.

  1. 배치 경사 하강법 (Batch Gradient Descent)

오른쪽이 배치 경사 하강법입니다.

 

  • 전체 데이터셋을 한 번에 사용하여 기울기를 계산하고, 모든 파라미터를 한 번에 업데이트하는 방법입니다.
  • 전체 데이터셋을 한 번에 사용하므로 수행 속도가 느리고, 대규모 데이터셋에서는 메모리 문제가 발생할 수 있습니다.

2. 확률적 경사 하강법 (Stochastic Gradient Descent)

 

  • 각 데이터 포인트를 하나씩 사용하여 기울기를 계산하고, 파라미터를 업데이트하는 방법입니다.
  • 전체 데이터셋을 사용하는 것보다 수행 속도가 빠르고 메모리 문제가 없지만, 기울기 계산이 노이즈가 많아 파라미터 값이 수렴하기까지 불안정할 수 있습니다.

3. 미니 배치 경사 하강법 (Mini-batch Gradient Descent)

왼쪽이 배치 경사 하강법입니다.

  • 전체 데이터셋을 작은 미니 배치(mini-batch)로 나누어서 각 미니 배치를 사용하여 기울기를 계산하고, 파라미터를 업데이트하는 방법입니다.
  • 배치 경사 하강법과 확률적 경사 하강법의 중간쯤에 위치하며, 수행 속도와 파라미터 수렴 속도를 균형있게 조절할 수 있습니다.

 

 

이 외에도 옵티마이저에 따라서 여러가지 방법이 존재합니다.

 

확률적 경사 하강법은 SGD입니다. 속도 차이를 보시면 일반적인 경사하강법 보다는 빠르지만 다른 옵티마이저에 비해서 느린 것을 확인 할 수 있습니다.

 

다음 글은 여러가지 옵티마이저에 대해서 알아보겠습니다.