Yolo 비전 선전
선전
지금 참여하기
용어집

테스트 데이터

머신러닝에서 테스트 데이터의 핵심적 역할을 탐구하세요. 편향되지 않은 데이터셋을 활용해 Ultralytics 성능을 평가하는 방법을 배우고, 실제 환경에서의 정확성을 보장하세요.

테스트 데이터는 기계 학습(ML) 모델의 최종 성능 평가를 위해 엄격히 예약된 대규모 데이터 세트의 특정 하위 집합입니다. 초기 학습 단계에서 사용된 데이터와 달리, 테스트 데이터는 개발 주기의 마지막 순간까지 알고리즘에 의해 완전히 "미확인" 상태로 유지됩니다. 이러한 격리는 컴퓨터 비전(CV) 모델이나 기타 AI 시스템이 새로운 실제 입력에 얼마나 잘 일반화되는지 편향되지 않은 평가를 제공하기 때문에 매우 중요합니다. 테스트 데이터는 실제 운영 환경을 모방함으로써 개발자가 모델이 단순히 훈련 예제를 암기하는 것이 아니라 근본적인 패턴을 진정으로 학습했는지 검증할 수 있도록 돕습니다.

ML 라이프사이클에서 테스트 데이터의 역할

표준 머신러닝 워크플로우에서 데이터는 일반적으로 세 가지 서로 다른 범주로 구분되며, 각 범주는 고유한 목적을 수행합니다. 이러한 구분 간의 차이를 이해하는 것은 견고한 인공지능(AI) 시스템을 구축하는 데 매우 중요합니다.

  • 훈련 데이터: 이는 데이터셋의 가장 큰 부분을 차지하며 모델을 학습시키는 데 사용됩니다. 알고리즘은 이 특정 예제 집합에 대한 오류를 최소화하기 위해 내부 매개변수( 가중치)를 반복적으로 조정합니다.
  • 검증 데이터: 이 하위 집합은 훈련 과정 중 하이퍼파라미터 조정 및 아키텍처 결정 지침을 위해 자주 사용됩니다. 이는 모델이 훈련 데이터에서는 잘 수행하지만 새로운 데이터에서는 실패하는 과적합을 방지하기 위한 중간 점검 역할을 합니다.
  • 테스트 데이터: 이는 모델에 대한 최종 "시험"입니다. 가중치 업데이트나 설정 조정에 절대 사용되지 않습니다. 테스트 데이터에 대한 평가는 정확도, 리콜, 평균 정밀도(mAP)와 같은 확실한 성능 지표를 산출하며, 관계자들은 이를 바탕으로 모델이 배포 준비가 되었는지 결정합니다.

이러한 분할을 적절히 관리하는 것은 Ultralytics 같은 도구를 통해 자동으로 업로드된 데이터셋을 이러한 핵심 범주로 정리하여 엄격한 모델 평가를 보장함으로써 종종 용이해집니다.

공정한 평가의 중요성

테스트 데이터의 주요 가치는 데이터셋의 편향성과 분산 문제를 detect 능력에 있습니다. 모델이 훈련 데이터에서 99% 정확도를 달성했지만 테스트 데이터에서는 60%에 불과하다면, 이는 높은 분산(과적합)을 나타냅니다. 반대로 양쪽 모두에서 성능이 저조하다면 과소적합을 시사합니다.

지정된 테스트 세트를 사용하는 것은 재현성과 객관성이라는 과학적 원칙을 따릅니다. 깨끗한 테스트 세트가 없다면 개발자는 "테스트에 맞춰 학습시키는" 위험에 처하게 되며, 이는 평가 단계의 정보를 효과적으로 훈련 단계로 역유출하는 현상입니다. 이를 데이터 유출이라고 합니다. 이로 인해 지나치게 낙관적인 성능 추정치가 도출되지만, 모델이 실제 데이터를 마주할 때 무너집니다.

실제 애플리케이션

테스트 데이터는 시스템 가동 전 안전성과 신뢰성을 보장하기 위해 AI를 활용하는 모든 산업 분야에서 필수적입니다.

  • 자율주행: 자율주행차 개발 과정에서 훈련 데이터는 맑은 날씨에 주행한 수백만 마일의 고속도로 주행 기록으로 구성될 수 있습니다. 그러나 테스트 데이터에는 차량이 훈련 과정에서 명시적으로 '본' 적이 없는 희귀하고 까다로운 시나리오—예를 들어 폭설, 갑작스러운 장애물, 혼란스러운 도로 표지판 등—가 반드시 포함되어야 합니다. 이는 물체 감지 시스템이 예측 불가능한 환경에서도 안전하게 대응할 수 있도록 보장합니다.
  • 의료 진단: 의료 영상에서 종양 검출 모델을 구축할 때, 훈련 데이터는 특정 병원 데이터베이스에서 가져올 수 있습니다. 모델이 견고하고 일반적인 사용에 안전함을 검증하려면, 테스트 데이터는 이상적으로 서로 다른 병원에서 촬영된 스캔, 서로 다른 장비로 촬영된 스캔, 그리고 다양한 환자 인구통계를 대표하는 스캔으로 구성되어야 합니다. 이러한 외부 검증은 AI가 특정 장비 유형이나 집단에 편향되지 않았음을 확인합니다.

코드를 통한 성능 평가

사용 ultralytics 패키지를 사용하면 보류된 데이터셋에서 모델의 성능을 쉽게 평가할 수 있습니다. 반면 val 모드는 훈련 중 검증에 자주 사용되지만, 테스트 분할에 대해 실행되도록 구성할 수도 있습니다. 데이터셋 YAML 구성.

사전 훈련된 YOLO26 모델을 평가하여 mAP50 같은 지표를 얻는 방법은 다음과 같습니다:

from ultralytics import YOLO

# Load a pre-trained YOLO26 model
model = YOLO("yolo26n.pt")

# Evaluate the model's performance on the validation set
# (Note: In a strict testing workflow, you would point 'data'
# to a YAML that defines a specific 'test' split and use split='test')
metrics = model.val(data="coco8.yaml")

# Print a specific metric, e.g., mAP at 50-95% IoU
print(f"Mean Average Precision (mAP50-95): {metrics.box.map}")

이 프로세스는 포괄적인 측정 지표를 생성하여 개발자가 YOLO26 대 YOLO11 같은 서로 다른 아키텍처를 객관적으로 비교하고 선택한 솔루션이 프로젝트의 정의된 목표를 충족하는지 확인할 수 있게 합니다. 엄격한 테스트는 고품질 AI 안전 기준이 충족되도록 보장하는 최종 관문 단계입니다.

Ultralytics 커뮤니티 가입

AI의 미래에 동참하세요. 글로벌 혁신가들과 연결하고, 협력하고, 성장하세요.

지금 참여하기