다음 달에 어떤 업무가 늘어날지 몰라 AI 후보를 고르기 어렵다면, 근거 없는 발생 확률부터 붙이지 않아도 된다. 각 상황에서 가장 나은 후보와 얼마나 차이가 나는지 계산하고, 그 차이가 가장 커지는 경우를 비교할 수 있다. 이를 최대 후회 최소화, minimax regret라고 한다. 평균 성능을 높이는 기준도, 최악의 성능 자체를 높이는 기준도 아니다.
여기서 후회는 감정이 아니라 기회손실이다. 상황을 미리 알았다면 선택했을 최선의 후보에 비해 얼마나 덜 얻는지를 뜻한다. 이 글은 계산 원리를 AI 평가에 적용하는 설계 예시다. 실제 모델의 성능이나 운영 성과를 측정한 보고서가 아니다.
한 후보를 먼저 고른 뒤 업무 구성이 달라진다면
세 AI 후보 중 하나를 먼저 선택해 한동안 고정해서 쓴다고 하자. 앞으로의 업무는 반복 문서가 많은 상황 S1, 복잡한 검토가 많은 S2, 예외 처리가 많은 S3 중 하나로 바뀔 수 있다. 셋은 설명용 운영 시나리오이며 발생 확률은 정하지 않았다. 모든 후보는 필수 권한·보안·기능 조건을 통과했다고 가정한다.
아래 숫자는 설명을 위해 만든 순효용 점수다. 처리 성과와 비용 등을 이미 같은 척도로 환산했다고 가정하며 높을수록 좋다. 모든 칸에서 1점 차이의 의미가 같아야 비교가 가능하다. 실제 평가에서는 이 변환의 근거부터 정해야 한다.
| 후보 | S1 | S2 | S3 | 최저 점수 |
|---|---|---|---|---|
| A | 100 | 50 | 40 | 40 |
| B | 75 | 65 | 50 | 50 |
| C | 60 | 60 | 60 | 60 |
| 상황별 최고 | 100 | 65 | 60 | — |
최저 점수가 가장 높은 후보를 고르는 maximin 기준이라면 C다. C는 어느 상황에서도 60점 아래로 내려가지 않는다. 다만 S1이 되면 A를 골랐을 때보다 40점을 덜 얻는다. 최악의 절대 점수가 좋다는 것과, 놓친 기회가 작다는 것은 다른 판단이다.
점수표를 기회손실 표로 바꾸기
각 열의 최고 점수에서 후보 점수를 뺀다. S1에서 B의 기회손실은 100−75=25다. S2에서 B는 최고이므로 0, S3에서는 60−50=10이다. 그중 가장 큰 25가 B의 최대 후회다.
| 후보 | S1 기회손실 | S2 기회손실 | S3 기회손실 | 최대 후회 |
|---|---|---|---|---|
| A | 0 | 15 | 20 | 20 |
| B | 25 | 0 | 10 | 25 |
| C | 40 | 5 | 0 | 40 |
최대 후회가 가장 작은 후보는 A다. A의 최악 점수 40은 C보다 낮지만, 어떤 시나리오에서도 그 시나리오의 최선과 벌어지는 차이는 20점 이하다. 이 보장은 이 표의 후보와 시나리오, 점수가 맞다는 조건 안에서만 성립한다. 현실의 손실이 20점 이하라는 보장은 아니다.

