Batch size
Batch size
batch size란 sample 데이터 중 한 번에 네트워크에 넘겨주는 데이터의 수를 의미한다.
mini batch 라고도 불린다.
ex
1,000개의 데이터를 batch_size = 10개로 넘겨준다고 가정할 때, 총 10개씩 batch로서 그룹을 이루어 네트워크에 넘겨주게 되고, 총 100개의 step, 즉 100번 넘겨주게 되는데, 이것이 1 epoch를 도는 것이다.
즉, 1epoch(=학습 1번) = 10(batch_size) * 100(step or iteration)
epoch = batch_size * step or iteration
1 Epoch: 모든 데이터 셋을 한 번 학습
1 iteration: 1회 학습
minibatch: 데이터 셋을 batch size 크기로 쪼개서 학습하느 ㄴ것.
ex) 총 데이터가 1000개, batch_size가 10이면
1 iteration = 10개의 데이터에 대해서 학습하는 것이며,
1 Epoch = 100/batch size = 10 iteration
-> 1000개의 데이터를 batch_size = 10개로 넘겨준다고 가정할 때, 총 10개씩의 batch로서 그룹을 이루어 네트워크에 전달하게 되고, 총 100번의 step으로, 즉 100번 넘겨주게 되는데 이것이 곧 1epoch를 도는 것이다. (1epoch는 모든 데이터를 1번 학습하는 것이므로.)
batch_size가 커지면 한 번에 많은 양을 학습하기 때문에, train 과정의 시간이 줄어든다.
그러나 상충적으로 컴퓨터의 메모리 한계가 있기 때문에, batch_size를 통해 나누어서 학습하는 것이다.
즉, batch_size 를 일정량 지정하였는데 컴퓨터가 제대로 학습을 하지 못하면 batch_size를 낮춰서(네트워크 입력 횟수를 더 늘리는 효과) 다시 지정하면 된다.
(작성중)
https://nittaku.tistory.com/293 해당 문서를 참고하였음.