본문 바로가기

02. 딥러닝

00001. Gradient Descent 완벽 정리: Batch GD, SGD, Mini-Batch 차이점 비교

반응형

📌 Gradient Descent(경사 하강법) 종류 완벽 정리

Batch GD, SGD, Mini-Batch GD 차이점 비교 & 선택 가이드

머신러닝과 딥러닝 모델을 학습할 때, 가장 중요한 최적화 알고리즘 중 하나가 **Gradient Descent(경사 하강법)**이다. 하지만 경사 하강법은 데이터 처리 방식에 따라 크게 Batch Gradient Descent, Stochastic Gradient Descent(SGD), Mini-Batch Gradient Descent 3가지로 나뉜다.

 

그렇다면, 이 3가지 방식은 어떻게 다를까? 그리고 어떤 상황에서 어떤 방법을 써야 할까?

이번 포스팅에서는 Gradient Descent의 핵심 개념과 종류별 차이점, 활용법을 그림과 도표로 직관적으로 정리해보겠다. 🚀


🧩 Gradient Descent란?

Gradient Descent(경사 하강법)은 손실 함수(Loss Function)의 최소값을 찾기 위해 가중치(Weight)를 조정하는 최적화 알고리즘이다. 즉, 모델이 더 나은 예측을 할 수 있도록 오차(Loss)를 줄이는 방향으로 가중치를 조정하는 과정이다.

🎯 경사 하강법의 핵심 개념

✅ 현재 위치에서 기울기(Gradient)를 계산하여 손실을 줄이는 방향으로 이동
✅ 학습률(Learning Rate)에 따라 이동 속도 조절
✅ 최적값(Global Minimum)을 찾는 것이 목표


🔥 Batch GD vs SGD vs Mini-Batch GD 차이점 비교

📌 Batch Gradient Descent (GD)

🟢 특징

  • 전체 데이터셋을 한 번에 사용하여 기울기를 계산하고 가중치를 업데이트함.
  • 학습 과정이 부드럽고 안정적이나, 데이터가 크면 계산이 매우 느려질 수 있음.

🟢 장점

✅ 안정적인 수렴 과정
✅ 부드러운 최적화 경로

 

🔴 단점

❌ 데이터셋이 클 경우 연산 속도가 느림
❌ 메모리 사용량이 많음

 

📌 사용 사례: 데이터 크기가 작고, 안정적인 학습이 필요한 경우

 


📌 Stochastic Gradient Descent (SGD)

🟢 특징

  • 한 번의 업데이트에 단 하나의 샘플만 사용하여 가중치를 조정.
  • 빠른 업데이트가 가능하지만, 최적화 경로가 불안정하여 진동할 수 있음.

🟢 장점

✅ 매우 빠른 학습 가능
✅ 지역 최소점(Local Minimum)을 탈출할 가능성이 높음

 

🔴 단점

❌ 최적화 경로가 불안정하여 최적점 근처에서 진동 가능
❌ 특정 패턴을 따르는 데이터에 과적합될 가능성이 있음

 

📌 사용 사례: 실시간 학습, 데이터셋이 매우 크고 빠른 최적화가 필요할 때

 


📌 Mini-Batch Gradient Descent

🟢 특징

  • Batch GD와 SGD의 중간 형태로, 소규모 데이터 묶음(Mini-Batch)을 사용하여 업데이트 진행.
  • 일반적으로 **Batch 크기(b)**는 16, 32, 64, 128 등의 값으로 설정됨.

🟢 장점

✅ 계산 효율이 뛰어나며, GPU 가속과 잘 맞음
✅ Batch GD보다 빠르고, SGD보다 안정적
✅ 최적화 경로가 부드러워 일반적으로 가장 좋은 성능을 보임

 

🔴 단점

❌ Batch 크기 선택에 따라 성능이 달라질 수 있음
❌ 너무 작은 Batch 크기를 선택하면 SGD처럼 불안정해질 수 있음

 

📌 사용 사례: 딥러닝에서 가장 일반적으로 사용 (CNN, Transformer, LSTM 등)

 


📊 비교 요약 도표

 

방식 데이터 사용 방식 장점 단점 사용 사례
Batch GD 전체 데이터셋 사용 ✅ 안정적인 최적화, 부드러운 학습 경로 ❌ 데이터가 크면 느리고 메모리 사용량 많음 데이터 크기가 작을 때
SGD 랜덤으로 하나의 샘플 사용 ✅ 빠른 업데이트, 실시간 학습 가능 ❌ 최적화 경로가 불안정, 진동 발생 가능 실시간 학습, 데이터가 클 때
Mini-Batch GD 일부 데이터(Batch) 사용 ✅ 균형 잡힌 성능, 속도와 안정성 모두 좋음 ❌ Batch 크기에 따라 성능이 달라질 수 있음 딥러닝에서 가장 일반적으로 사용

🚀 결론: 어떤 방법을 선택해야 할까?

데이터가 작고 계산 부담이 적다면?Batch Gradient Descent
실시간 학습이 필요하거나 데이터가 매우 크다면?SGD
대부분의 딥러닝 모델에서는?Mini-Batch Gradient Descent (추천!)

실무에서는 Mini-Batch Gradient Descent가 가장 널리 사용되며,

Batch 크기를 32, 64, 128과 같은 2의 배수로 설정하는 것이 일반적이다. 🚀

 

반응형