컨포멀 예측(Conformal Prediction)이란? AI에서 정답을 포함할 예측 구간과 집합을 만드는 방법
TL;DR
컨포멀 예측(Conformal Prediction)은 모델의 예측에 정답을 포함할 구간이나 후보 집합을 덧붙이는 불확실성 추정 방법입니다. 학습에 쓰지 않은 보정 데이터에서 오차 점수를 구하고, 그 순위로 새 예측에 허용할 범위를 정합니다. 기본 보장은 데이터의 교환가능성을 전제로 하는 주변적 포함률이며, 모든 개인이나 집단에서 같은 포함률을 보장한다는 뜻은 아닙니다.
핵심 3줄 요약
- 핵심 1
점 하나 대신 범위나 후보 집합을 만듭니다. 회귀에서는 예측 구간, 분류에서는 가능한 클래스의 집합을 반환합니다. - 핵심 2
보정 데이터의 오차 순위를 사용합니다. 기본 분할 방식은 모델 학습과 보정을 분리해 새 데이터의 정답을 포함할 기준을 정합니다. - 핵심 3
포함률과 결과의 크기를 함께 봅니다. 범위가 너무 넓으면 쓸모가 줄고, 데이터 분포가 바뀌면 기존 보장도 그대로 적용하기 어렵습니다.
이 글에서 다룰 내용
- 컨포멀 예측의 한 문장 정의
- 배송 시간 예측으로 이해하는 구간 예시
- AI 예측에 불확실성을 덧붙이는 이유
- 보정 데이터·비적합도·분위수의 작동 흐름
- 포함률과 교환가능성의 정확한 뜻
- 확률 캘리브레이션·신뢰구간·분류 임계값과의 차이
- 실전 사용처와 데이터 분리 체크리스트
- AI 초보자가 자주 묻는 질문
컨포멀 예측을 한 문장으로 정의하면 무엇인가요?
컨포멀 예측은 관측된 정답과 모델 출력의 어긋남을 점수로 계산하고, 그 점수의 순위를 이용해 새 관측값의 정답을 포함할 예측 집합을 만드는 통계적 방법입니다.
영문 약어로 CP를 쓰기도 합니다. 회귀처럼 정답이 숫자이면 구간으로, 분류처럼 정답이 범주이면 여러 클래스의 집합으로 표현할 수 있습니다. 특정 신경망 구조의 이름이 아니라 기존 예측 모델에 적용하는 방법의 범주입니다.
여기서는 가장 기본적인 분할 컨포멀 예측을 중심으로 설명합니다. 모델을 학습할 데이터와 범위를 보정할 데이터를 나누는 방식입니다. 전체 컨포멀, 교차 검증 기반 방식처럼 데이터를 활용하는 다른 절차도 있지만 계산량과 보장 조건이 같지는 않습니다.
한 줄 정리: 모델이 낸 답 주변에 임의의 여유를 붙이는 대신, 따로 남긴 데이터의 오차로 예측 범위를 정합니다.
쉬운 예시로 이해해 볼까요?
감자나라ai님이 배송 시간을 예측하는 회귀 모델을 운영한다고 가정해 보겠습니다. 모델은 새 주문의 도착 시간을 30분으로 예측합니다. 이 숫자만으로는 31분에 도착할지, 훨씬 늦어질지 판단하기 어렵습니다.
설명을 위해 별도로 남긴 보정 주문 99건과 목표 포함률 90%를 가정하겠습니다. 각 주문의 실제 시간과 모델 예측 시간의 차이를 절댓값으로 계산합니다. 작은 오차부터 정렬한 뒤 유한한 표본 수를 반영한 기준에 따라 90번째 값을 고릅니다.
그 값이 8분이었다면 새 주문에는 30분에서 8분을 빼고 더한 22~38분 구간을 붙입니다. 여기의 주문 수와 시간은 원리를 설명하기 위한 가정이며 실제 서비스에서 측정한 결과가 아닙니다.
같은 절대 오차 기준을 쓰면 이 보정에서 얻은 구간의 폭은 입력마다 같습니다. 어려운 주문에 더 넓은 구간을 주려면 입력별 오차 크기를 반영하는 점수나 분위수 회귀를 이용하는 확장 방식을 검토할 수 있습니다.
쉬운 예시: 예측값은 도착 예정 시간이고, 컨포멀 구간은 과거의 별도 주문에서 확인한 오차를 반영한 시간 범위입니다. 특정 주문이 반드시 그 안에 도착한다는 약속은 아닙니다.
왜 AI에서 컨포멀 예측이 중요한가요?
예측값 하나로 드러나지 않는 위험을 표시합니다
같은 30분 예측이라도 오차가 작은 모델과 큰 모델은 운영상 의미가 다릅니다. 구간을 함께 표시하면 일정·재고·검토 업무에서 얼마나 넓은 가능성을 고려해야 하는지 판단할 자료가 생깁니다. 점 예측의 오차와 구간의 품질은 별도로 평가합니다.
기존 모델을 바꾸지 않고 적용할 수 있습니다
MAPIE 공식 문서는 scikit-learn 호환 추정기에 컨포멀 예측을 적용해 회귀 구간과 분류 집합을 만드는 흐름을 안내합니다. 원래 모델을 새 알고리즘으로 교체하는 것이 필수는 아닙니다. 다만 보정에 쓸 정답 데이터와 적절한 점수 정의가 필요합니다.
사람이 검토할 사례를 찾는 데 참고합니다
분류 결과가 한 클래스 대신 여러 후보로 나오면 모호한 사례를 검토 대상으로 삼을 수 있습니다. 후보가 하나인 경우만 자동 처리하는 운영 규칙도 생각할 수 있지만, 그 선택된 사례들의 오류율은 전체 포함률 보장과 별개입니다. 자동 처리 대상의 실제 성능을 따로 확인합니다.
핵심 인사이트: 컨포멀 예측은 틀리는 모델을 자동으로 정확하게 만들지 않습니다. 어떤 범위의 답을 함께 고려할지 정하는 방법입니다.
컨포멀 예측은 어떤 순서로 작동하나요?
1. 모델 학습과 보정 데이터를 분리합니다
학습 데이터로 모델과 전처리를 맞춘 뒤 그 결과를 고정합니다. 보정 데이터에는 모델이 학습하지 않은 입력과 정답을 둡니다. 최종 품질을 측정할 테스트 데이터도 따로 남기면 보정 과정과 성능 평가가 뒤섞이지 않습니다.
2. 정답과 예측의 어긋남을 점수로 계산합니다
회귀의 간단한 비적합도 점수는 실제값과 예측값의 절대 차이입니다. 값이 클수록 모델 예측과 정답이 많이 어긋났다는 뜻입니다. 분류에서는 정답 클래스에 준 확률이나 누적 확률을 이용하는 점수를 만들 수 있으며, 선택한 점수의 방향을 먼저 확인합니다.
3. 목표 포함률에 맞는 순위 기준을 정합니다
보정 표본 수를 n, 허용할 미포함 수준을 alpha라고 하면 기본 분할 방식의 순위는
ceil((n + 1) * (1 - alpha))
입니다. ceil은 올림을 뜻합니다. 오름차순 점수에서 그 순위의 값을 경계로 삼으며 단순히 보정 오차의 평균을 쓰지 않습니다.
이 순위가 보정 표본 수를 넘으면 유한한 경계를 고를 수 없습니다. 이론적으로는 무한대 경계를 두는 경우가 생기고, 구현에 따라 해당 설정을 제한하기도 합니다. 적은 보정 데이터로 지나치게 높은 포함률을 요구할 때 확인할 조건입니다.
4. 새 입력의 예측 집합을 만듭니다
새 입력에서 가능한 정답 후보의 점수를 계산해 경계 이내인 후보를 남깁니다. 절대 오차를 쓴 회귀에서는 예측값을 중심으로 경계를 빼고 더한 구간이 됩니다. 분류에서는 정해진 점수 기준을 통과한 클래스들이 집합에 들어갑니다.
실전 팁: 분할 방법, 점수 정의, 보정 데이터 수, 목표 포함률, 사용한 분위수 규칙을 함께 저장하세요. 숫자 하나만 남기면 같은 결과를 재현하기 어렵습니다.
포함률과 교환가능성은 어떻게 읽나요?
포함률은 정답이 결과 안에 들어간 비율입니다
회귀에서는 실제값이 하한과 상한 사이에 있는지, 분류에서는 정답 클래스가 후보 집합에 있는지 셉니다. 목표 포함률은 사용자가 정한 기준이고, 경험적 포함률은 따로 평가한 데이터에서 측정한 비율입니다. 유한한 테스트 표본의 측정값이 목표와 항상 정확히 같지는 않습니다.
교환가능성은 순서를 바꿔도 결합분포가 같은 성질입니다
기본 보장은 보정 관측과 새 관측을 통계적으로 대칭적으로 다룰 수 있어야 성립합니다. 독립이고 같은 분포에서 나온 표본은 대표적인 경우입니다. 시간 추세가 강하거나 고객군이 달라진 데이터는 이 전제를 다시 검토해야 합니다. 행 순서만 섞는다고 성립하는 성질은 아닙니다.
주변적 보장은 모든 개인의 보장이 아닙니다
90% 목표는 보정 표본과 새 관측의 무작위성을 함께 고려한 포함 확률에 관한 것입니다. 모든 입력값, 지역, 고객 집단에서 각각 90%를 보장하지는 않습니다. 보정 데이터를 한 번 고정해 배포한 모델에서도 실제 운영 포함률이 목표에서 벗어날 수 있어 모니터링이 필요합니다.
전체 평균만 보지 말고 중요한 집단별 포함률과 표본 수도 기록합니다. 소수 집단의 결과를 비교할 때는 측정 변동성을 함께 봐야 합니다. 집단별 진단을 수행했다는 사실과 집단별 보장을 수학적으로 확보했다는 주장은 구분합니다.
컨포멀 예측과 헷갈리는 용어는 무엇이 다른가요?
확률 캘리브레이션과의 차이
모델 캘리브레이션은 예측 확률과 실제 발생 빈도의 일치를 다룹니다. 컨포멀 예측은 정답을 담을 구간이나 집합을 만듭니다. 보정 데이터라는 표현을 함께 쓰더라도 출력과 목표가 다릅니다. 기본 포함률 보장에 잘 보정된 확률이 반드시 필요한 것은 아닙니다.
신뢰구간과 예측 구간의 차이
신뢰구간은 평균이나 회귀계수 같은 모집단 특성을 추정하는 절차의 불확실성을 다룹니다. 이 글의 예측 구간은 새 관측값의 정답을 포함하려는 범위입니다. 평균 배송 시간의 추정 구간과 다음 주문 한 건의 배송 시간 구간을 같은 것으로 읽지 않습니다.
분류 임계값과의 차이
일반적인 분류 임계값은 점수를 기준으로 한 판정을 내리는 선입니다. 컨포멀 분류도 점수 경계를 쓰지만, 그 경계를 보정 표본의 순위와 목표 포함률에 맞춰 정하고 여러 후보를 허용합니다. 원하는 확률 값을 임의로 정했다고 컨포멀 보장이 생기지는 않습니다.
분위수 회귀와의 차이
분위수 회귀는 입력에 따른 정답 분포의 특정 분위수를 학습합니다. 추정된 하한·상한을 컨포멀 점수로 다시 보정하는 방법도 있습니다. 분위수 회귀를 학습한 것만으로 컨포멀 보정까지 끝난 것은 아니며, 두 단계의 데이터 사용과 보장 조건을 각각 확인합니다.
비교 정리: 확률 캘리브레이션은 확률과 빈도, 신뢰구간은 추정 대상, 분류 임계값은 판정 규칙, 컨포멀 예측은 정답을 포함할 집합을 다룹니다.
실전에서는 어디에 쓰이나요?
숫자 예측의 허용 범위를 표시합니다
배송 시간, 수요, 가격처럼 숫자를 예측하는 업무에서 점 예측과 범위를 함께 제시하는 데 활용할 수 있습니다. 다만 순서 의존성이 있는 시계열에 기본 분할 방식을 그대로 쓰면 안 됩니다. 일반 회귀 예시와 실제 시간 예측의 가정이 같은지부터 확인합니다.
이미지·문서 분류의 후보를 남깁니다
이미지의 사물 종류나 문의 문서의 주제를 하나로 확정하기 어려울 때 후보 클래스 집합을 반환할 수 있습니다. 집합 크기, 정답 포함 여부, 사람이 후보를 확인하는 시간을 함께 평가합니다. 많은 후보를 남겨 포함률만 올리면 실무에서 고르는 부담이 커집니다.
불확실성 추정 방법을 비교합니다
MAPIE 논문은 여러 작업과 점수 정의를 공통 흐름으로 다루고, 점수 선택에 따른 국소 포함률을 살핍니다. 실험에서는 같은 테스트 데이터와 목표 수준 아래에서 포함률, 구간 폭, 후보 수를 비교합니다. 넓은 구간 하나만으로 좋은 방법이라고 판단하지 않습니다.
컨포멀 예측을 적용할 때 어떤 순서로 확인하나요?
1. 정답과 오류 비용을 먼저 정합니다
무엇을 정답으로 볼지, 구간 밖으로 벗어나면 어떤 문제가 생기는지 기록합니다. 목표 포함률은 높을수록 무조건 좋은 설정이 아닙니다. 더 넓은 범위와 늘어나는 검토 비용을 감당할 수 있는지 함께 판단합니다.
2. 분리와 누수를 검사합니다
같은 사람이나 같은 주문의 복제본이 학습·보정·테스트에 나뉘어 들어가지 않았는지 봅니다. 보정 데이터를 보고 모델이나 점수를 반복해서 고르면 기본 독립 보정 논리를 훼손할 수 있습니다. 설정을 선택할 데이터와 최종 보정 데이터를 분리하는 설계를 검토합니다.
3. 포함률과 크기를 함께 측정합니다
MAPIE 지표 문서는 회귀의 포함률과 평균 구간 폭, 분류의 포함률과 평균 집합 크기를 구분합니다. 빈 집합이나 지나치게 큰 집합의 빈도도 확인합니다. 전체 지표와 중요한 집단별 지표를 같이 남기고 표본이 적을 때는 결과를 확정적으로 해석하지 않습니다.
4. 변경 뒤 재보정과 운영 점검을 합니다
모델, 전처리, 점수 정의가 바뀌면 예전 오차 경계를 그대로 재사용하지 않습니다. 새 설정에 맞는 보정 절차를 거치고 독립된 테스트에서 확인합니다. 운영 입력의 변화, 최근 정답 포함률, 구간 폭이 커지는 현상을 함께 살핍니다.
한 줄 정리: 데이터 분리, 점수 정의, 목표 수준, 포함률, 구간·집합 크기, 운영 변화까지 묶어서 확인합니다.
사용할 때 무엇을 주의해야 하나요?
첫째, 분포에 관한 특정 모양을 가정하지 않는다는 말을 아무 가정도 없다는 뜻으로 읽지 않습니다. 정규분포를 요구하지 않더라도 기본 방법은 교환가능성 같은 조건을 전제로 합니다. 새로운 지역이나 시기에 적용한다면 이 조건부터 다시 살펴야 합니다.
둘째, 예측 집합에 정답이 들어간다는 것과 선택한 답이 맞는다는 것을 구분합니다. 배송·환불·결제 세 후보 중 정답이 하나 들어 있어도, 시스템이 최종으로 고른 하나가 맞는지는 별도 문제입니다. 집합 포함률을 단일 답 정확도로 보고하지 않습니다.
셋째, 전체 포함률을 공정성이나 안전성 보장으로 확대하지 않습니다. 드문 집단에서 정답을 놓치는 일이 몰릴 수 있습니다. 의료·금융 등 중요한 판단에서는 전문가 검토와 업무별 안전 기준을 따로 유지합니다.
넷째, 구간을 보기 좋게 임의로 줄이지 않습니다. 넓다는 이유로 상·하한을 자르거나 후보를 일부 삭제하면 정답이 빠져 기존 보장이 달라질 수 있습니다. 출력 후처리를 적용했다면 그 절차를 포함해 다시 검증합니다.
다섯째, 정답 라벨의 품질을 확인합니다. 잘못 기록된 라벨이나 지연된 결과로 보정하면 실제 업무에서 필요한 정답과 다른 대상을 다루게 됩니다. 데이터 수집 기준, 누락된 사례, 평가에서 제외한 이유를 함께 남깁니다.
주의: 컨포멀 예측의 보장은 정해진 데이터 조건과 절차에 관한 통계적 보장입니다. 개별 결과의 무오류, 운영 안전, 모든 집단의 동일 성능을 보증하지 않습니다.
자주 묻는 질문
Q1. 컨포멀 예측은 새 AI 모델인가요?
아닙니다. 기존 모델의 출력과 정답 데이터를 이용해 예측 구간이나 집합을 만드는 방법입니다. 모델 자체를 다시 설계할 필요는 없지만, 사용할 점수와 보정 데이터는 준비해야 합니다.
Q2. 목표를 90%로 두면 테스트 100건 중 꼭 90건이 들어가나요?
그렇지 않습니다. 이론의 포함 확률과 유한한 테스트에서 측정한 포함 비율은 다릅니다. 데이터 분할과 표본 변동 때문에 측정값은 달라질 수 있으며, 기본 보장이 모든 집단에 그대로 적용되는 것도 아닙니다.
Q3. 보정 데이터를 학습에 다시 넣어도 되나요?
기본 분할 방식에서 보정 뒤 모델을 다시 학습하면 이전 오차 점수와 새 모델이 맞지 않을 수 있습니다. 새 모델에 맞는 별도 보정이 필요합니다. 데이터를 더 활용하려면 검증된 교차 검증 기반 방법 등 다른 절차의 조건을 확인합니다.
Q4. 예측 구간이 넓으면 실패인가요?
반드시 그렇지는 않습니다. 원래 예측이 어렵거나 모델 오차가 크거나 목표 포함률이 높을 수 있습니다. 구간을 임의로 줄이지 말고 데이터·모델·점수를 점검합니다. 포함률을 유지하면서 실용적인 폭을 얻는지가 평가 기준입니다.
Q5. 시계열에도 같은 보장이 있나요?
기본 교환가능성 보장을 그대로 옮기면 안 됩니다. 시간 의존성이나 분포 변화가 있으면 시계열·온라인 상황을 다루는 별도 방법과 그 가정을 확인해야 합니다. 시간 순서를 무작위로 섞는 것만으로 문제가 해결되지는 않습니다.
Q6. 챗GPT에게 확신도를 물으면 컨포멀 예측인가요?
아닙니다. 말로 답한 확신도에는 보정 표본의 점수 순위와 집합 구성 절차가 없습니다. 생성형 AI에 적용하려면 무엇을 정답과 후보로 정의할지, 어떤 점수를 보정할지, 실제 평가 조건이 맞는지부터 설계해야 합니다.
출처
- MAPIE 공식 문서, Conformal Prediction — Theory
- MAPIE 공식 문서, Metrics for Conformal Prediction
- Ryan Tibshirani, Conformal Prediction 강의 자료
- Cordier 외, Flexible and Systematic Uncertainty Estimation with Conformal Prediction via the MAPIE library
- Angelopoulos·Bates, A Gentle Introduction to Conformal Prediction and Distribution-Free Uncertainty Quantification
마무리
컨포멀 예측은 기존 모델에 예측 구간이나 후보 집합을 덧붙이는 불확실성 추정 방법입니다. 기본 분할 방식은 학습과 보정을 분리하고, 보정 오차의 순위로 정답을 포함할 범위를 정합니다. 데이터의 교환가능성이 이 보장의 중요한 전제입니다.
처음 접한다면 점 예측과 예측 집합, 목표 포함률과 측정 포함률, 전체 보장과 집단별 성능을 구분하세요. 데이터 분리와 점수 규칙을 기록하고 포함률과 결과 크기를 함께 평가하면, AI가 내놓은 숫자 하나를 과신하지 않고 활용 범위를 판단하는 데 도움이 됩니다.