수식의 순서는 간단하다. 상황별 최선 점수 찾기 → 각 후보의 차이 계산 → 후보별 가장 큰 차이 찾기 → 그 값이 가장 작은 후보 선택. 비용처럼 낮을수록 좋은 값이라면 반대로 후보 비용에서 상황별 최저 비용을 뺀다. 방향을 뒤집지 않으면 음수 기회손실 같은 잘못된 결과가 나온다.
확률을 모른다고 세 상황을 똑같이 평균 내지는 않는다
단순 평균은 A 63.33, B 63.33, C 60.00이다. 이것을 기대효용이라고 부르려면 세 상황의 확률이 각각 3분의 1이라는 가정이 필요하다. 확률을 모른다는 말은 균등 확률이라는 뜻이 아니다. 평균을 단순한 비교 지표로 쓸 수는 있지만 그 선택을 숨겨서는 안 된다.
최대 후회 최소화는 시나리오 확률을 계산에 넣지 않는다. 대신 “어느 시나리오가 오든 최선과의 차이를 제한하겠다”는 목적을 택한다. 신뢰할 만한 확률과 효용이 있다면 기대효용도 검토할 수 있다. 선택 기준은 서로 다른 질문에 답하며 어느 하나가 언제나 정답인 것은 아니다.
시나리오 하나가 빠지면 결론도 달라진다
예외 처리가 훨씬 어려운 S4를 추가해 A=0, B=50, C=55라고 놓아 보자. 이 열의 최고는 55이고 기회손실은 A=55, B=5, C=0이다. 기존 세 열까지 함께 보면 최대 후회는 A=55, B=25, C=40이 된다. 선택은 A에서 B로 바뀐다.
이 변화는 알고리즘의 실패가 아니다. 비교하는 미래의 범위가 달라졌다. 하지만 원하는 후보를 고르려고 극단적 상황을 임의로 넣는 것도 정당하지 않다. 시나리오마다 근거, 적용 범위, 빠진 상황을 기록해야 한다. 후보를 추가하거나 제외해도 열별 최선이 바뀔 수 있으므로 후보 집합 역시 함께 보존한다.
또한 점수의 불확실성과 상황의 불확실성을 구분해야 한다. 이 예제는 각 칸의 점수를 확정값처럼 다뤘다. 실제 점수가 작은 표본에서 나온 추정치라면 이 표만으로 선택을 확정하지 말고, 같은 문제를 짝지은 비교와 추가 평가로 차이가 유지되는지 확인한다. 측정 오차를 숨긴 소수점은 결정의 근거가 되지 않는다.
복사해서 계산하기
아래 코드는 외부 패키지와 모델 호출 없이 합성 표만 계산한다. 후보별 시나리오 수가 같은 비어 있지 않은 유한 수치 표를 전제로 한다. 실제 입력 파일의 누락값·단위 검증을 대신하는 운영용 모듈은 아니다.
scores = {
"A": [100, 50, 40],
"B": [75, 65, 50],
"C": [60, 60, 60],
}
def compare(table):
best = [max(column) for column in zip(*table.values())]
worst_regret = {}
for name, values in table.items():
regret = [top - value for top, value in zip(best, values)]
worst_regret[name] = max(regret)
print(name, regret, max(regret))
minimum = min(worst_regret.values())
# 동률이면 모두 반환한다.
return [name for name, value in worst_regret.items()
if value == minimum]
print("S1-S3:", compare(scores))
extended = {
name: values + [extra]
for (name, values), extra in zip(scores.items(), [0, 50, 55])
}
print("S1-S4:", compare(extended))
실행 출력:
A [0, 15, 20] 20
B [25, 0, 10] 25
C [40, 5, 0] 40
S1-S3: ['A']
A [0, 15, 20, 55] 55
B [25, 0, 10, 5] 25
C [40, 5, 0, 0] 40
S1-S4: ['B']
선택 전에 남길 짧은 기록
아래 항목을 채우면 계산과 운영 결정을 구분할 수 있다.
– 결정: 지금 고정해서 선택하는 대상과 재검토 시점.
– 후보: 필수 조건을 통과한 후보 목록과 제외 이유.
– 시나리오: 무엇이 달라지는지, 어떤 근거로 포함했는지.
– 점수: 단위, 높고 낮음의 방향, 비용 포함 범위, 평가 표본.
– 기준: 기대효용·최저 성능·최대 후회 중 무엇을 줄이거나 높일지.
– 결과: 선택 후보, 동률 후보, 선택을 뒤집는 시나리오와 미확인 조건.
상황이 바뀔 때마다 후보를 갈아탈 수 있다면 문제도 달라진다. 전환 비용과 탐지 지연을 포함한 운영 정책을 후보로 비교해야 할 수 있다. 고정 선택용 표에서 얻은 결론을 실시간 라우팅의 정답으로 옮기지 않는다.
최대 후회가 작다는 이유만으로 보안 위반이나 금지 행동을 허용해서도 안 된다. 그 조건은 비교표에 들어오기 전에 확인할 문제다. 이 방법이 돕는 것은 허용된 후보 사이의 선택이지, 허용 범위를 넓히는 판단이 아니다.
이어서 읽기
– 산술평균과 기하평균의 선택: 점수 집계와 필수 조건의 구분.
– 가중치 민감도 분석: 선호가 달라질 때 순위가 바뀌는 경계.
– 같은 문제를 짝지어 비교하기: 측정된 성공률 차이를 확인하는 별도 절차.
근거와 확인 범위
개념 근거는 MIT OpenCourseWare 16.422, Classical Decision Theory & Bayes’ Theorem 강의자료의 Maximin, Minimax (Regret), Expected Value 설명이다. 2004년 봄 강의자료이며 2026년 10월 20일 원문을 확인했다. 기회손실은 같은 상황의 최선 결과와 선택한 결과의 차이라는 정의를 대조했다. AI 평가 적용 절차와 모든 숫자는 이 글의 합성 예시이지 MIT가 검증한 AI 성능이나 권장 기준이 아니다.
Python 3.12.14에서 위 코드의 두 시나리오 집합과 동률 반환을 확인했다. 확인 범위는 계산과 코드 동작이다. 실제 AI 모델 평가, 미래 업무 비율 예측, 현장 도입 효과는 수행하거나 입증하지 않았다.