카테고리 없음

epoch 대신 iteration

devim 2023. 7. 16. 22:28

epoch 이란? 

학습 데이터를 몇 번 반복해서 학습할 것인지를 말한다. 

 

batch 란? 

인공지능 모델이 학습하는 데이터셋을 말한다. 

 

한 epoch을 실행할 때마다 학습 데이터 전체를 한꺼번에 계산하면 학습이 잘 안될 수가 있다(?)

따라서 학습 데이터를 여러 개의 mini batch 로 나눈다. 

 

그러면 한 epoch을 실행시키는 동안 여러 개의 mini batch 에 대해 학습을 하고 

한 epoch이 끝나면 학습 데이터 전체에 대해 학습을 완료하게 된다. 

이 과정을 epoch 수만큼 반복한다. 

 

 

따라서 인공지능 모델을 디자인할 때 배치 사이즈(인공지능 모델이 한 번에 얼만큼의 양의 데이터를 학습할 것인지) 또한 중요한 하이퍼파라미터가 되는데 

만약 실무를 수행하면서 학습 데이터의 양이 점점 커지게 된다면 한 epoch 동안 많은 양의 데이터를 학습할 수 있으므로 

모델의 학습 결과가 향상되었을 때 그 원인이 모델의 개선사항 때문인지 학습 데이터 양이 더 많아져서인지 알 수 없다. 

이때, 한 epoch마다 train result, loss value 등을 살펴보는 것이 아니라

하나의 iteration, 즉 하나의 mini batch 마다 학습 결과를 출력하면 학습 데이터의 양에 상관없이 객관적인 모델 성능 비교가 가능하다.