오뚝이개발자

[AI/ML] 배치(batch)와 에폭(epoch), 적절한 배치 사이즈(batch size) 본문

AI/AI 개념

[AI/ML] 배치(batch)와 에폭(epoch), 적절한 배치 사이즈(batch size)

땅어 2022. 1. 27. 20:33
728x90
300x250

 

 

많이들 헷갈리는 개념 중 하나가 바로 배치(batch)와 에폭(epoch)이다. 둘은 서로 다른 개념이지만 모두 학습의 성능을 결정하는 중요한 요소이다.

 

배치와 에폭의 개념


딥러닝에서 모델이 전체 학습 데이터를 한 번씩 본 것을 '에폭을 돌았다'라고 표현한다. 모델은 가중치를 한 번 업데이트하기 위해 한 개 이상의 훈련 데이터 묶음을 사용하는데, 이것을 배치라고 하고 이 묶음의 사이즈가 바로 배치 사이즈(batch size)이다. 따라서 배치 사이즈에 따라 에폭 당 훈련 횟수가 달라진다.

배치와 에폭. 여러 개의 배치가 모여 1 에폭을 형성한다.

 

배치 크기와 모델 훈련 시간의 관계


100개의 훈련 데이터를 가지고 80에폭 동안 훈련시킨다고 가정해보자.

  • 배치 크기=1이면, 모델은 1에폭 당 100번 훈련(가중치 업데이트), 총 8000번 훈련
  • 배치 크기=10이면, 모델은 1에폭 당 10번 훈련, 총 800번 훈련
  • 배치 크기=100이면, 모델은 1에폭 당 1번 훈련, 총 80번 훈련

즉, 배치 크기를 키우면 1에폭 당 훈련 수가 감소하고 이로 인해 전체 훈련 횟수가 감소하여 결과적으로 전체 훈련 시간이 감소하게 된다.

 

배치 크기가 학습에 미치는 영향


딥러닝에선 입력 데이터가 전체 훈련 데이터를 대표한다고 가정한다. 즉, 한 배치에 포함되는 데이터가 전체 훈련 데이터를 얼마나 잘 표현하느냐에 따라 학습의 안정성이 결정된다.

배치 크기가 매우 작다면?

데이터셋 크기=N, 배치 크기=1이라면 최적화 함수는 하나의 학습 데이터마다 오차를 계산하면서 모델의 가중치를 1에폭 당 N번 갱신하게 된다. 각각의 데이터 샘플을 꼼꼼하게 살펴보며 학습이 진행되지만, 특이값(outlier)에 따라 가중치 업데이트 과정에서 최적화 탐색 경로를 크게 벗어날 수도 있다.

배치 사이즈에 따라 서로 다른 최적화 경로 탐색 양상

배치 크기가 매우 크다면?

반대로 배치 크기가 매우 크다면 어떨까? 데이터셋 크기=N, 배치 크기=N이라면 모델 가중치는 1에폭 당 1번 갱신된다. 즉, 주어진 모든 훈련 데이터의 평균 특성을 바탕으로 한 번의 훈련만으로 최적의 가중치 조합을 찾아간다.

 

배치 크기 딜레마 : 배치 크기가 크면 빠르고 효과적으로 최적화가 이루어질까?


답은 NO이다.

최적화를 진행하다가 극소값이나 안장점에 빠지게 될 수 있다. 그런데 최적화 함수는 gradient 기반의 방식을 사용해 최적화를 진행하므로 이것이 최소값이 아님을 알지 못한다. 

loss가 최소값임을 보장할 수 없는 극소값 또는 안장점 근처에 도달하게 되면 배치 크기가 큰 상황에선 이 구간을 빠져나오기가 어렵다. 배치 크기가 큰 경우 전체 훈련 데이터의 평균적인 특성을 바탕으로 학습을 진행하여 gradient를 크게 크게 바꾸지 못하기 때문이다. (쉽게 말해 평균을 구하게 되면 특이값이 전체의 보편적인 값에 파묻혀 영향력이 작아진다.) 반면, 배치 크기가 작을 때는 이 구간에서 빠져나오기가 훨씬 수월하다. 보통 처음 학습을 진행할 때에는 해당 도메인에서 일반적으로 자주 사용되는 배치 크기를 기준으로 하여 최적의 값을 탐색한다.

배치 크기가 크면 최소값을 찾지 못하고 극소값이나 안장점에 빠지게 될 수 있다.

즉, 적절한 배치 크기는 학습 속도학습 성능 모두에 영향을 미치는 중요한 요소이다. 그러므로 학습 시에 여러 실험을 통해 해당 실험에 가장 적합한 배치 크기를 정해주어야 한다.

 

 

참고

https://www.kakaobrain.com/blog/113

728x90
300x250
Comments