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

배치 경사하강법(Batch Gradient Descent)은 경사하강법의 한 변형이다. 이 알고리즘은 전체 데이터셋을 사용하여 손실 함수의 기울기를 계산하고, 이를 기반으로 모델 파라미터를 갱신한다. 구체적으로, 배치 경사하강법은 다음과 같은 단계를 따른다:

1. **손실 함수 정의**: 먼저 최적화할 손실 함수를 정의한다. 손실 함수는 모델의 예측 값과 실제 값 간의 차이를 측정하는 함수이다.
2. **기울기 계산**: 전체 데이터셋에 대해 손실 함수의 기울기를 계산한다. 이는 각 파라미터에 대한 손실 함수의 편미분으로 이루어진다.
3. **파라미터 갱신**: 계산된 기울기를 사용하여 파라미터를 갱신한다. 갱신은 다음과 같은 공식을 따른다:

$$
\theta = \theta - \alpha \cdot \nabla\_{\theta} J(\theta)
$$

여기서 $ \theta $는 파라미터 벡터, $ \alpha $는 학습률, $ \nabla\_{\theta} J(\theta) $는 파라미터에 대한 손실 함수의 기울기이다.

4. **수렴 검사**: 파라미터 갱신 후, 수렴 조건을 확인한다. 일반적으로 기울기의 크기가 일정 값 이하가 되거나 손실 함수의 변화가 매우 작아질 때 수렴 하였다고 판단한다.

#### 배치 경사하강법의 특성

배치 경사하강법은 전체 데이터셋을 사용하여 기울기를 계산하기 때문에, 각 파라미터 갱신은 정확한 기울기를 반영한다. 이는 수렴의 안정성을 높이는 장점이 있다. 그러나 데이터셋이 매우 클 경우, 기울기 계산에 많은 계산 자원이 필요하며, 이로 인해 갱신 속도가 느려질 수 있다. 또한, 모든 데이터셋을 메모리에 올려야 하므로 메모리 요구량이 커질 수 있다.

#### 배치 경사하강법의 한계와 대안

배치 경사하강법은 그 특성상 계산 비용이 크기 때문에, 대규모 데이터셋에서는 비효율적일 수 있다. 이러한 한계를 극복하기 위해 확률적 경사하강법(Stochastic Gradient Descent, SGD)이나 미니배치 경사하강법(Mini-Batch Gradient Descent)과 같은 변형 알고리즘이 사용된다. 이들 방법은 데이터셋의 일부를 사용하여 기울기를 계산함으로써 계산 자원을 절약하고, 더 빠른 갱신을 가능하게 한다.

***

관련 자료:

* Goodfellow, I., Bengio, Y., & Courville, A. (2016). *Deep Learning*. MIT Press.
* Bishop, C. M. (2006). *Pattern Recognition and Machine Learning*. Springer.
* Boyd, S., & Vandenberghe, L. (2004). *Convex Optimization*. Cambridge University Press.
