문서

확률은 믿을 수 있는가

이 페이지는 한 가지 질문에 답합니다. 그 신뢰도 수치를 믿을 수 있는가?

결론을 먼저 말합니다. “출력의 형태가 보장된다”와 “확률이 정확하다”는 전혀 다른 주장입니다. 첫째는 여러 방향에서 검증되었습니다. 둘째는 공개적으로 다툼의 대상입니다. 의사결정 모델을 프로덕션 게이트 뒤에 두려는 사람은 벤더나 프로젝트가 보고한 신뢰도를 캘리브레이션해야 할 사전확률로 다루어야 하며, 보장으로 다루어서는 안 됩니다.

캘리브레이션이란 무엇인가

어떤 모델이 “나는 80% 확신합니다”라고 말합니다. 그 모델이 80%라고 말한 것들을 모두 모았을 때 정확히 80%가 맞다면, 그 수치는 캘리브레이션된 것입니다. 더 적게 맞으면 과신입니다.

일반적인 지표는 ECE(Expected Calibration Error, 기대 캘리브레이션 오차)입니다. 예측을 신뢰도별로 구간에 나누고, 각 구간의 평균 신뢰도와 실제 정확도를 비교한 뒤, 구간 크기로 가중 평균을 냅니다. 낮을수록 좋습니다.

캘리브레이션과 정확도는 서로 독립인 축입니다. 정확도가 아주 높은 모델이 심하게 과신할 수 있고(특히 가장 어려운 부분에서), 평범한 모델이 잘 캘리브레이션될 수 있습니다. 아래에서 둘 다 보게 됩니다.

해법 1: 온도 스케일링

가장 저렴하고 가장 일반적인 해법입니다. 발상은 이렇습니다. 모델의 선택지 순서는 대체로 맞지만 척도가 틀렸다는 것입니다. 과신은 모든 것이 0과 1에 너무 가까이 몰린 상태를 뜻합니다. 홀드아웃에서 적합한 온도 파라미터 하나가 분포를 평평하게 하거나 뾰족하게 만듭니다.

실행 가능한 오프라인 평가를 제공하는 한 재현 구현은 이렇게 보고합니다.

온도 스케일링과 등각 기권(conformal abstention)을 함께 쓰면 ECE가 0.170에서 0.071로 내려갑니다(교차검증).

“교차검증”이라는 말에 주목하십시오. 같은 데이터로 적합하고 평가한 것이 아닙니다. 그것이 믿을 만한 수치와 그렇지 않은 수치의 차이입니다.

해법 2: 등각 기권

온도 스케일링은 척도를 고칩니다. 등각 방법(conformal methods)은 언제 답하지 않을지를 정합니다.

모든 확률을 올바르게 만드는 대신, 기권 집합을 만들어 참인 답이 적어도 정해진 비율만큼 그 안에 들어온다는 것을 보장합니다(커버리지 보장). 기준을 통과하지 못한 사례는 자동 처리되지 않고 에스컬레이션됩니다.

실제 프로젝트에서는 이렇습니다.

  • 118M 오픈 대안 하나는 온도 스케일링과 분할 등각 기권 집합(split-conformal abstain set)을 사용해 공개 스위트에서 ECE 0.01–0.03을 보고하면서도, 타입 지정 의사결정 벤치마크에서는 Laya에 진다(0.71 대 0.77)고 분명히 밝힙니다. 자기가 진 결과를 공개하는 프로젝트가 이긴 결과만 공개하는 프로젝트보다 더 유용합니다.
  • 의료 구현 하나는 동결된 로컬 판독기 두 개와 적합이 필요 없는 라우터, 분할 등각 후보 집합을 사용해 오차를 묶고, 600문항짜리 국가 면허 시험 세 개에서 호스팅 서비스와 2점 이내 차이로 들어옵니다. 파인튜닝도, 증류도 없습니다.

둘의 공통점은 어느 쪽도 확률이 정확해졌다고 주장하지 않는다는 것입니다. 정확하지 않을 때를 안다고 주장합니다. 실제 시스템에서는 후자가 게이트로 삼을 수 있는 것입니다.

반직관적인 독립 결과 하나: 편향의 부호가 반대다

독립적인 캘리브레이션 테스트 하나가, 모델이 본 적 없는 규칙 생성 티켓 900건과 공개 벤치마크 세 개를 사용해, 모든 원시 응답과 시뮬레이션된 잡음 하한 대비 ECE를 공개하고, 부호에 관한 결론에 도달했습니다.

프리미티브 편향의 방향
Choice 체계적으로 과신
Score 체계적으로 과신
Boolean(Noul) 체계적으로 과소신

가치는 부호에 있습니다. 편향이 무작위라면 전역 온도 하나로 고칠 수 있습니다. 방향이 반대라는 것은 전역 보정 하나로는 고칠 수 없다는 뜻입니다. 최소한 프리미티브별로 캘리브레이션해야 합니다.

특정한 설계 실패도 설명해 줍니다. 시스템이 Noul과 Choice의 신뢰도를 같은 임계값과 비교한다면, 너무 짧은 자와 너무 긴 자로 같은 것을 재는 셈입니다.

입력 언어도 캘리브레이션에 영향을 준다

사람이 라벨링한 3,200건의 스페인어 코퍼스에 대한 또 다른 측정입니다.

상태를 스페인어로 쓰면 XNLI / PAWS-X에서 정확도 3.0–6.4점을 잃고 ECE가 대략 두 배가 되었지만, instructions를 스페인어로 쓰는 것은 아무 영향이 없었습니다.

상태와 instructions의 구분이 핵심입니다. 상태는 내용이고 instructions는 메타데이터입니다. 이는 특히 중국어와 일본어 독자에게 중요합니다. 그들의 상태도 매우 비슷한 경로를 밟을 가능성이 크고, 아무도 그것을 측정해 공개하지 않았습니다. 당신의 언어에서 일어나지 않는다고 가정할 이유가 없습니다.

그럼 임계값은 어떻게 고르는가?

위의 모든 내용은 같은 질문으로 모입니다. 그 0.8은 어디서 온 것인가?

재현 가능한 답은 추측하지 말고 측정하라입니다. 자신의 라벨링된 데이터를 가져와 목표 정확도에 도달하는 질문별 임계값을 적합하고, 홀드아웃에서 검증하십시오.

한 도구가 정확히 그렇게 하며 가장 중요한 단계를 덧붙입니다. 모델 업데이트가 잠긴 임계값을 깨면 CI를 실패시킵니다. 임계값도 가격처럼 만료됩니다. 다만 잘못된 가격은 눈에 띄고 잘못된 임계값은 그렇지 않습니다.

한 문장으로

신뢰도를 보장이 아니라 사전확률로 다루십시오. 먼저 자신의 데이터에서 믿을 수 있는 구간을 측정하고, 그 구간을 코드에 적어 넣으십시오.