검증 데이터는 머신러닝(ML) 모델 개발 수명 주기에서 중요한 구성 요소입니다. 이는 데이터 세트의 별도 부분으로, 모델을 처음에 맞추는 데 사용되는 학습 데이터 및 최종 평가에 사용되는 테스트 데이터 와는 별개입니다. 검증 데이터의 주요 목적은 모델의 하이퍼파라미터를 조정하고 모델 아키텍처 자체에 대한 결정을 내리는 동시에 학습 데이터 세트에 대한 모델의 적합성을 편견 없이 평가하는 것입니다. 이 프로세스는 보이지 않는 데이터에 대한 최종 성능을 평가하기 전에 최상의 모델 구성을 선택하는 데 도움이 됩니다.
모델 개발에서의 역할
학습 단계에서 ML 모델은 학습 데이터에서 패턴을 학습합니다. 그러나 학습한 데이터와 동일한 데이터로 모델을 단순히 평가하는 것은 오해의 소지가 있을 수 있으며, 종종 모델이 노이즈와 특정 특성을 포함하여 학습 데이터를 너무 잘 학습하여 새로운 데이터로 일반화하는 능력을 저해하는 과적합으로 인해 지나치게 낙관적인 성능 추정치를 초래할 수 있습니다. 검증 데이터는 학습 중에 보이지 않는 데이터의 프록시 역할을 합니다. 개발자는 정기적으로(예: 각 에포크 이후) 유효성 검사 세트에 대한 모델의 성능을 평가함으로써 다음과 같이 할 수 있습니다:
- 하이퍼파라미터를 조정합니다: 학습 속도, 배치 크기 또는 모델의 복잡성(예: 신경망의 레이어 수)과 같은 설정을 조정합니다. 하이퍼파라미터 튜닝 가이드와 같은 기술을 살펴보세요.
- 모델을 선택합니다: 다양한 알고리즘 또는 아키텍처를 비교하여 유효성 검사 세트에서 가장 우수한 성능을 발휘하는 알고리즘을 확인합니다.
- 과적합 방지: 훈련 세트의 성능이 계속 향상되고 있더라도 검증 세트의 성능이 저하되기 시작하면 훈련을 중단하는 조기 중지를 구현합니다. 모델 트레이닝을 위한 팁에서 자세히 알아보세요.
검증 데이터와 훈련 및 테스트 데이터 비교
트레이닝, 검증, 테스트 데이터 세트의 차이점을 이해하는 것은 기본입니다:
- 학습 데이터: 데이터 세트의 가장 큰 부분으로, 알고리즘이 패턴을 학습하고 내부 매개변수(모델 가중치)를 조정하는 데 직접 사용됩니다.
- 검증 데이터: 학습 중에 하이퍼파라미터를 조정하고 모델 선택 결정을 내리기 위해 반복적으로 사용되는 중간 크기의 부분입니다. 현재 학습 상태를 기반으로 모델이 얼마나 잘 일반화되고 있는지에 대한 피드백을 제공합니다.
- 테스트 데이터: 개발 프로세스의 마지막까지 완전히 분리된 작은 부분입니다. 실제로 보이지 않는 데이터에 대해 선택한 모델의 성능을 편견 없이 최종적으로 평가합니다. 결정적으로, 테스트 세트는 모델의 예상 실제 성능에 대한 신뢰할 수 있는 평가를 보장하기 위해 훈련 또는 튜닝 결정에 영향을 미치지 않아야 합니다.
중요성 및 이점
전용 유효성 검사 세트를 사용하는 것은 강력하고 안정적인 ML 모델을 구축하는 데 필수적입니다. 주요 이점은 다음과 같습니다:
- 일반화 개선: 모델이 학습된 데이터뿐만 아니라 보이지 않는 새로운 데이터에 대해서도 잘 작동하도록 지원합니다.
- 객관적인 모델 비교: 서로 다른 모델 또는 하이퍼파라미터 설정을 비교하기 위한 공정한 기준을 제공합니다.
- 과적합 방지: 모델이 일반적인 패턴을 학습하는 대신 학습 데이터를 암기하기 시작하는 시점을 감지하는 조기 경고 시스템 역할을 합니다. 모델 평가 및 미세 조정에 대한 자세한 가이드에서 자세한 내용을 확인할 수 있습니다.
실제 사례
- Ultralytics YOLO 사용한객체 감지: 교육 시 Ultralytics YOLO 모델을 훈련하여 자율 주행 애플리케이션을 위한 자동차나 보행자와 같은 물체를 감지할 때, 훈련 데이터는 수천 개의 레이블이 지정된 이미지로 구성됩니다. 유사한 물체가 있는 다양한 이미지가 포함된 검증 세트는 각 훈련 에포크 후에 평균 평균 정밀도(mAP)와 같은 메트릭을 계산하는 데 사용됩니다. 이 검증 mAP는 최종 테스트 전에 검증 세트에서 최상의 성능을 내는 구성을 찾기 위해 Ultralytics HUB와 같은 도구를 사용하여 하이퍼파라미터(예: 학습 속도, 데이터 증강 강도)를 조정하도록 안내합니다.
- 의료 이미지 분석: 뇌 종양 데이터 세트와 같은 데이터 세트를 사용해 뇌 스캔에서 종양을 분류하기 위한 컨볼루션 신경망(CNN) 을 개발 중이라고 가정해 보겠습니다. 검증 세트는 서로 다른 CNN 아키텍처(예: ResNet과 VGG)를 비교하거나 드롭아웃률과 같은 매개변수를 조정하는 데 사용됩니다. 연구자들은 검증 정확도 또는 F1 점수를 기반으로 최적화함으로써 최종 테스트 세트 평가의 무결성을 손상시키지 않으면서 가장 유망한 모델을 선택할 수 있으며, 이는 FDA와 같은 기관에서 규제하는 임상 애플리케이션에 매우 중요한 요소입니다.
유효성 검사 데이터와 관련된 기술
특히 데이터가 제한된 경우 단일 유효성 검사 분할이 대표성을 갖지 못할 수 있습니다. 교차 유효성 검사와 같은 기법으로 이 문제를 해결할 수 있습니다. K-Fold 교차 검증에서는 학습 데이터가 'k'개의 하위 집합(폴드)으로 나뉩니다. 모델은 매번 다른 폴드를 유효성 검사 집합으로 사용하고 나머지 k-1개의 폴드를 훈련에 사용하여 'k'번 훈련됩니다. 'k'개의 검증 폴드에 걸친 평균 성능을 통해 모델의 일반화 능력을 보다 강력하게 추정할 수 있습니다. Scikit-learn과 같은 라이브러리에서 구현을 찾을 수 있습니다.
검증 데이터는 효과적인 컴퓨터 비전 및 기타 ML 모델을 개발하는 데 필수적인 요소로, 모델이 잘 조정되고 학습 데이터 세트를 넘어 새로운 과제에 일반화할 수 있도록 보장합니다.