728x90
개요
그래디언트 누적(Gradient Accumulation)은 GPU 메모리 한계로 인해 한 번에 큰 배치 크기(Batch Size)로 학습할 수 없을 때, 작은 미니 배치(Mini-Batch)에서 계산된 그래디언트를 여러 번 누적(Accumulate)한 후, 일정 횟수마다 한 번에 모델 파라미터를 업데이트하는 딥러닝 학습 기법입니다.
내용
그래디언트 누적은 작은 배치로 여러 번 그래디언트를 계산해 누적한 뒤, 한 번에 파라미터를 업데이트함으로써, 실제로는 큰 배치로 학습하는 것과 같은 효과를 내는 메모리 효율적 학습 기법입니다.
일반적으로 딥러닝 학습에서는 하나의 미니 배치에서 Forward, Backward를 거쳐 나온 그래디언트를 즉시 파라미터로 업데이터이 합니다.
그래디언트 누적은 각 미니 배치에서 나온 그래디언트를 바로 적용하지 않고, 정해진 횟수(예: 4번) 만큼 누적합니다. 누적 횟수(예: 4번)에 도달하면 쌓인 그래디언트로 한 번에 파라미터를 업데이트하고 그래디언트를 초기화합니다.
미니 배치 4개를 누적하면, 실제로는 큰 배치 1개(예: 64 × 4 = 256)로 학습한 것과 유사한 효과를 얻을 수 있습니다.
그래디언트 누적을 통해 얻는 이점은 아래와 같습니다.
- GPU 메모리 한계 극복: 작은 배치 여러 번을 누적해 큰 배치 효과를 냄
- 학습 안정성: 큰 배치로 학습할 때와 유사한 학습 안정성을 얻음
- 성능 향상: 일부 상황에서는 일반적인 작은 배치보다 더 좋은 일반화 성능을 보일 수 있음
728x90