소품집

[DL] 배치(batch)와 에포크(epoch), 반복(iteration) 본문

AI

[DL] 배치(batch)와 에포크(epoch), 반복(iteration)

sodayeong 2021. 9. 30. 12:14

이번 포스팅은 배치(batch)와 에포크(epoch), 반복(iteration)의 차이를 학습하겠습니다. 딥러닝을 하기 위해 모델을 학습할 때 부여하는 각각의 파라메터에 반복하는 횟수입니다.

 

batch size

batch size란 전체 트레이닝 데이터 셋을 여러 작은 그룹으로 나누었을 때 batch size는 하나의 소그룹에 속하는 데이터 수를 의미합니다.

만약 배치 사이즈가 너무 크면 한 번에 처리해야할 양이 그만큼 증가하기 때문에 학습 속도가 느려지고, 메모리 부족 문제를 겪을 수도 있습니다.  반대로 배치 사이즈가 너무 작으면 적은 샘플을 참조해서 가중치 업데이트가 빈번하게 일어나기 때문에, 비교적 불안정하게 훈련될 수도 있습니다.

따라서 배치 사이즈를 적절하게 부여하여 효율적인 학습을 해야합니다. 

epoch

딥러닝에서는 epoch은 전체 트레이닝 셋이 신경망을 통과한 횟수입니다. 예를 들어 1-epoch는 전체 트레인이 셋이 하나의 신경망에 적용되어 순전파와 역전파를 통해 신경망을 한 번 통과했다는 것을 의미합니다.

 

iteration

마지막으로 iteration은 1-epoch을 마치는데 필요한 미니배치 개수를 말한다. 다른 말로, 1-epoch를 마치는데 필요한 파라미터 업데이트 횟수입니다. 예를 들어, 700개의 데이터를 100개씩 7개의 미니배치로 나누었을 때, 1-epoch를 위해서는 7-iteration이 필요하며 토탈 7번의 파라미터 업데이트가 일어납니다.

 

 

예시

총 1000개의 훈련 샘플이 있는데, 배치 사이즈가 20이라면 20개의 샘플 단위마다 모델의 가중치를 한 번씩 업데이트가 일어납니다.  따라서 총 50번의 가중치가 업데이트 됩니다. 

이때 에포크가 10이면, 가중치를 50번 업데이트 하는 것을 10번 반복한다는 뜻이고, 총 10*50 = 500번의 가중치 업데이트!

 

 

 

출처

https://losskatsu.github.io/machine-learning/epoch-batch/#1-사전적-의미

728x90
Comments