컴퓨터공학/Machine Learning

[딥러닝 용어] Epoch, Batch Size, Step 정의 비교

jimmy_AI 2022. 4. 9. 21:00
반응형

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에 관한 내용들을 그림으로 요약 정리하면 아래와 같습니다.