확률적 경사 하강법(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)를 나타낸다.
확률적 경사 하강법을 사용하려면 다음과 같은 과정을 거친다.
- 파라미터 $\theta$의 초기 추정값을 설정한다.
- 학습 데이터셋에서 무작위로 하나의 샘플 또는 미니배치를 선택한다.
- 선택한 샘플 또는 미니배치에 대해 손실 함수의 기울기를 계산한다.
- 파라미터를 업데이트한다.
- 원하는 정확도에 도달하거나, 최대 반복 횟수에 도달할 때까지 2~4단계를 반복한다.
그러나 확률적 경사 하강법은 선택한 샘플 또는 미니배치로 인해 노이즈가 있을 수 있어, 최적의 해를 찾는 과정에서 진행 방향이 불규칙하게 변할 수 있다. 이는 학습 과정에서 더욱 탐색적이고 전역 최적해(global minimum)를 찾는 데 도움이 될 수도 있지만, 수렴 속도가 불안정할 수 있다.