인공지능(AI)

epochs, batch size, iteration

sysman 2020. 10. 20. 16:55

I.  epochs

 

- 한번의 epoch는 인공신경망을 전체 데이터셋에 데해 forward pass/backward pass 과정을 거친 상태, 즉, 전체 데이터 셋에 대해 한 번 학습을 완료한 상태를 말한다.

 

- backpropagation : 입력부터 출력까지 각 계층의 weight를 계산하는 과정을 거치는 forward pass를 반대로 거슬러 가면서 다시 한 번  계산 과정을 거처 기존의 weight를 수정하는 backward pass로 나뉜다. 전체 데이터 셋에 (forward + backward pass)과정이 완료 되면 한번의 epoch가 진행 되었다고 볼 수 있다.

 

- epoch =40 이면 전체 데이터 학습을 40번 거친 것으로 보면 된다.

 

- 적절한 epoch값을 설정해야 underfitting 과 overfitting을 방지할 수 있다.

 

- epoch값이 너무 작으면 underfitting을, 너무 크면 overfitting이 발생할 확률이 높다.

 

 

II. batch

 - batch size는 한번의 batch마다 주는 데이터 샘플의 size 여기서 batch(보통 mini-batch)는 나눠진 데이터셋을 뜻한다.

 

III. iteration

 - iteration은 epoch를 나누어서 실행하는 횟수라고 생각하면 된다.

 - 메모리의 한계와 속도 저하 떄문에 대부분 한 번의 epoch에서 모든 데이ㅓ를 한꺼번에 넣을 수 없다. 그래서 데이터를 나누어서 주게 되느데 이때 몇 번 나누어서 주는가를 iteration, 각 iteration마다 주는 데이터 사이즈를 batch size라고 한다.

전체 2000개 데이터가 있고, epochs =20, batch_size 500이면, 1 epoch는 각 데이터의 size가 500인 batch가 들어간 4번의 iteration으로 나누어니다. 그리고 전체 데이터셋에 대해서는 20번의 학습이 이루어졌으며, iteration 기준으로 보자면 총 80번의 학습이 이루어 진 것이다라고 보면 된다.

 

'인공지능(AI)' 카테고리의 다른 글

classifier model- 앙상블  (0) 2020.11.03
Supervised - Softmax Regression  (0) 2020.10.21
Supervised - Random Forest  (0) 2020.10.20
Supervised - Descision Tree  (0) 2020.10.19
Supervised - Logistic Regression and Validation  (0) 2020.10.19