epoch
신경망에서 전체 데이터셋에 대해 forward pass/backward pass 과정을 1번 거친 것. 전체 데이터셋에 대해 1번 학습을 완료한 상태
- 역전파 알고리즘(backpropagation algorithm)은 입력부터 출력까지의 각 계층 weight 계산을 해주는 순방향 패스와 거슬러 올라가며 다시 한번 계산하여 기존 weight를 수정하는 역방향 패스로 나뉜다.
➡ 1 epoch = 순방향 한번 + 역방향 한번
- 적절한 epoch를 설정해 underfitting(epoch가 너무 작을 때), overfitting(epoch가 너무 클 때) 방지
batch size
한번의 batch(mini-batch)마다 주는 데이터 샘플의 사이즈
- batch는 나눠진 데이터셋을 의미. 예를 들어 700장의 이미지 데이터셋이 있는데, 7번에 걸쳐 학습시킨다면 7개의 배치를 만들어 학습시키는 것
➡ 배치 사이즈는 700/7 = 100개가 됨

- mini batch 사이즈를 크게 하면 peak-acc 값을 높일 수 있지만, mini batch 사이즈를 작게 가져가는 것이 전반적인 정확도의 안정성을 높일 수 있음.
iteration
epoch를 나누어 실행하는 횟수
- 1 epoch를 마치는데 필요한 mini batch의 개수를 의미.
- 1 epoch를 마치는데 필요한 파라미터 업데이트 횟수를 의미.
10000개의 데이터셋을 학습시킨다고 가정(순방향 역방향 모두 포함)
한 턴에 1000개씩 10번, 5턴을 학습시킨다면
batch_size는 1000,
batch의 개수는 10개 == iteration, epoch는 5
++ 더 추가할 것..
참고자료
베이즈 최적화
pytorch tutorial-optimazation tutorial
colab optuna lecture
optuna 공식
[딥러닝] 에폭(epoch) & 배치 사이즈(batch size) & 반복(iteration) 개념 정리