모델을 훈련할때 평가과정은 보통 epoch 로 진행하는데, 간혹 특정 예제들은 steps 로 진행되기도 한다.
예로 Seq2SeqTrainingArguments 의 설정 옵션을 살펴보면
- evaluation_strategy (str or IntervalStrategy, optional, defaults to "no") - The evaluation strategy to adopt during training. Possible values are:
- "no": No evaluation is done during training.
- "steps": Evaluation is done (and logged) every eval_steps.
- "epoch": Evaluation is done at the end of each epoch.
라고 기재되어 있는 모습을 볼 수 있다.
이 steps 와 epoch 는 어떤 차이가 존재할까?
1. 배경지식
먼저 이러한 steps 와 epoch 의 차이를 알기 위해서는 batch_size 에 관해서 알아야 한다.
간단하게 아래 포스팅을 참고하길 바란다.
2. Epoch
epoch 는 '전체 훈련 데이터' 를 통해서 신경망을 한번 학습시키는 것이다.
그렇다고 해서 batch_size 가 의미 없는것은 아닌것이. 전체 데이터가 100개의 sample 이고, 10의 batch_size 를 가진다면 총 10번에 걸쳐 1 epoch 이 진행되기 때문이다.
3. Steps
위에서 '10번에 걸쳐' 1 epoch 가 진행된다고 하지 않았나? 그런데 이 '10번' 을 steps 라고 지칭한다. 따라서 만약 내가 100개의 sample 을 지니고 있고, 10의 batch_size 를 지닐 때, '5 스탭' 만 진행한다고 하면 50개의 샘플만 신경망에 학습되는 원리이다.
물론 steps 를 키워서 epoch 기준으로는 3.5 epoch 만큼 학습시킬 수 있는 등 다양하게 지정할 수 있다.
4. 수식
- E : Epoch
- S : Steps
- B : batch_size
- C : data sample count
steps 를 epoch 로 변환할 수 있는 수식은 아래와 같다.
$$ E = {B * S \over C} $$
한 epoch 가 완료되기 위해 필요한 steps 의 총 수는 아래와 같다.
$$ S = {C \over B} $$
'Artificial Intelligence > Basic' 카테고리의 다른 글
Transformer 의 CrossAttention 차이점 (0) | 2024.04.23 |
---|---|
행렬 기초 (0) | 2024.04.17 |
batch_size 란? (0) | 2024.03.05 |
인공지능에서 Parameter 란? (0) | 2024.01.27 |
GAN의 최적 손실값 (1) | 2023.06.19 |