불확실한 선택을 설계하는 결정 이론과 베이즈 의사결정

효용 함수, 의사결정나무, 베이즈 의사결정과 정보 가치를 활용해 불확실한 운영 선택을 설계하는 방법을 정리한다.

2026-08-14 · 최초 발행 2024-04-29

불확실한 환경에서는 예측값만으로 행동을 고르기 어렵다. 같은 확률이라도 손익, 위험 수용 수준, 규제 조건에 따라 승인·거절·추가 조사 중 선택이 달라진다. 결정 이론은 이 판단을 효용, 손실, 정보 가치의 언어로 정리하는 틀이다.

확률과 선호를 함께 다루는 선택 모델

결정 이론은 행동(action)과 상태(state)의 조합이 만드는 효용(utility) 또는 손실(loss)의 기대값을 비교해 행동을 고른다. 불확실성을 확률로만 표현하지 않고, 그 결과를 조직이나 의사결정자가 얼마나 선호하는지도 함께 반영한다.

효용 함수는 선호와 위험 태도를 수치로 나타낸다. von Neumann–Morgenstern 공리계의 완비성·이행성·연속성·독립성 아래에서는 기대 효용을 최대화하는 방식이 정당화된다. 위험중립, 위험기피, 위험선호는 로그·제곱근·지수 효용 등으로 모델링할 수 있으며, 기대값이 같아도 서로 다른 결정을 낳는다.

규제, 공정성, 재무 한도처럼 행동 공간을 제한하는 조건은 효용에 패널티로 포함하거나 다목적 효용으로 확장할 수 있다. 이때 효용 설계 자체가 정책의 핵심이 된다.

순차적 선택은 나무로 펼쳐 본다

의사결정나무는 결정 노드(□), 우연 노드(○), 결과 노드(△)를 사용해 여러 단계의 행동과 결과를 계층적으로 표현한다. 각 분기에 확률과 보상을 연결한 뒤, 말단 결과에서 시작하는 후향 유도(backward induction)로 기대값을 계산해 경로를 선택한다.

테스트를 먼저 할지, 바로 행동할지, 이후 어떤 대응을 할지처럼 순서가 중요한 문제에 적합하다. 다만 분기가 늘면 조합이 빠르게 커지므로 가지치기(pruning), 깊이 제한, 민감도 분석이 필요하다. 주요 가정이 바뀔 때 선택이 어떻게 달라지는지도 함께 확인해야 한다.

사후확률을 행동 기준으로 바꾸는 베이즈 의사결정

베이즈 의사결정은 사전확률(prior)에 관측 데이터를 반영해 사후확률(posterior)을 갱신한 다음, 행동별 손실 또는 효용을 비교한다. 행동 (a)의 기대 손실은 (L(a)=E[L(a,S)|D])로 두고 이를 최소화하거나, 기대 효용을 최대화하는 행동을 택한다.

복잡한 모델에서는 변분 추론이나 MCMC 같은 근사추론으로 계산 가능성을 확보할 수 있다. 이때 예측 확률의 캘리브레이션이 중요하다. 확률값이 실제 빈도와 어긋나면 손실 행렬을 정교하게 설계해도 행동 기준이 흔들린다.

추가 정보를 얻을지 결정할 때는 정보 가치가 기준이 된다. EVPI는 완전한 정보가 있을 때의 기대값에서 현재 기대값을 뺀 값으로, 추가 투자 한도의 상한선을 제공한다. EVSI는 표본 정보의 기대 가치이며 샘플 크기나 테스트 예산을 정하는 데 직접 사용할 수 있다.

입력부터 결정까지 반복되는 흐름

