본문 바로가기

딥러닝 & 머신러닝/딥러닝 지식

에폭(epoch), 배치 사이즈(batch size), 미니 배치(mini batch), 이터레이션(iteration)

# 에폭(epoch)이란? 배치 사이즈(batch size)란?

 

에폭(epoch): 하나의 단위. 1에폭은 학습에서 훈련 데이터를 모두 소진했을 때의 횟수에 해당함.

미니 배치(mini batch): 전체 데이터 셋을 몇 개의 데이터 셋으로 나누었을 때, 그 작은 데이터 셋 뭉치

배치 사이즈(batch size): 하나의 미니 배치에 넘겨주는 데이터 갯수, 즉 한번의 배치마다 주는 샘플의 size

이터레이션(iteration): 하나의 미니 배치를 학습할 때 1iteration이라고 한다. 즉, 미니 배치 갯수 = 이터레이션 수

 

 

ex1) 훈련 데이터 1000개를 10개의 미니 배치로 나누어 학습하는 경우, 배치 사이즈는 100이 되고, 확률적 경사 하강법(SGD)을 10회 반복, 즉 10회 iteration 하면 모든 훈련 데이터를 '소진'하게 된다. 이때 SGD 10회, 즉 iteration 10회가 1에폭이 된다. 그러면 10에폭을 돌린다고 했을때 가중치 갱신은 10x10 = 100회가 일어난다.

 

ex2) 전체 2000 개의 데이터가 있고, epochs = 20, batch_size = 500이라고 가정하자. 그렇다면 1 epoch는 각 데이터의 size가 500인 batch가 들어간 네 번의 iteration으로 나누어진다. 즉, 이때는 미니배치가 4개, 배치사이즈는 500이다. 그리고 전체 데이터셋에 대해서는 20 번의 학습이 이루어졌으며, iteration 기준으로 보자면 총 80 번의 학습, 즉 80번의 가중치 갱신이 이루어진 것이다.

 

 따라서 배치 사이즈가 데이터의 갯수면? 그건 SGD가 아니라 GD이다. (전체 데이터의 그래디언트를 한꺼번에 모두 계산하고 한 epoch 당 딱 한 번의 iteration 으로 딱 한 번 가중치 갱신 일어나므로)