신경망(Neural Network) 훈련을 위한 최적의 배치(Batch) 크기는 무엇일까요?
배치 크기가 테스트 정확도에 미치는 영향을 다룬 간략한 연구
Created on March 25|Last edited on January 24
Comment
서론
“최적 배치 크기는 무엇인가?”와 같은 질문의 답은 거의 언제나 같은 답이라는 것(“상황에 따라 다릅니다”)을 깨닫게 되었지만, 오늘날의 목표는 배치 크기가 정확도, 훈련 시간, 컴퓨팅 리소스(compute resources)에 어떤 영향을 미치는지에 대해 살펴보는 것입니다. 그다음, 저희는 이러한 차이를 설명하는 몇 가지 가설에 대해 살펴보겠습니다.
연구해봅시다!
먼저 테스트 정확도 및 훈련 시간에 미치는 배치 크기의 영향을 확인해야 합니다.
따라서, 어블레이션 연구(ablation study)를 해보겠습니다. 저희는 이미지 분류 작업을 사용하여 배치 크기에 따라 정확도가 어떻게 변하는지 테스트해보겠습니다. 이러한 테스트를 위해 저희가 중점적으로 다룰 사항은 다음과 같습니다:
- 가능하다면 SEED를 사용하겠습니다. 이는 임의의 초기화로부터의 노이즈를 제거하여 모델을 보다 견고하게 만듭니다. 다음은 Meaning and Noise in Hyperparameter Search(초매개변수 탐색의 의미 및 노이즈)에 관한 흥미로운 읽을거리입니다.
- 초과 매개변수화(over-parameterized)된 네트워크를 사용하지 않겠습니다. 이를 통해 과적합(overfitting)을 피할 수 있습니다.
- 25 에포크(epoch) 동안 다양한 배치 크기를 통해 저희 모델을 훈련하겠습니다.
Run set
9
- 우선, 검증 메트릭(validation metrics)부터 시작하여, 작은 배치 크기로 훈련된 모델은 검증 세트에 대하여 잘 일반화됩니다.
- 배치 크기 32에서 최상의 결과를 얻을 수 있었습니다. 배치 크기 2048에서는 최악의 결과를 얻게 되었습니다. 저희 연구의 경우, 각 배치 크기가 이전 배치 크기보다 두 배인 8에서 2048 범위의 배치 크기로 모델을 훈련하고 있습니다.
- 또한, 평행 좌표 플롯은 주요 트레이드오프(key tradeoff)를 보다 명백하게 만듭니다. 즉, 배치 크기가 클수록 훈련 시간은 줄어들지만, 정확도는 떨어집니다.
Run set
9
- 더 자세하게 살펴보자면, 높은 배치 크기에서 낮은 배치 크기로 이동함에 따라 테스트 오류율이 기하급수적으로 감소하는 것을 분명하게 확인할 수 있습니다. 즉, 이것은 배치 크기 32의 경우 오류율이 가장 낮음을 나타냅니다.
- 높은 배치 크기에서 낮은 배치 크기로 이동함에 따라 훈련 소요 시간이 기하급수적으로 증가하는 것을 확인할 수 있습니다. 그리고 이 점은 예상할 수 있는 것입니다! 저희는 모델이 과적합(overfit) 하기 시작할 때, 조기 중지(early stopping)를 사용하지 않고 25 에포크 동안 훈련을 허용하기 때문에, 훈련 시간의 증가할 수밖에 없습니다.
배치 크기가 커지면 일반화가 잘 되지 않는 이유는 무엇일까요?
- 본 논문에서는 대형-배치법은 훈련 및 테스트 함수의 선명한 최소 값(sharp minimizers)으로 수렴하는 경향이 있���며, 날카로운 최소 값(sharp minima)은 일반화 저하로 이어진다고 주장하고 있습니다. 대조적으로, 소형-배치법은 일관되게 평평한 최소 값(flat minimizers)으로 수렴됩니다.
- 기울기 강하 기반(Gradient descent-based) 최적화는 비용 함수의 선형 근사치(linear approximation)를 생성합니다. 그러나 비용 함수가 매우 비선형인 (매우 곡선인) 경우, 근사치(approximation)가 그리 좋지 않으므로, 따라서 작은 배치 크기만 안전합니다
- 미니 배치에 m 예시를 넣는 경우, O(m) 계산을 수행하고 O(m) 메모리를 사용해야 하지만, 경사도(gradient)의 불확실성의 양은 오직 O(sqrt(m))의 계수만큼 줄여야 합니다. 즉, 미니 배치에 더 많은 예시를 두면 한계 효용 체감(diminishing marginal returns)이 발생합니다.
- 심지어, 전체 훈련 세트를 사용한다고 해서 반드시 true 경사를 얻을 수 있는 것은 아닙니다. 전체 훈련 세트 사용은 단지 아주 큰 미니 배치 사용하는 것입니다.
- 배치 크기가 작은 경사(gradient)는 배치 크기가 더 큰 것과 비교 했을 때 훨씬 더 진동합니다. 이러한 진동은 노이즈(noise)로 볼 수 있지만, 비블록 손실(non-covex loss)의 경우 (대개 여기에 해당), 이러한 노이즈는 로컬 최소값(local minima)에서 벗어나는 데 도움이 됩니다. 따라서 배치 크기가 클수록 최적 솔루션에 대한 탐색 단계(search step)는 더 거칠어지며, 구성에 따라 최적 솔루션에 수렴될 가능성이 줄어듭니다.
Weights & Biases
Weights & Biases는 여러분의 머신 러닝 실험 추적을 도와드립니다. 저희 툴을 사용하여 실행에서 초매개변수 및 출력 메트릭을 로그하고, 결과를 시각화 및 비교하고, 결과를 신속하게 동료와 공유하실 수 있습니다.
Add a comment
Iterate on AI agents and models faster. Try Weights & Biases today.