Epoch vs Batch Size vs Step(Iteration)
이번 글에서는 딥러닝 분야에서 자주 사용되는 용어들인
Epoch, Batch Size, Step(또는 Iteration)에 대하여 각 단어의 정의를 알아보고
이들 간의 관계 및 차이에 대해서 살펴보도록 하겠습니다.
이해를 돕기 위하여, 1000개 이미지의 종류를 분류하는 딥러닝 모델을 학습하는 상황을
가정해보도록 하겠습니다.
Epoch란?
epoch는 1~1000번의 각 데이터를 모델에서 몇 번씩 복습할 것인지에 대한 횟수를 의미합니다.
가령, 5 epochs라고 하면, 위 그림처럼 1, 2, 3, ..., 1000번 이미지를
순서대로 모델에서 input으로 받는 과정을 5번 연속 수행하며 순전파 및 역전파 과정을
반복하여 거친다는 것으로 이해해주시면 됩니다.
대체적으로 복습 횟수가 너무 적으면 데이터를 제대로 학습할 수 없고(underfit),
복습 횟수가 일정 횟수 이상이면 추가적인 성능 향상 효과가 거의 사라지게 됩니다.
Batch Size란?
각 이미지 1장마다에 대하여 계산된 gradient를 모두 일일이 역전파시켜서
모델을 학습할 수도 있지만, 이 과정은 연산량이 크고 학습이 불안정할 수 있습니다.
따라서, 여러 이미지에 대한 gradient를 모아서 평균을 낸 뒤, 역전파를 1회만시켜줄 수 있는데
이 때 1회 역전파에서 gradient를 모을 데이터의 개수를 Batch Size라고 합니다.
예를 들어, 위 예시에서 batch size = 100으로 정했다면,
각 epoch에서는 1~100, 101~200, ... , 901~1000번 사진에 대한 gradient를 각각 모아
총 10회의 역전파로 인한 모델 파라미터 업데이트를 시켜주게 됩니다.
적당한 크기의 batch size도 학습 성능 및 안정성에 중요한 요소로 알려져 있습니다.
Step(Iteration)이란?
위의 예시에서 batch size = 100으로 잡은 경우, 각 epoch 당 총 10회의 역전파를
수행한다고 했습니다. 이렇게 각 batch 내 데이터에 대한 gradient를 계산한 뒤,
역전파를 수행하는 일련의 과정을 Step 혹은 Iteration이라고 합니다.
위 예시의 경우, 각 epoch는 10 steps로 이루어진 것이며,
전체 5 epochs 동안에는 총 50회의 iterations를 거치게 되는 것으로 이해해주시면 됩니다.
batch size 및 step에 관한 내용들을 그림으로 요약 정리하면 아래와 같습니다.
'컴퓨터공학 > Machine Learning' 카테고리의 다른 글
Teacher Forcing이란? / Exposure Bias란? (0) | 2022.06.01 |
---|---|
Self-Supervised vs Semi-Supervised Learning 특징 차이 비교 (0) | 2022.02.12 |
Language Model (언어 모델) 요약, N-gram, RNN 개념 소개 (0) | 2021.11.15 |