Active Learning
Active Learning이 AI 학습을 최적화하는 방법을 알아보세요. Ultralytics YOLO26을 사용해 유용한 데이터를 식별하고 라벨링 비용을 줄이며 정확도를 높이는 방법을 학습할 수 있습니다.
능동 학습은 머신 러닝 (ML)에서 알고리즘이 미리 레이블이 지정된 데이터셋을 수동적으로 받아들이는 대신, 레이블 지정을 위해 가장 정보량이 많은 데이터 포인트를 선제적으로 선택하는 전략적 접근 방식입니다. 기존의 지도 학습에서는 모델을 학습시키기 위해 막대한 양의 어노테이션 데이터가 필요한 경우가 많으며, 이러한 데이터를 생성하려면 많은 비용과 시간이 소요될 수 있습니다. 능동 학습은 의사 결정 경계에 가깝거나 모델의 확신이 부족한 "불확실한" 또는 "어려운" 예제를 식별하고, 사람 어노테이터에게 해당 인스턴스만 레이블 지정하도록 요청하여 이 프로세스를 최적화합니다. 이러한 반복 루프를 통해 모델은 훨씬 적은 수의 레이블 지정 샘플로도 높은 정확도를 달성할 수 있으므로, 예산이나 시간 제약이 있는 프로젝트에 매우 효율적입니다.
능동 학습 사이클의 작동 방식#
능동 학습의 핵심은 흔히 휴먼 인 더 루프라고 하는 피드백 루프입니다. 정적 데이터셋을 한 번 학습하는 대신, 모델은 쿼리와 업데이트 사이클을 통해 발전합니다.
-
초기화: 프로세스는 초기 모델을 학습하는 데 사용되는 소량의 레이블 지정 학습 데이터로 시작하며, 예를 들어 Ultralytics YOLO26을 사용할 수 있습니다.
-
쿼리 선택: 모델은 레이블이 지정되지 않은 대규모 데이터 풀을 평가합니다. 쿼리 전략을 사용하여(가장 일반적인 방법은 불확실성 샘플링) 예측에 대한 확신이 가장 낮은 이미지 또는 텍스트를 선택합니다.
-
어노테이션: 우선순위가 높은 이러한 샘플은 능동 학습 문헌에서 흔히 "오라클"이라고 부르는 인간 전문가에게 전달되어 데이터 레이블 지정이 이루어집니다.
-
재학습: 새로 레이블이 지정된 데이터가 학습 세트에 추가되고 모델이 다시 학습됩니다. 이렇게 업데이트된 모델은 다음 혼동 샘플 배치를 더 효과적으로 선택할 수 있습니다.
실제 적용 사례#
능동 학습은 데이터는 풍부하지만 레이블 지정에 전문 지식이나 높은 비용이 필요한 산업에서 필수적입니다.
- 의료 영상 분석: 영상의학과 같은 분야에서는 레이블 지정을 위해 전문의 자격을 갖춘 전문가가 필요하며, 이들의 시간은 매우 귀중합니다. 의사에게 명확한 스캔 이미지 수천 장에 어노테이션을 지정하도록 요청하는 대신, 능동 학습 시스템은 초기 종양이나 희귀 이상 징후와 같은 모호한 사례를 선별하여 전문가가 모델의 진단 능력을 실제로 향상하는 이미지에만 집중할 수 있도록 합니다.
- 자율주행 차량: 자율주행 자동차는 페타바이트 단위의 동영상 데이터를 생성합니다. 모든 프레임에 레이블을 지정하는 것은 불가능합니다. 능동 학습은 엔지니어가 의상을 입은 보행자나 폭설 속 주행과 같은 엣지 케이스를 식별하도록 지원하며, 이러한 사례는 표준 객체 감지 모델이 놓칠 수 있습니다. 이러한 희귀한 상황의 우선순위를 지정하면 기업은 반복적인 고속도로 영상에 리소스를 낭비하지 않고도 안전성을 향상할 수 있습니다.
Python 예제: 불확실한 예측 필터링#
다음 예제에서는 Ultralytics YOLO26을 사용한 간단한 "불확실성 샘플링" 로직을 보여줍니다. 모델을 로드하고 이미지에 대해 추론을 실행한 다음, 신뢰도 점수가 특정 임계값보다 낮은 이미지를 수동 검토 대상으로 표시합니다.
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.")관련 개념 구분하기#
능동 학습과 유사한 학습 패러다임을 구분하는 것이 중요합니다.
- 반지도 학습: 두 방법 모두 레이블이 지정되지 않은 데이터를 활용하지만, 반지도 학습은 모델의 높은 신뢰도 예측을 기반으로 데이터에 의사 레이블을 자동으로 할당합니다. 반면 능동 학습은 신뢰도가 낮은 예측에 대해 사람의 입력을 명시적으로 요청합니다.
- 전이 학습: 이는 사전 학습된 모델(예: ImageNet으로 학습된 모델)을 가져와 새로운 작업에 맞게 조정하는 방식입니다. 능동 학습은 어떤 데이터에 레이블을 지정할지에 초점을 맞추는 반면, 전이 학습은 학습된 특징을 재사용하는 것에 초점을 맞춥니다.
- 강화 학습: 여기서는 에이전트가 환경과 상호작용하고 보상을 받으면서 학습합니다. 능동 학습은 보상을 위해 일련의 행동을 최적화하는 대신 오라클로부터 정적인 실측값 레이블을 얻으려 한다는 점에서 다릅니다.
MLOps와의 통합#
능동 학습을 효과적으로 구현하려면 강력한 머신 러닝 운영 (MLOps) 파이프라인이 필요합니다. 데이터 버전 관리, 재학습 작업 트리거, 사람에게 어노테이션 인터페이스 제공을 관리할 수 있는 인프라가 필요합니다. Ultralytics 생태계와 통합되는 도구를 사용하면 추론, 데이터 큐레이션, 학습 간을 원활하게 오갈 수 있습니다. 예를 들어 사용자 지정 학습 스크립트를 사용하면 개발자가 새로운 능동 학습 데이터 배치를 YOLO 모델에 신속하게 반영할 수 있습니다.
샘플링 전략에 대해 더 알아보기 위해 연구자들은 종종 능동 학습 문헌의 종합적인 설문 연구를 참고합니다. 또한 모델 평가 지표를 이해하는 것은 능동 학습 루프가 실제로 성능을 향상하고 있는지 검증하는 데 매우 중요합니다.