아니오아니오누락/스케일 이슈입력- 사전확률 π- 데이터 D- 효용/손실 행렬 U/L- 제약조건 C베이즈 업데이트p(θ|D)예상 효용 계산EU(a)=Σ_s p(s|D)·u(a,s)제약 충족?패널티/라그랑주 적용행동 공간 축소민감도 분석π, U/L, p 변동추가 정보 필요?(EVSI > 비용)추가 데이터 수집/실험의사결정argmax_a EU(a)캘리브레이션·정규화·검증

입력에는 사전확률, 관측 데이터, 효용 또는 손실, 제약 조건이 들어간다. 사후확률을 구한 뒤 기대 효용을 계산하고, 제약과 민감도를 검토한다. EVSI가 비용보다 큰 경우에는 추가 데이터 수집이나 실험으로 돌아가며, 그렇지 않으면 최적 행동과 기대 가치, 정보 가치, 주요 민감 변수를 산출한다.

정책 설계가 필요한 업무 장면

신용 리스크 승인에서는 신청자 특성, 모델 (p(default|x)), 수익·손실 매트릭스를 사용한다. 확률을 갱신한 뒤 승인과 거절의 기대 효용을 비교하고, 한도 및 규제 제약을 반영해 임계값을 도출한다. 결과물은 승인 정책, 한도 테이블, 예상 손익이며 EVPI는 외부 데이터 구매의 타당성을 평가하는 데 쓰인다.

의료 진단 테스트 선택에서는 질병 유병률 prior, 테스트 민감도·특이도, 치료 효용과 부작용을 함께 둔다. 테스트 결과에 따른 사후확률로 치료와 추가 검사를 결정하고, EVSI로 추가 검사의 가치를 판단한다. 이 경로는 과잉진단과 누락진단 비용을 균형 있게 다루는 데 목적이 있다.

마케팅 캠페인의 타게팅과 입찰에서는 전환 확률, CAC, LTV, 빈도 제한을 입력으로 쓴다. 타게팅·배제·다른 채널 가운데 행동별 기대 효용을 비교하고 예산과 빈도 제약을 최적화한다. 입찰가, 세그먼트 우선순위, 증분 ROI, 실험 크기(EB 테스트) 결정으로 이어진다.

재고와 공급망 주문 정책에서는 수요 분포, 보관·결품 비용, 리드타임을 바탕으로 뉴스벤더형 손실 함수를 최소화한다. 이후 베이즈 업데이트로 수요 분포를 계속 갱신해 주문량 임계값, 서비스 레벨·비용 곡선, 안전재고 정책을 정한다.

각 접근법이 운영에서 보이는 차이

기준 Utility Functions Decision Trees Bayesian Decision Making
성능(계산/정확) 계산 경량, 모델 품질·캘리브레이션에 의존 시나리오 명시적, 깊어지면 계산 증가 확률 추정 품질 우수, 추론 비용 존재
확장성 고, 대규모 배치에 적합 분기 폭발로 대규모 확장 어려움 근사추론·분산으로 중고도 확장 가능
일관성 공리 기반 일관성 확보 모델링 규칙에 좌우 사전·우도 일관성 유지
안정성 효용 설계 민감 가정 변동에 민감, 민감도 필수 데이터 축적 시 안정성 증가
운영 편의 간단한 정책화 용이 설명 가능성 우수, 교육 쉬움 통계 역량·MLOps 필요

운영에서 흔들리기 쉬운 지점

확률 캘리브레이션에는 Platt/Isotonic으로 (p)를 보정하고 Brier/NLL을 모니터링하는 방식이 쓰인다. 다만 보정 모델의 과적합 위험과 단순 임계값 적용의 편의성 사이에는 트레이드오프가 있다.

효용과 손실은 재무·리스크·규제 조직이 함께 정의하고, 버전 관리와 A/B-쿠키컷 검증으로 관리할 수 있다. 지나치게 정밀한 모델은 유지비를 높이고, 단순화는 현실을 왜곡할 수 있다.

