최적화, 하이퍼파라미터 튜닝 - Optuna

JINNI·2023년 10월 8일
0

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) 개념 정리

profile
천재 개발자 되기

0개의 댓글