새소식

머신러닝 & 딥러닝

[최적화] 확률적 경사 하강법(Stochastic Gradient Descent, SGD)

  • -

확률적 경사 하강법(Stochastic Gradient Descent, SGD)은 최적화 알고리즘 중 하나이다. 경사 하강법(Gradient Descent)은 손실 함수(Loss Function)의 기울기(Gradient)를 이용해 최소 지점을 찾는 방법이다. 확률적 경사 하강법은 이 과정에서 미니배치(mini-batch) 또는 하나의 데이터 샘플을 사용하여 계산을 수행하므로, 기본 경사 하강법에 비해 속도가 빠르고 메모리 사용량이 적다.

확률적 경사 하강법의 공식은 다음과 같다.

 

$\theta_{t+1} = \theta_t - \eta_t \nabla_{\theta_t} L(\theta_t; x_i, y_i)$

 

여기서 $\theta_t$는 파라미터(parameter)의 현재 추정값, $\eta_t$는 학습률(learning rate), $L$은 손실 함수(loss function), $x_i$와 $y_i$는 입력 데이터와 정답 레이블이다. $\nabla_{\theta_t} L(\theta_t; x_i, y_i)$는 손실 함수의 기울기(gradient)를 나타낸다.

확률적 경사 하강법을 사용하려면 다음과 같은 과정을 거친다.

 

  1. 파라미터 $\theta$의 초기 추정값을 설정한다.
  2. 학습 데이터셋에서 무작위로 하나의 샘플 또는 미니배치를 선택한다.
  3. 선택한 샘플 또는 미니배치에 대해 손실 함수의 기울기를 계산한다.
  4. 파라미터를 업데이트한다.
  5. 원하는 정확도에 도달하거나, 최대 반복 횟수에 도달할 때까지 2~4단계를 반복한다.

 

그러나 확률적 경사 하강법은 선택한 샘플 또는 미니배치로 인해 노이즈가 있을 수 있어, 최적의 해를 찾는 과정에서 진행 방향이 불규칙하게 변할 수 있다. 이는 학습 과정에서 더욱 탐색적이고 전역 최적해(global minimum)를 찾는 데 도움이 될 수도 있지만, 수렴 속도가 불안정할 수 있다.

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.