본문 바로가기
Major/Programming

Epochs, Mini-Batch (Batch Size), Iterations

by 우프 2020. 9. 12.
반응형
훈련에 사용되는 컴퓨터 인스턴스의 메모리 제한과 데이타셋의 크기 때문에, 대부분의 경우 모든 훈련데이터를 알고리즘에 한번 (one pass)에 훈련시키는 것은 불가능하다. 

* Epoch
1번의 Epoch: 전체 데이터셋이 정확히 한번 신경망을 통하여 순전파와 역전파를 한 것을 의미함
2 Epoch: 전체 데이터셋을 2번 학습한 것을 의미함

* mini-batch
데이터 셋을 한번에 알고리즘을 통과하는게 어려워서 데이터셋을 mini-batch들로 나눈다.
따라서 Batch Size는 한개의 mini-batch의 총 훈련샘플의 수를 의미함

* iteration
1번의 iteration: 훈련 중 신경망 모델의 가중치 (weights) 를 한 번 업데이트 하는 것 (한 번의 기울기 업데이트)을 의미 
-> iteration 개수 = 1 Epoch을 수행하기 위해서 요구되는 batch의 개수
-> dataset: 1,000개 이미지, mini-batch: 100개 이미지인 경우 -> 1 Epoch를 수행하기 위해 10번의 iteration이 필요함

* 올바른 epoch 수는?
- 네트워크에 통과하는 동안 가중치들이 업데이트되며, epoch 수가 증가할 수록 네트워크는 underfitting에서 optimal, overfitting 됨
- epoch 수를 선택하는 magic rule은 없음

* 올바른 batch size는?
- epoch 수 처럼 최적의 batch size는 없음
- batch size가 너무 작으면 sample간 차이가 커서 높은 변동량을 가지고, 역으로 batch size가 너무 크면 제한된 컴퓨터 메모리에 적합하지 않고 data에 overfiting되는 경향이 있음
- batch size의 크기를 dataset 크기의 제곱근을 취하는 경우가 많음



반응형

댓글