sol’s blog

딥러닝에서 일반화 성능 검증

sol-commits
sol-commitsJun 15, 2025
딥러닝에서 일반화 성능 검증

    간단히 요약하자면,

    상세 과정

    1. Train을 5개 폴드로 나누기
      • 전체 Train 데이터를 train_1, train_2, …, train_5로 나눔
    1. Fold별 모델 학습 및 Best 모델 저장
      • 각 Fold에서 4개는 학습, 나머지 1개는 Fold-Validation으로 사용하여 Best Model 저장
      Fold학습 데이터검증 데이터(Fold 내부)저장 대상
      12, 3, 4, 51Best model #1
      21, 3, 4, 52Best model #2
      31, 2, 4, 53Best model #3
      41, 2, 3, 54Best model #4
      51, 2, 3, 45Best model #5
      • 각 실험에서 validation loss 기준으로 best epoch, model 저장
    1. 고정된 validation set으로 모델 평가
      • 위에서 저장한 5개의 Best model을 이용해, 고정된 validation set을 평가
      # 예시: 5개 모델의 softmax 예측 결과를 평균
      final_pred = np.mean([model1_pred, model2_pred, ..., model5_pred], axis=0)
      python
    1. 실험별로 모델 성능 평가 방식
      • 가장 일관되게 좋은 성능을 보인 모델 1개 선택
        • validation macro f1 가장 높고
        • train-val gap이 과하지 않고
          • Train 성능 평가 → best model 5개로 train set 한덩이를 평가(validation holdout set 평가하듯이)
        • test(가능할 경우) 성능도 나쁘지 않은 모델

    단일 모델 vs Fold Ensemble

    학습 데이터 비율기대 효과위험 요소
    단일 모델(full train)100%최대 학습 정보일반화 판단 어려움
    fold ensemble(5-fold)80% per model일반화 추정 ⬆️모델당 학습량 ⬇️
    • fold 수를 증가시키면, 학습에 더 많은 데이터 사용이 가능해져서 개별 모델의 성능 향상을 기대해볼 수도 있음

      → 다만, 학습 횟수가 늘어나서 시간도 오래 걸림

    전통적인 CV와 다른 점

    💡
    전통적인 K-Fold CV
    • 전체 데이터를 K개로 균등 분할
    • 각 분할을 validation set으로, 나머지를 학습에 사용
    • K번 학습 → 각 fold의 평가 metric 평균을 최종 성능 지표로 사용

    → 즉, 모델 학습과 성능 추정을 동시에 수행

    💡
    딥러닝에서의(위의) 방식
    • validation set은 따로 보존(holdout)
    • train set 내부에서만 fold 나눔 → fold별로 best model을 저장
    • 보존한 validation set으로 여러 모델의 평균 성능을 측정

    왜 딥러닝에서는 전통적인 K-Fold CV가 힘든지?

    딥러닝에서는 일반적으로 Validation Loss 기준으로 Early Stopping/Best Model 저장을 수행

    이 과정에서 validation 데이터를 학습 흐름에 반복적으로 사용하기 때문에, 전통적인 완전히 미지의 holdout set 이라는 개념과는 다름

    선택한 방식이 일반화 평가에 유효한지?

    원리설명
    분산 완화여러 학습 데이터 조합에서 얻은 모델들의 결과를 평균냄으로써
    ”운좋은 모델”이나 “운 나쁜 모델”에 의존하지 않음
    과적합 방지 판단특정 데이터에 과적합된 모델이 있다면,
    고정된 validation set에서 다른 모델들과 비교해 성능이 떨어짐.
    즉, overfitting 모델의 영향을 완화함
    안정성 향상validation 성능이 여러 모델에서 일관되게 높게 나타날수록,
    새로운 데이터에도 잘 작동할 가능성이 높음
    cv 대안딥러닝 특성상 full cv는 어렵지만,
    validation set 하나로만 일반화 성능을 측정하는 의존성을 줄이며,
    일반화 성능을 추정할 수 있음