AI/Machine Learning

확률적 경사 하강법 (SGD, Stochastic Gradient Descent)

comflex 2025. 3. 27. 20:20
728x90
반응형

확률적 경사 하강법 (SGD, Stochastic Gradient Descent)

머신러닝과 딥러닝에서 가장 중요한 최적화 알고리즘 중 하나인 확률적 경사 하강법(SGD, Stochastic Gradient Descent)에 대해 알아보겠습니다.


1. 경사 하강법(Gradient Descent)이란?

경사 하강법(Gradient Descent, GD)은 손실 함수(Loss Function)를 최소화하기 위해 파라미터를 조정하는 최적화 기법입니다. 보통 머신러닝 모델이 학습할 때, 손실(loss)을 줄이는 방향으로 가중치(weight)를 업데이트하는 방식으로 사용됩니다.

2. 확률적 경사 하강법(SGD)란?

SGD는 경사 하강법의 한 변형으로, 전체 데이터셋을 사용하지 않고 랜덤하게 선택한 하나의 데이터 포인트(샘플)만을 이용하여 가중치를 업데이트하는 방식입니다.

일반적인 경사 하강법(GD)과의 차이점

방법 업데이트 방식 장점 단점
Batch Gradient Descent (BGD) 전체 데이터를 사용하여 평균 기울기 계산 후 업데이트 정확한 최적해 가능 계산량이 많고 속도가 느림
Stochastic Gradient Descent (SGD) 랜덤하게 선택한 샘플 하나로 업데이트 빠르고 메모리 효율적 진동(Noise) 발생 가능
Mini-Batch Gradient Descent 작은 배치(예: 32, 64개 샘플)를 이용해 업데이트 속도와 안정성의 균형 적절한 배치 크기 선택이 필요

3. 확률적 경사 하강법(SGD) 수식

SGD는 가중치 w를 다음과 같은 방식으로 업데이트합니다:
w:=w−η⋅∇L(w,xi​)

- η: (Learning Rate, 학습률): 업데이트 크기를 조절하는 하이퍼파라미터
- L(w,xi​): 하나의 샘플 에서 계산한 손실 함수의 기울기


4. SGD의 장점과 단점

장점

  • 빠름 → 대량의 데이터셋에서도 빠르게 학습 가능
  • 메모리 효율적 → 전체 데이터셋을 저장할 필요 없음
  • 지역 최적해(Local Minima)에서 빠져나올 가능성이 높음 → 랜덤한 업데이트 덕분에 더 나은 최적해를 찾을 확률 증가

단점

  • 진동(Noise) 발생 가능 → 업데이트 방향이 계속 바뀌어 최적해 근처에서 흔들릴 수 있음
  • 수렴 속도가 느릴 수 있음 → 해를 정확히 찾기 위해서는 학습률 조정이 필요

반응형
728x90

5. SGD를 사용하는 예제

import numpy as np
from sklearn.linear_model import SGDRegressor

# 데이터 생성
np.random.seed(0)
# y = 4X + 7
X = 2 * np.random.rand(100,1)
y = 7 +4 * X+ np.random.randn(100,1)

# SGDRegressor 설정
sgd_regressor = SGDRegressor(learning_rate='constant', eta0=0.1, max_iter=100, tol=None)

# 모델 학습
sgd_regressor.fit(X, y)

# 예측
y_pred = sgd_regressor.predict(X)

# 결과 출력
print("회귀 계수:", sgd_regressor.coef_)
print("절편:", sgd_regressor.intercept_)

이 코드는 SGD를 사용하여 회귀 계수와 절편을 다시 계산하는 방법을 보여줍니다.


6. 결론: 언제 SGD를 사용해야 할까?

- 대량의 데이터셋(Big Data) → 전체 데이터를 반복적으로 계산하는 것이 비효율적인 경우
- 실시간 학습(Online Learning) → 새로운 데이터가 계속 추가되는 경우
- 빠른 근사해(Approximate Solution) 필요 → 정확한 최적해보다 빠른 최적화를 원할 때

SGD는 머신러닝과 딥러닝에서 가장 많이 사용되는 최적화 알고리즘 중 하나입니다. 상황에 맞게 활용하면 더욱 효율적인 학습을 할 수 있습니다!

728x90
반응형