파이톨치

[BoostCamp AI Tech] Evaluation과 Experiments 본문

AI&ML/BoostCamp AI Tech

[BoostCamp AI Tech] Evaluation과 Experiments

파이톨치 2024. 9. 19. 23:01
728x90

모델 학습이 완료되었으면 이제 검증 데이터로 성능을 평가하여 그 결과를 확인할 차례입니다. 여러 실험을 통해 만들어진 모델 중 어떤 것이 가장 적절하게 문제를 해결하는지 확인하는 것이 중요합니다. 모델의 성능을 검증하는 지표는 다음과 같습니다.

1. Classification Metrics

모델 개발 및 테스트에 있어서 방향을 제시해주는 나침반 같은 역할을 하는 것이 분류 지표입니다. 또한, 다른 모델과의 성능을 비교할 기준이 되며, 문제 정의에 따라 올바른 지표를 선택하는 것이 중요합니다. 대표적인 지표로는 True Positive (TP), True Negative (TN), False Positive (FP), False Negative (FN) 등이 있습니다.

Precision & Recall

이 두 가지 지표를 헷갈리지 않으려면 먼저 문제 정의에 따른 PositiveNegative를 명확히 해야 합니다. 예를 들어, 도둑을 잡는 방범 시스템의 경우:

  • Positive: 타겟이 도둑이다.
  • Negative: 타겟이 도둑이 아니다.
  1. Precision (정밀도): 도둑이라고 잘못 예측하는 경우가 많다면 Precision이 낮습니다. 반대로, 잘못된 예측이 적다면 Precision이 높습니다.
  2. Recall (재현율): 도둑이 아닌 것을 잘못 예측하는 경우가 많다면 Recall이 낮습니다. 잘못된 예측이 적다면 Recall이 높습니다.

2. 왜 구별하는가?

어떤 지표를 더 중시하는지는 문제에 따라 다릅니다. 예를 들어:

  • 방범 시스템에서 만약 도둑을 잡는 것이 중요하지 않고, 오히려 도둑이 아닌 사람을 잘못 잡았을 때의 민원이 더 문제라면 False Positive를 줄여야 하므로 Precision이 높은 모델이 필요합니다.
  • 반대로, 도둑을 놓치면 큰 손실이 발생하는 금은방이라면 False Negative를 줄이는 것이 중요하므로 Recall이 높은 모델이 필요합니다.

즉, 문제의 성격과 중요 요소에 따라 성능 지표를 선택하는 것이 모델을 평가하고 활용하는 데 핵심입니다.

 

Precision과 Recall은 Threshold의 위치에 따라 반대로 변할 수 있습니다. 완벽한 모델은 존재하지 않기 때문에 상황에 따라 Precision과 Recall을 조정해야 할 경우, 비용을 고려하여 적절한 Threshold를 설정할 수 있습니다.

1. Multi-class 문제: Macro, Weighted, Micro

  • Macro: 각 클래스별 지표를 동일한 가중치로 평균을 구합니다. 모든 클래스에 균형 잡힌 평가를 원할 때 적합합니다.
  • Weighted: Macro 지표를 구할 때 클래스별 샘플 수에 비례한 가중치를 부여하여 평균을 구합니다. 샘플이 적은 클래스의 영향력을 줄입니다.
  • Micro: 모든 클래스의 TP, FP, FN을 합산한 후 지표를 계산합니다. 특정 클래스의 비중이 낮을 때 그 비중을 지표 계산에 반영합니다.

2. 그럴듯한 정답이 여러 개인 경우

  • 모델이 자신의 상위 N개의 예측 중 하나로 정답을 포함할 수 있는 비율을 나타냅니다. 예를 들어, N=5일 때 모델이 예측한 상위 5개의 클래스 중 정답이 있다면 이를 True로 표시합니다.
  • 여러 개의 그럴듯한 정답이 있을 때 유용하며, 이미지넷의 경우 리트리버에 해당하는 클래스가 여러 개인 것과 비슷합니다.
  • 추천 시스템에서는 예측한 후보들 중 하나라도 맞는 것이 있다면 True로 간주할 수 있습니다.

3. 앙상블 (Ensemble)

  • 여러 모델의 결과를 결합하여 성능을 향상시키는 방법입니다. 여러 모델의 특성을 반영하므로 단일 모델보다 예측 및 일반화 성능을 높일 수 있습니다.
  • 앙상블을 구성할 때 각 모델의 결과를 합치는 방법은 다양하며, Voting 등의 방식을 사용할 수 있습니다. 필요에 따라 성능이 좋은 모델에 더 많은 가중치를 부여할 수도 있습니다.

2.4 Cross-Validation

검증 데이터가 많아질수록 훈련에 사용할 데이터가 부족해지는 문제가 있습니다. 특히 훈련 데이터가 적을 경우 이 문제는 더욱 심각해집니다. 이러한 상황을 해결하기 위한 방법 중 하나가 K-Fold Cross-Validation입니다. K-Fold는 데이터를 여러 부분(folds)으로 나누어 각 부분이 한 번씩 검증 데이터가 되도록 하는 방식입니다. Fold의 수와 검증 비율은 Split에 따라 결정됩니다.

테스트 데이터에 N번 Augmentation 후 앙상블

테스트 데이터 이미지를 여러 번 Augmentation한 후 그 결과를 앙상블하는 방법도 있습니다. 여러 변환을 거친 결과를 앙상블하기 때문에 이전보다 예측의 안정성이 높아질 수 있습니다. 다만, 추론마다 Augmentation이 달라질 수 있기 때문에 예측 결과가 바뀔 수 있으며, 이를 재현하기 위한 코드가 필요합니다.

문제 정의에 따른 평가 방식과 리소스 배분

올바른 평가 방식(메트릭)을 선택하는 것은 문제 해결 프로세스의 결과를 확인하기 위해 매우 중요합니다. 앙상블은 간단하게 성능을 올릴 수 있는 좋은 방법이지만, 여러 번의 추론을 해야 하므로 많은 계산 리소스가 필요할 수 있다는 점을 고려해야 합니다.

 

1.1 실험 관리의 중요성

팀 내에서 일관된 실험 기록을 유지하는 것은 매우 중요합니다. 예를 들어, 팀원 A와 B가 동일한 실험을 서로 다른 하이퍼파라미터로 수행했지만, 누가 어떤 설정을 사용했는지 명확히 기록하지 않아 결과를 비교하는 데 혼란이 생길 수 있습니다. 예를 들어:

  • 팀원 A: 학습률 0.01, 배치 크기 64
  • 팀원 B: 학습률 0.001, 배치 크기 32

이러한 기록이 명확하지 않으면 서로 다른 설정과 결과가 혼재되어 어떤 실험이 더 나은 성능을 내는지 판단하기 어려워지며, 중복 작업이 발생해 팀의 진행이 느려집니다.

트래킹 툴이 필요한 이유

머신러닝 실험의 다양한 측면을 시각화하여 모니터링하는 트래킹 툴은 실험이 잘 진행되고 있는지 확인하는 데 도움이 됩니다. 이를 통해 훈련 중 모델의 성능 변화를 관찰하고, 모델 구조를 분석하며 다양한 지표를 시각적으로 비교할 수 있습니다.

가설과 실험의 반복

문제 정의가 항상 같을 수 없기 때문에, 가설 설정과 실험, 결론의 반복이 필요합니다. 많은 실험 결과를 팀원들과 함께 잘 관리하여 올바른 의사결정을 유도하는 것이 중요하며, 이를 위해 효과적인 커뮤니케이션 능력도 필수적입니다.

 

 

 

728x90