의사결정나무는 가지치기, 깊이 제한, 가정 문서화가 필요하다. 설명력을 얻는 대신 장기 효과를 놓칠 가능성을 점검해야 한다. 베이즈 추론은 변분/SG-MCMC, 캐시·온디맨드 업데이트, 드리프트 감지로 운영화할 수 있으며 계산비용 증가와 데이터 효율성 증대 사이의 균형이 필요하다.

기대 효용으로 이진 행동을 고르는 코드

환경/버전은 Python 3.10+이며 외부 라이브러리는 필요하지 않다. 모델이 출력한 p = P(Positive|x)와 효용 행렬 U[action][state]를 사용해 기대 효용이 가장 큰 행동과 임계값을 계산한다.

from dataclasses import dataclass

@dataclass
class UtilityMatrix:
    # state: 1=Positive(예: 정상 상환/질병 있음), 0=Negative
    # action: 1=Accept/Treat, 0=Reject/No-Treat
    U11: float  # u(action=1, state=1)
    U10: float  # u(action=1, state=0)
    U01: float  # u(action=0, state=1)
    U00: float  # u(action=0, state=0)

def expected_utility(p: float, U: UtilityMatrix):
    eu_accept = p * U.U11 + (1 - p) * U.U10
    eu_reject = p * U.U01 + (1 - p) * U.U00
    return eu_accept, eu_reject

def decision(p: float, U: UtilityMatrix):
    eu_a1, eu_a0 = expected_utility(p, U)
    return (1 if eu_a1 >= eu_a0 else 0), eu_a1, eu_a0

def bayes_threshold(U: UtilityMatrix):
    # Solve p*(U11 - U01) + (1-p)*(U10 - U00) >= 0 for p
    a = (U.U11 - U.U01) - (U.U10 - U.U00)
    b = (U.U10 - U.U00)
    if a == 0:
        return 0.0 if b >= 0 else 1.0
    t = b / a
    # clamp to [0,1] for interpretability
    return max(0.0, min(1.0, t))

# Example
U = UtilityMatrix(
    U11=100.0,   # 승인 & 정상 상환의 이익
    U10=-300.0,  # 승인 & 부도 손실
    U01=0.0,     # 거절 & 정상 상환(기회비용)
    U00=0.0      # 거절 & 부도(손실 회피)
)
p = 0.35  # 모델 캘리브레이션된 부도 "정상 상환" 확률 가정(도메인에 맞게 state 의미 일치 필요)
act, eu1, eu0 = decision(p, U)
print(f"threshold≈{bayes_threshold(U):.3f}, p={p:.2f}, action={act}, EU1={eu1:.1f}, EU0={eu0:.1f}")

상태 정의, 특히 state=1의 의미는 도메인 전체에서 일관되게 유지해야 한다. bayes_threshold는 점정책의 기준을 제공하며, 실제 운영에서는 제약과 규칙을 함께 결합한다.

손익·비용·리스크에 미치는 변화

손실 함수를 반영한 의사결정은 도메인·기준정책 대비 사전 A/B 검증을 전제로 15%p 수준의 기대 이익 상승이 가능하다. EVSI를 기준으로 추가 데이터 구매와 실험을 줄이면 데이터 비용을 1030% 절감할 수 있다. 캘리브레이션과 임계값 최적화를 함께 적용하면 과오결정률(FP/FN)을 5~20% 상대적으로 줄일 수 있다.

의사결정나무와 효용을 문서화하면 설명 가능성과 거버넌스가 높아진다. 공리와 절차에 기반한 정책은 담당자 의존성을 낮추고 재현성을 높이며, 베이즈 업데이트는 환경 변화에 맞춰 정책을 조정할 여지를 제공한다.

고가치 의사결정부터 작게 시작해 효용 설계, 확률 캘리브레이션, 정보 가치 기반의 실험·데이터 전략, 제약 반영을 함께 구축하는 방식이 적합하다.

결정 이론효용 함수베이즈 의사결정의사결정나무민감도 분석