딥러닝에서 모델 성능을 비교할 때 자주 사용하는 지표 중 하나가 validation loss입니다.
하지만 이 loss를 어떻게 평균내는지에 따라 결과가 달라질 수 있다는 사실, 알고 계셨나요?
딥러닝 프레임워크의 기본값(reduction='mean'
)은 단순 평균입니다.
즉, 각 batch에서 계산된 loss는 그 batch 내부 요소들의 평균값입니다.
그리고 validation 동안 여러 batch에서 얻은 평균값을 단순히 다시 평균합니다.
단순 평균은 모든 배치에 동일한 비중을 줍니다.
val_loss = sum(batch_losses) / len(batch_losses)
가중 평균은 각 batch가 가진 sample 수만큼 가중치를 부여해서 전체 평균을 계산합니다.
val_loss = sum(batch_loss * batch_size for each batch) / total_sample_count
가중 평균은 sample 수가 많은 batch의 영향력을 더 크게 반영합니다.
validation set이 batch size로 딱 나누어떨어지지 않거나,
마지막 batch가 작을 때
→ 단순 평균은 sample 수가 적은 batch도 동일한 비중을 가지므로 왜곡이 발생할 수 있습니다.
특히 batch size가 작거나 일정하지 않은 상황에서는 차이가 커질 수 있습니다.