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

등각 예측

컨포멀 예측이 AI에 분포에 의존하지 않는 불확실성을 어떻게 제공하는지 알아보세요. Ultralytics 사용하여 예측 세트를 구현하고, 신뢰할 수 있는 모델 결과를 확보하세요.

등각 예측(Conformal prediction)은 기계 학습(ML) 분야의 통계적 프레임워크로, 모델 예측에 대해 분포에 의존하지 않는 불확실성 측정치를제공합니다. 등각 예측기는 특정 클래스 레이블과 같은 단일 점 예측을 출력하는 대신, 사용자가 지정한 확률(예: 90% 또는 95%)로 참값을 포함하는 예측 집합이나 구간을 출력합니다. 이 프레임워크는 어떤 인공지능(AI) 모델에도 적용되어 모델 아키텍처를 변경할 필요 없이 공식적인 통계적 보증을 제공합니다. 최신 도구 및 연구에 대한 포괄적인 목록을 확인하려면 Awesome Conformal Prediction 저장소를 살펴보시기 바랍니다.

등각 예측의 작동 원리

이 기본 메커니즘은 비일치 점수를 활용하여 새로운 예측이 과거 사례들과 비교해 얼마나 이례적인지 평가하는 데 기반을 두고 있습니다.

  • 모델 훈련: 먼저, 표준 훈련 데이터셋을 사용하여 기본 모델을 훈련합니다.
  • 보정 단계: 훈련된 모델에 별도로 분리해 둔 교정 데이터셋을 입력합니다. 각 예측에 대해 부적합 점수를 계산합니다. 예를 들어, 이미지 분류의 경우 역확률과 같은 값을 계산합니다.
  • 분위수 계산: 목표 신뢰 수준(예: 95%)을 결정하고, 이에 해당하는 보정 점수의 사분위를 구하여 예측 집합을 구성합니다.
  • 추론 적용: 실시간 추론 중에 새로운 입력값을 평가하고, 점수가 보정 사분위수 미만에 해당하는 모든 가능한 레이블을 포함합니다.

이 접근 방식에 대한 수학적 증명은 『등각 예측 입문(A Gentle Introduction to Conformal Prediction )』 튜토리얼에서 살펴보거나, 시간적 불확실성을 처리하기 위한 시계열 예측 기법에대해 알아볼 수 있습니다.

‘등각 예측’과 관련 용어의 구분

이 프레임워크를 모델 테스트 시 사용되는 표준 지표들과 명확히 구분하는 것이 중요합니다:

  • 등각 예측 대 신뢰도 점수: 표준 신뢰도 점수는 모델의 내부적 확신을 반영하지만, 종종 보정이 제대로 이루어지지 않았거나 수학적 보증이 부족합니다. 등각 예측은 이러한 원시 점수를 보증된 집합으로 변환합니다. 기존의 조정 방법에 대해서는 scikit-learn의 확률 보정 기능을 참조하십시오.
  • 적합성 예측 대 정확도: 정확도는 전체 데이터셋에 걸쳐 모델이 정답을 맞히는 빈도를 나타내는 전역적 역사적 지표인 반면, 적합성 추론 은 새로운 예측이 나올 때마다 해당 사례에 특화된 국소적 신뢰 구간을 제공합니다.

실제 애플리케이션

모델의 사각지대를 파악하는 것이 중요한 고위험 분야에서는 컨포멀 예측이 필수적입니다.

  • 의료 진단: 의료 분야에서 AI를 활용해 영상 자료를 분석할 때, 모델은 단일하고 잠재적으로 부정확할 수 있는 진단 결과 대신 여러 가지 타당한 진단 결과를 제시할 수 있습니다. 이를 통해 임상의가 모든 가능한 경우를 검토할 수 있게 되어, 신뢰할 수 있는 유전체 의학 및 영상 진단에 관한 최근 연구 결과를 뒷받침합니다.
  • 자율 주행: 자동차 시스템의 AI에서 예측 구간을 물체 감지에 적용하면 보행자 주변에 공간적 신뢰 영역이 생성되어, 차량의 제동 시스템이 최악의 경우를 안전하게 고려할 수 있게 됩니다.

예측 집합 구현

MAPIE(Model Agnostic Prediction Interval Estimator) 와 같은 라이브러리는 Python 내장 도구를 제공하며, 회귀 작업에서는 종종 등각 분位수 회귀를 활용합니다. 또한 Ultralytics 같은 고급 모델의 확률을 사용하여 기본적인 컨포멀 예측 로직을 구현할 수도 있습니다. 다음 예제는 YOLO26 분류 확률을 사용하여 예측 세트를 구축하며, 누적 임계값에 도달할 때까지 상위 클래스를 포함하는 로직을 모방합니다.

from ultralytics import YOLO

# Load an Ultralytics YOLO26 classification model
model = YOLO("yolo26n-cls.pt")

# Perform inference on an image
results = model("https://ultralytics.com/images/bus.jpg")

# Simple conformal-style prediction set logic based on cumulative probability
target_coverage = 0.95
prediction_set = []
cumulative_prob = 0.0

# Sort probabilities in descending order using the results object
probs = results[0].probs
sorted_indices = probs.top5

for idx in sorted_indices:
    class_name = results[0].names[idx]
    class_prob = probs.data[idx].item()

    prediction_set.append((class_name, round(class_prob, 3)))
    cumulative_prob += class_prob

    # Stop adding to the set once we reach the 95% coverage threshold
    if cumulative_prob >= target_coverage:
        break

print(f"95% Prediction Set: {prediction_set}")

신뢰할 수 있는 시스템을 개발하려면 데이터 드리프트로 인해 보정이 훼손되는 것을 방지하기 위한 견고한 데이터 관행이 필요합니다. Ultralytics 같은 도구를 사용하면 최신 분류 데이터셋을 수집하고, 모델을 재훈련하며, 모델 배포를 안전하게 관리하는 과정을 간소화할 수 있습니다. 균형 잡힌 데이터 큐레이션에 대한 자세한 내용은 데이터셋 편향 이해를 위한 가이드에서 확인하거나, 연례 COPA 컨퍼런스에서 발표된 최신 track 보시기 바랍니다.

함께 AI의 미래를 만들어 갑시다!

미래의 머신러닝 여정을 시작하세요