-
Batch Size, Iteration, Step, Epoch 이해하기자연어처리(NLP)와 인공지능(AI) 2024. 9. 22. 15:05
해당 자료는 대학원때 이영섭 교수님 강의를 들으며 작성한 필기자료를 튜닝하여 블로그에 게제하였습니다.
4개의 가중치(w)를 가진 모델을 훈련하는 상황에서
- 총 data 샘플 수 = 100
- batch_size = 2
- 1 epoch
으로 훈련한다고 해보자.
- batch_size = 2이므로, 2개의 data sample로 얻은 loss값마다 가중치 갱신을 수행한다.
- 총 100개의 data sample이 존재하므로, 모든 데이터를 학습하려면 총 100 / 2 = 50번의 반복이 필요할 것이다.
이 반복 횟수를 iteration 또는 step이라고 한다. (위 사례에서는 50 step/iteration 수행)
즉, iteration = [총 data sample 수] / [batch_size] 이다.
- 50 iteration은 가중치를 50번 갱신한 셈이 된다. (w1 => w2 => ... => w50으로 표현)
- 50번째 갱신된 가중치 w50을 가지고, 전체 데이터셋에 대해 다시 loss값을 구한다.
(batch_size인 2개씩, w50 가중치를 기준으로 50개의 loss 값을 다시 구한 것을
E(obs1), E(obs2), ..... , E(obs49), E(obs50) 으로 표현)
- 1 epoch의 평균 loss 값은 E(obs1), E(obs2), ..... , E(obs49), E(obs50) 의 평균으로 표현한다.
- 2 epoch때도 위 방법을 동일하게 적용. 다만 가중치는 w50부터 시작!!
2epoch 때에는 50 iteration 추가 실행됨.
※ 문제 : batch_size = 2로, 100개의 데이터에 대해 2epoch으로 학습하면 몇 step / iteration 까지 수행되는가?
=> 1epoch 당 50 step씩 수행되므로, 총 2epoch 동안에는 100step 혹은 100 iteration까지 수행됨728x90'자연어처리(NLP)와 인공지능(AI)' 카테고리의 다른 글
FP32, TF32, FP16, BF16, Mixed Precision에 대한 이해 (5) 2024.10.03 Last_hidden_state와 Logit (5) 2024.09.24 왜 대부분의 LLM은 Decoder-only 형태로 구현되는걸까 (2) 2024.06.05 문장 기반 임베딩 모델의 Semi-supervised 학습 방법 (0) 2024.05.23 음성인식에서 쓰이는 FFT(Fast Fourier Transform)와 STFT(Short Time Fourier Transform) 그리고 Spectrogram의 개념과 차이점 (0) 2024.05.23