미니배치 경사하강법 (Mini-Batch Gradient Descent)
미니배치 경사하강법은 경사하강법의 한 변형으로, 주어진 데이터셋에서 랜덤하게 선택된 일부 샘플(미니배치)을 사용하여 기울기를 계산하고 이를 바탕으로 파라미터를 업데이트하는 방법이다. 일반적으로 미니배치의 크기는 32, 64, 128과 같이 비교적 작은 크기로 설정된다. 미니배치 경사하강법은 배치 경사하강법에 비해 계산 비용이 적고, 확률적 경사하강법보다 안정적인 학습 경로를 제공한다.
미니배치 경사하강법의 장점
미니배치 경사하강법의 주요 장점 중 하나는 학습의 효율성과 안정성의 균형을 맞춘다는 것이다. 배치 경사하강법의 경우, 전체 데이터셋을 사용해 기울기를 계산하기 때문에 계산 비용이 높고, 매번 모든 데이터를 사용해야 하므로 메모리 사용량이 크다. 반면, 미니배치 경사하강법은 일부 데이터만 사용하기 때문에 메모리 사용량이 적고, 각 단계에서의 계산 시간이 줄어들어 학습이 빠르다.
또한, 미니배치 경사하강법은 확률적 경사하강법에서 나타나는 고주파 노이즈 문제를 어느 정도 완화시킬 수 있다. 확률적 경사하강법에서는 한 번의 업데이트마다 기울기의 방향이 크게 변할 수 있어 학습 경로가 불안정할 수 있다. 그러나 미니배치 경사하강법은 여러 샘플의 평균 기울기를 계산하기 때문에 이러한 불안정을 줄일 수 있다.
미니배치 크기의 선택
미니배치 경사하강법의 성능은 미니배치의 크기에 크게 의존한다. 너무 작은 미니배치 크기는 확률적 경사하강법과 유사한 결과를 초래할 수 있으며, 학습 경로가 불안정해질 수 있다. 반면, 너무 큰 미니배치 크기는 배치 경사하강법에 가까워지면서 계산 비용이 증가하고, 학습의 효율성이 떨어질 수 있다.
일반적으로, 미니배치 크기는 GPU의 메모리 용량, 모델의 크기, 데이터셋의 크기 등을 고려하여 결정된다. 또한, 미니배치 크기는 학습률과 함께 조정되며, 적절한 조합을 찾는 것이 중요하다.
미니배치 경사하강법의 수렴 특성
미니배치 경사하강법은 적절한 학습률과 미니배치 크기를 설정할 경우, 전체 데이터셋을 사용한 배치 경사하강법과 유사한 수렴 특성을 보인다. 그러나, 미니배치 경사하강법의 경우, 작은 미니배치 크기에서는 특정 샘플에 의해 기울기 계산이 왜곡될 수 있으므로, 학습률을 조절하거나 학습 과정을 모니터링하는 것이 중요하다.
미니배치 경사하강법의 구현
미니배치 경사하강법은 딥러닝 라이브러리에서 쉽게 구현할 수 있다. 예를 들어, PyTorch나 TensorFlow와 같은 라이브러리에서는 미니배치 경사하강법을 기본적으로 지원하며, 사용자 정의 학습 루프를 통해 쉽게 설정할 수 있다. 일반적으로, 데이터셋을 미니배치 단위로 나누고, 각 미니배치에 대해 기울기를 계산하여 파라미터를 업데이트하는 방식으로 구현된다.
관련 자료:
Goodfellow, I., Bengio, Y., & Courville, A. (2016). Deep Learning. MIT Press.
Ruder, S. (2016). An overview of gradient descent optimization algorithms. arXiv preprint arXiv:1609.04747.
Bottou, L. (2010). Large-scale machine learning with stochastic gradient descent. Proceedings of COMPSTAT'2010.
Last updated