딥러닝 관련 공부를 하다보면 epoch, batch, iteration이란 용어가 사용됩니다.

 

해당 용어를 이번에 다시 정리하고 이해하려고 합니다.

 

Epoch

인공 신경망에서 하나의 데이터 셋에 대해 학습한 횟수 

예를 들어 128 epoch 이란 것은 설정된 데이터 셋에 대해서 128번 반복하여 학습을 진행한다는 것이죠

※한번의 학습 = "forward & backward 를 한번 한다"

 

하지만, 너무 많은 학습은 overfitting(과적합)이 발생하고, 너무 적게 하면 과소적합(underfitting)이 발생합니다.

즉, 적절한 횟수의 epoch을 설정해야 좋은 weigth의 모델을 생성할 수 있죠. 

 

출처 :  https://www.geeksforgeeks.org/underfitting-and-overfitting-in-machine-learning/

 

batch size

 

배치 사이즈란 일반적으로 데이터 셋을 해당 사이즈로 쪼개서 학습한다는 의미 입니다. 

즉 데이터 셋안에 100개의 데이터가 들어있다고 한다면 10 batch size는 해당 데이터를 10개로 쪼개서 학습한다라고 이해하시면됩니다. 

 

iteration

 

메모리의 한계와 속도 저하로 인해 효과적으로 학습하기위해서 1epoch에서 모든 데이터를 한번에 집어넣을 수 없습니다. 따라서 1epoch에서 데이터를 쪼개서 학습을 시켜주게 되는데, 1iteration은 batch size만큼 1번 넣어줄 때를 말합니다.

 

 

정리를 해보면 

500개의 데이터가 있고, 아래와 같이 셋팅이 되어있다면,

- epoch : 20

- batch size : 50

 

1epoch에는 50의 batch size로 나눠진 데이터가 10번 들어가게 됩니다. iteration은 10이 되겠죠.

총 학습 횟수는 20번, iteration은 200번이 되게 됩니다. 

 

 

reference

https://m.blog.naver.com/qbxlvnf11/221449297033

 

머신 러닝 - epoch, batch size, iteration의 의미

- 출처 이번 포스팅의 주제는 텐서플로우나 케라스 등을 사용해서 모델을 만들어 보았으면 다들 아실 용어...

blog.naver.com

https://www.geeksforgeeks.org/underfitting-and-overfitting-in-machine-learning/

+ Recent posts