KEEP GOING
[DL] 배치 사이즈(batch size)/에폭(epoch)/반복(iteration) 개념 파악하기 본문
[DL] 배치 사이즈(batch size)/에폭(epoch)/반복(iteration) 개념 파악하기
jmHan 2023. 12. 27. 17:31
목차
개요
딥러닝에서 최적화(optimization)란 손실함수(loss function)를 최소화(minimize)하는 파라미터를 찾아가는 과정입니다.
파라미터를 최적화하기 위해서는 데이터를 분할하여 여러 번의 훈련 과정을 거칩니다. 이때 구분이 필요한 개념이 배치(batch size)와 에폭(epoch) 그리고 반복(iteration)입니다.
배치 사이즈(batch size)
한 번의 배치마다 주는 데이터 샘플의 크기
배치(=미니 배치라고도 불림)는 전체 데이터셋을 일정 크기로 분할한 작은 데이터 셋을 의미합니다.
이때 배치 사이즈는 이러한 작은 데이터 셋(=배치)의 크기를 뜻합니다.
예를 들어 500개의 데이터셋이 있을 때, 5번에 걸쳐 학습한다면 배치는 5개이고 배치 사이즈는 100이 됩니다.
그리고 데이터셋이 633개이고 배치가 7개라면 배치 사이즈는 어떻게 될까요?
6개 배치의 배치 사이즈는 100, 그리고 나머지 배치 1개의 배치 사이즈는 33이 되겠죠.
에폭(epoch)
인공신경망에서 forward pass와 backward pass를 거친 것
전체 데이터셋에 대해 한 번 학습을 완료한 상태
역전파 알고리즘은 입력부터 출력까지 각 계층의 가중치(weight)를 계산하는 순방향 패스(forward pass)와, 거슬러 올라가서 가중치를 업데이트하는 역방향 패스(backward pass)로 구성됩니다. 이때 1 epoch은 순방향 + 역방향 한번을 의미합니다.
epoch이 너무 크면 과대적합(overfitting)이 발생하고 반대로 epoch이 너무 작다면 과소적합(underfitting)이 발생합니다.
따라서 적절한 epoch을 설정해주는 게 중요합니다.
반복(iteration)
1 epoch을 수행하기 위해 실행하는 횟수
즉, iteration은 1 epoch을 마치기 위해 필요한 배치 개수입니다.
이해를 돕기 위해 위에 언급한 예제를 다시 살려봅시다.
500개의 데이터셋이 있을 때 배치 5개이고 배치 사이즈는 100이라면 반복은 몇일까요?
iteration은 5개라고 말할 수 있습니다. 배치 개수가 5개이기 때문이죠.
예제
150,000개의 데이터셋을 학습시킨다고 하자. (여기서의 학습은 순방향, 역방향을 전부 포함)
한 턴에 10,000개씩 15번, 5턴 학습시킨다고 하면 배치 사이즈, 에폭, 반복은 각각 얼마일까?
배치 사이즈(batch size) - 10,000
에폭(epoch) - 5
반복(iteration) - 15
배치 개수 - 15