확률 0.8인 경보들이 실제로 80% 위험인지 묻는다
분류기가 각 LLM 출력에 위험 확률을 붙인다고 하자. 0.8이라고 예측한 사례가 충분히 많을 때 그 가운데 실제 위험이 약 80%라면 그 구간은 잘 보정되었다고 말한다. 확률 한 건이 80%만큼 맞았다는 뜻은 아니다. 비슷한 예측 확률을 가진 반복 사례의 장기 빈도와 비교하는 진술이다.
scikit-learn 공식 안내서는 잘 보정된 이진 분류기에서 예측 확률 0.8 부근의 표본 가운데 실제 양성 비율이 약 0.8이어야 한다고 설명한다. 신뢰도 도표는 x축에 구간의 평균 예측 확률, y축에 그 구간의 실제 양성 비율을 둔다. y=x 대각선과 가까우면 그 구간의 보정이 좋다.
확률 구간을 만들고 두 평균과 표본 수를 기록한다
정확히 같은 확률이 반복되지 않으므로 0–0.2, 0.2–0.4처럼 구간을 나눈다. 각 구간에서 x는 예측 확률의 실제 평균, y는 양성 레이블의 평균이다. 구간 중심 0.3을 x로 대신 쓰면 실제 평균 0.24와 달라질 수 있다. 점 위에 n을 표시하고 아래 표본 수 히스토그램으로 자료가 어디에 몰렸는지 보여 준다.
등간격 구간은 x축 폭이 같고, 동일 개수 구간은 각 구간 표본 수가 비슷하다. 둘은 희소한 꼬리를 다르게 보여 준다. 구간 수가 너무 많으면 점이 요동하고 너무 적으면 국소 오차를 숨긴다. 구간 경계와 포함 규칙, 빈 구간 처리, 표본 수를 남기고 두 설정에서 결론이 유지되는지 확인한다.
| 구간 | 평균 예측 | 실제 양성 | n | 차이 |
|---|---|---|---|---|
| 0–0.2 | 0.10 | 0.04 | 80 | 0.06 |
| 0.2–0.4 | 0.30 | 0.17 | 110 | 0.13 |
| 0.4–0.6 | 0.50 | 0.38 | 130 | 0.12 |
| 0.6–0.8 | 0.70 | 0.58 | 100 | 0.12 |
| 0.8–1.0 | 0.90 | 0.72 | 80 | 0.18 |
대각선 아래는 과신, 위는 과소신을 뜻한다
점이 대각선 아래라면 예측 확률이 실제 빈도보다 높아 과신이다. 0.9 부근 경보의 실제 위험이 0.72라면 “90% 위험”이라는 표현이 지나치게 강하다. 점이 대각선 위라면 실제 빈도가 예측보다 높아 과소신이다. 어느 방향이 더 위험한지는 알림·자동차단·사람 검토 같은 후속 행동에 달렸다.
모든 점이 대각선에 가깝더라도 예측이 대부분 0.5에 몰리면 구분 능력은 낮을 수 있다. 반대로 순위를 잘 매기는 모델도 0.9를 0.7로 내놓아 보정은 나쁠 수 있다. 보정은 확률의 의미, discrimination은 양성과 음성의 순위 분리, sharpness는 예측이 기저율에서 얼마나 벗어나는지를 묻는다.
| 성질 | 질문 | 대표 확인 |
|---|---|---|
| 보정 | 0.8 예측 중 약 80%가 양성인가? | 신뢰도 도표·Brier/log loss |
| 구분 | 양성을 음성보다 높게 매기나? | ROC·PR |
| 날카로움 | 확률이 기저율에서 충분히 갈리나? | 예측 분포 |
| 정확도 | 고정 임계값에서 맞혔나? | 혼동행렬 |
ECE 한 숫자는 구간 선택과 가중 방식에 의존한다
예상 보정 오차 ECE는 흔히 구간별 |평균 예측−실제 비율|을 표본 수로 가중해 더한다. 준비된 500개 예시의 보정 전 ECE는 (80×0.06+110×0.13+130×0.12+100×0.12+80×0.18)/500=0.1222다. 평균 12.22%포인트의 구간 격차라는 요약이지만 최악 구간과 방향을 숨긴다.
구간 수·경계가 달라지면 ECE도 달라지고 작은 집단의 큰 오차가 전체 가중 평균에 묻힐 수 있다. ECE만 순위표에 쓰지 말고 신뢰도 곡선, 표본 수, 최대 격차, Brier score나 log loss, 하위집단 결과를 함께 본다. 여러 클래스에서는 클래스별, top-label, 전체 확률 벡터 보정의 정의가 다르므로 계산 방식을 명시한다.
| 구간 | n | |예측−실제| | 가중 기여 |
|---|---|---|---|
| 1 | 80 | 0.06 | 4.8 |
| 2 | 110 | 0.13 | 14.3 |
| 3 | 130 | 0.12 | 15.6 |
| 4 | 100 | 0.12 | 12.0 |
| 5 | 80 | 0.18 | 14.4 |
| 합계 | 500 | — | 61.1/500=0.1222 |
보정은 학습·선택·시험과 독립된 자료에서 맞춘다
같은 자료로 모델을 학습하고 보정 변환을 맞추고 성능을 보고하면 과적합된 확률을 얻게 된다. 학습 세트는 모형 매개변수, 보정 세트는 확률 변환, 시험 세트는 마지막 평가에 사용한다. 교차검증 기반 보정도 각 예측이 그 표본을 학습하지 않은 모형에서 나오도록 구성한다. 시간에 따라 분포가 바뀌면 최근 독립 자료에서 다시 확인한다.
scikit-learn 안내서는 보정기가 분류기 학습과 독립된 자료에 맞춰져야 한다고 설명한다. 작은 자료를 셋으로 나누면 분산이 커지므로 교차검증과 불확실성 구간을 고려한다. 보정 세트에서 임계값까지 반복 조정한 뒤 같은 세트를 최종 시험처럼 쓰지 않는다. 자료 역할과 날짜를 기록해 누수를 막는다.
온도 조정은 순서를 유지하며 확률의 세기를 바꾼다
Guo 등은 2017년 현대 신경망이 정확도는 높아져도 잘못 보정될 수 있음을 보이고, 단일 양의 온도 T로 로짓을 나누는 temperature scaling을 효과적인 방법으로 보고했다. T는 보정 자료의 음의 로그우도를 줄이도록 맞춘다. T가 1보다 크면 지나치게 뾰족한 확률을 완만하게 만드는 경우가 많다.
같은 양의 T를 모든 클래스 로짓에 적용하면 클래스 순서와 argmax는 보통 유지되어 top-1 정확도는 바뀌지 않지만 확률값은 달라진다. 이것이 모든 집단과 분포 변화에서 자동으로 보정을 보장하지는 않는다. isotonic regression, sigmoid 등 다른 방법도 자료량과 가정이 다르며 독립 평가가 필요하다.
| 상태 | 예측 구간 | 실제 비율 | ECE | 정확도 |
|---|---|---|---|---|
| 보정 전 | 0.10, .30, .50, .70, .90 | .04, .17, .38, .58, .72 | 0.1222 | 동일 |
| 보정 후 | .10, .30, .50, .70, .90 | .08, .28, .52, .68, .87 | 0.0216 | 동일 예시 |
LLM에는 확률·레이블·분할 역할을 함께 준다
관측ID, 예측 확률, 실제 이진 레이블, 데이터 분할, 시간, 하위집단을 제공한다. 구간 규칙을 먼저 고정하고 구간별 n·평균 확률·양성 수·양성 비율을 계산하게 한다. ECE는 각 항을 표로 보여 주고 합을 다시 계산한다. 보정 전후를 비교할 때 같은 독립 시험 표본과 같은 구간 규칙을 사용한다.
“신뢰도가 높은가?”라는 요청만 주지 말고 확률의 의미와 의사결정을 설명한다. LLM에게 곡선 해석, 희소 구간, 분포 이동, 하위집단 차이와 추가 자료 요구를 구분해 쓰게 한다. 실제 확률이나 레이블이 없으면 그럴듯한 곡선과 ECE를 만들지 말고 빈 계산표와 코드만 반환하게 한다.
잘못된 도표는 정확도와 보정을 같은 말로 쓴다
수정 전 보고서는 정확도 90%를 “90% 신뢰할 수 있다”로 번역하고 예측 확률 분포나 실제 빈도를 보여 주지 않았다. 신뢰도 곡선에는 표본 수가 없고 20개 구간을 써 희소 꼬리가 심하게 흔들렸다. 학습 자료로 온도를 맞춘 뒤 같은 자료의 ECE 감소만 제시했다.
수정 후 정확도·구분·보정을 별도 표로 나누고 독립 시험 자료의 신뢰도 도표를 그렸다. 각 점에 n과 불확실성 구간을 붙이고 5개와 10개 구간 민감도를 비교했다. 보정 전후의 Brier·log loss·ECE와 정확도를 함께 쓰고 하위집단에서 개선이 유지되는지 확인했다.
실습은 보정 전후 ECE와 최악 구간을 계산한다
아래 실습은 동일한 500개 교육용 표본을 보정 전후 다섯 구간으로 집계한 준비된 결과다. 전을 선택하면 ECE 12.22%포인트, 후를 선택하면 2.16%포인트가 나온다. 가장 큰 구간 차이도 함께 확인한다. 이 수치는 실제 모델 실행이나 LTCT 서비스 측정이 아니다.
실제 검수에서는 확률 범위가 0–1인지, 각 구간 n 합이 전체 표본 수와 같은지, 양성 수가 n을 넘지 않는지 검사한다. 모바일 화면에서는 대각선, 점, 표본 수와 축 라벨이 겹치지 않게 하고 상세 SVG를 키보드로 가로 이동할 수 있게 한다. 표 형태 대체 자료도 제공한다.
복사해서 쓸 수 있는 LLM 요청문
아래 요청문은 교육용 예시다. 원문을 함께 제공하고, 모델이 빈칸을 추측하지 않도록 금지 조건을 넣었다. 결과를 받으면 원문 문장과 노드·선의 대응을 사람이 다시 확인한다.
다음 확률 예측의 보정을 검산해 줘. 1. 관측ID별 예측 확률, 실제 0/1 레이블, 자료 분할과 시간을 확인한다. 2. 보정 구간 경계와 포함 규칙을 먼저 고정한다. 3. 구간별 n, 평균 예측 확률, 양성 수와 실제 비율을 계산한다. 4. 대각선 대비 과신·과소신 방향과 희소 구간을 적는다. 5. ECE의 각 가중 항을 표로 보이고 Brier·log loss도 함께 검토한다. 6. 보정기는 학습과 시험에서 독립된 자료에 맞춘다. 7. 보정 전후를 같은 독립 시험 표본으로 비교한다. 8. 실제 확률과 레이블이 없으면 수치나 곡선을 만들지 않는다. [확률·레이블 표] …
직접 실습하고 결과를 읽기
이 실습은 브라우저 안에 준비한 교육용 자료만 사용한다. 외부 LLM을 호출하거나 실제 기관 자료를 조회하지 않는다. 입력을 바꾸어 결과가 어떻게 달라지는지 보고, 설명과 맞지 않는 결과가 나오면 어떤 정보가 빠졌는지 적어 본다.
자료와 출처
아래 자료는 이번 글의 정의와 표기법을 확인하는 데 사용했다. 생각그림과 사례 문장은 원자료를 복제하지 않고 이 글의 교육 목적에 맞게 새로 구성했다.