액티브 러닝이 AI 훈련을 최적화하는 방법을 알아보세요. Ultralytics 활용해 유용한 데이터를 식별하고, 라벨링 비용을 절감하며, 정확도를 높이는 방법을 배워보세요.
능동적 학습은 기계 학습(ML) 에서 알고리즘이 사전 라벨링된 데이터셋을 수동적으로 수용하기보다 가장 유용한 정보가 담긴 데이터 포인트를 선별하여 라벨링하는 전략적 접근법입니다. 기존의 지도 학습에서는 모델이 방대한 양의 주석이 달린 데이터를 필요로 하는 경우가 많으며, 이를 생성하는 데는 비용과 시간이 많이 소요됩니다. 능동적 학습은 "불확실한" 또는 "어려운" 사례들—결정 경계에 근접하거나 모델이 확신을 가지지 못하는 사례들—을 식별하고, 인간 주석자가 오직 그러한 특정 사례들만 라벨링하도록 요청함으로써 이 과정을 최적화합니다. 이러한 반복적 루프를 통해 모델은 훨씬 적은 라벨링 샘플로도 높은 정확도를 달성할 수 있어, 예산이나 시간 제약이 있는 프로젝트에 매우 효율적입니다.
능동적 학습의 핵심은 흔히 인간이 개입하는 피드백 루프입니다. 정적 데이터셋으로 한 번만 훈련하는 대신, 모델은 질의와 업데이트의 주기를 통해 진화합니다.
데이터는 풍부하지만 라벨링에 전문 지식이나 높은 비용이 필요한 산업에서는 능동적 학습이 필수적이다.
다음 예시는 Ultralytics 사용한 간단한 "불확실성 샘플링" 로직을 보여줍니다. 모델을 로드하고, 이미지에 대해 추론을 실행하며, 신뢰도 점수가 특정 임계값 미만인 이미지를 수동 검토를 위해 표시합니다.
from ultralytics import YOLO
# Load the latest YOLO26 model
model = YOLO("yolo26n.pt")
# List of unlabeled image paths
unlabeled_images = ["https://ultralytics.com/images/bus.jpg", "https://ultralytics.com/images/zidane.jpg"]
# Run inference
results = model(unlabeled_images)
# Identify samples with low confidence for active learning
uncertain_threshold = 0.6
for result in results:
# Check if any detection confidence is below the threshold
if result.boxes.conf.numel() > 0 and result.boxes.conf.min() < uncertain_threshold:
print(f"Active Learning Query: {result.path} needs human labeling.")
능동적 학습을 유사한 훈련 패러다임과 구분하는 것이 중요하다:
능동적 학습을 효과적으로 구현하려면 강력한 머신 러닝 운영(MLOps) 파이프라인이 필요합니다. 데이터 버전 관리를 수행하고, 재훈련 작업을 트리거하며, 인간 사용자에게 주석 인터페이스를 제공하는 인프라가 필요합니다. Ultralytics 통합되는 도구를 사용하면 추론, 데이터 큐레이션, 훈련 간 원활한 전환이 가능합니다. 예를 들어, 맞춤형 훈련 스크립트를 활용하면 개발자가 새로운 액티브 러닝 데이터 배치를 YOLO 신속하게 통합할 수 있습니다.
샘플링 전략에 대한 추가 연구를 위해 연구자들은 종종 능동 학습 문헌의 포괄적인 설문조사를 참조합니다. 또한 모델 평가 지표를 이해하는 것은 능동 학습 루프가 실제로 성능을 향상시키고 있는지 검증하는 데 매우 중요합니다.