SHAP (SHapley Additive exPlanations)

쌀과자AI·2025년 9월 3일

XAI

목록 보기
2/5

1) 한 줄 정의 & 직관

  • SHAP은 게임이론의 Shapley 값을 이용해, 개별 예측을 “기준값(base value)”에서 각 특징이 얼마나 올렸다/내렸다가법(additive) 분해하는 지역(feature attribution) 설명 방법입니다.
  • 모든 특징이 “협력 게임”의 플레이어라면, 특징 i의 공정한 기여도가 SHAP 값입니다.

2) 공식 정의(시험용 수식 최소화)

  • 특징 수 M, 임의의 부분집합(연합) S{1,,M}{i}S \subseteq \{1,\dots,M\}\setminus\{i\}.
  • 가치 함수 v(S): 해당 부분집합의 특징값을 현재 샘플의 값으로 고정하고, 나머지는 배경분포(Background)로 적분/샘플링해 모델 출력의 기댓값을 계산한 것.
  • Shapley 값
    ϕi=SS!(MS1)!M!(v(S{i})v(S))\phi_i = \sum_{S} \frac{|S|!(M-|S|-1)!}{M!}\,\Big(v(S\cup\{i\})-v(S)\Big)
  • 가법성(Local accuracy): 링크 g를 쓰면
    g(f(x))=ϕ0+i=1Mϕi,ϕ0=E[g(f(X))]g(f(x)) = \phi_0 + \sum_{i=1}^M \phi_i,\quad \phi_0 = \mathbb{E}[g(f(X))]
    분류에서 log-odds(로짓)를 링크로 쓰면 \phi 들의 합이 로짓 공간에서 정확히 맞습니다(확률 공간 합과 다를 수 있음).

3) SHAP이 만족하는 핵심 공리(시험 단골)

  • Local accuracy(가법 정확성): 개별 예측을 정확히 분해(링크 공간에서).
  • Missingness(결측 불변): 값이 “없는” 특징은 기여 0.
  • Consistency(일관성/단조성): 어떤 모델로 바꿨더니 특징 i의 한계기여가 늘었다면 ϕi\phi_i도 줄지 않습니다. → 이 세 공리를 동시에 만족하는 유일한 가법적 특징 기여 해가 바로 Shapley 값입니다.

4) 알고리즘 계열 & 언제 쓰나

  • KernelSHAP (모델 불문, 근사)
    • “연합”을 마스크 벡터로 샘플링하고, 특정 가중 커널로 가중최소제곱을 풀어 \phi 추정.
    • 장점: 어떤 모델에도 적용. 단점: 고차원에서 느림, 독립성 가정 내포.
  • TreeSHAP (트리계열 전용, 정확/준정확)
    • 결정트리/랜덤포레스트/GBDT(XGBoost, LightGBM, CatBoost 등)에서 다항시간에 정확 계산(실무적으로 리프 수에 거의 선형).
    • Interventional / Conditional 두 모드 제공(아래 6) 참조).
  • DeepSHAP (딥러닝 전용, 근사)
    • DeepLIFT 아이디어로 SHAP 공리를 가깝게 만족하도록 근사.
  • LinearSHAP (선형모델 전용, 폐형식)
    • 선형/로지스틱 회귀에 닫힌형 해(상관구조 처리 방식에 따라 변형).
  • PartitionSHAP / GroupSHAP
    • 특징 그룹화특징 간 구조(트리/클러스터)를 반영해 샘플 공간을 효율화.

5) 계산 복잡도 & 스케일링 감각

  • 순정 Shapley는 2M2^M 평가가 필요(불가).
  • KernelSHAP은 샘플 수를 O(MlogM)O(M2)O(M \log M)\sim O(M^2) 수준으로 잡아 근사.
  • TreeSHAP트리 개수×리프 수에 거의 선형이라, 대형 GBDT에도 실무 가능.

6) “배경(Background) 분포”와 상관/인과 이슈 (시험 난이도 상)

  • Interventional SHAP: “빠진 특징”을 독립하게 채움(곱분포).
    • 쉽고 일관적이나, 강한 상관이 있을 때 비현실적 조합을 만들 수 있음.
  • Conditional SHAP: 관측된 특징에 조건부 분포로 채움.
    • 상관을 반영하나, 일관성 공리 위배 가능 & 추정이 어려움.
  • Causal SHAP: 명시적 인과 그래프를 이용해 개입(do) 정의로 계산(가장 해석적이지만 모델링 부담 큼). 핵심 함정: 강한 다중공선성에서는 “공로 분배”가 본질적으로 임의성을 띱니다(둘 이상이 같이 움직이니 기여가 갈라짐). → 그룹화(GroupSHAP)도메인 규칙으로 해석합니다.

7) 해석 포인트 (로컬→글로벌)

  • 부호: +면 기준값 대비 출력을 올림, -면 내림.
  • 크기: 절대값이 클수록 영향 큼.
  • : ϕ0+iϕi=g(f(x))\phi_0 + \sum_i \phi_i = g(f(x)) (링크 공간).
  • 글로벌 중요도: 데이터셋에서 E[ϕi]\mathbb{E}[|\phi_i|] (또는 중앙값)로 정렬.
  • 상호작용: Shapley interaction index로 2차 기여 ϕi,j\phi_{i,j} 산출(쌍 간 상호작용 분해).
  • 시각화: Summary plot(벌집), Dependence plot(부분의존+색으로 상호작용 힌트), Force/Decision plot(개별 사례 분해).

8) LIME / IG / Permutation 등과 비교 (시험 즐겨 내는 지문)

  • SHAP vs LIME
    • 둘 다 로컬 선형 근사 틀을 쓰지만, SHAP 커널은 Shapley 공리를 만족하는 유일한 가중체계.
    • LIME은 안정성/유일성 보장이 약하고, 표본/커널 선택에 민감.
  • SHAP vs Integrated Gradients(IG)
    • IG는 경로적분(기울기 누적), 미분가능 모델에 적합, 기저(참조)점 의존.
    • SHAP은 모델 불문, 가법 공리 만족, 비미분 모델(트리)에도 적용.
  • SHAP vs Permutation Importance
    • Permutation은 전역, 모델/데이터 의존 중요도(성능 저하량).
    • SHAP은 개별 예측 단위의 지역 설명, 합치면 전역 통계 가능.
  • SHAP vs PDP/ALE
    • PDP/ALE는 전역 효과 곡선, SHAP은 사례별 기여가 1차 목적.

9) 모델별 실무 팁

  • 트리 모델: TreeSHAP 사용(가능하면 interventional로 시작, 상관 강하면 conditional 검토).
  • 딥러닝: DeepSHAP(분류는 log-odds 링크 확인), 배경 샘플소수의 대표 샘플(예: k-means) 추천.
  • 선형모델: LinearSHAP; 상관구조 반영 옵션 확인.
  • 고차원 희소 피처: Feature grouping/selection 후 SHAP(메모리·시간 절감).
  • NLP/이미지: 배경을 PAD/블러 이미지자연스러운 기준으로(0 벡터는 왜곡 유발).

10) 자주 틀리는 보기(OX 체크 포인트)

  1. (O) SHAP 값의 합은 ‘기준값 대비 변화량’과 일치한다(링크 공간에서).
  2. (O) SHAP은 음/양수 모두 가능하며, 로컬 설명이 1차 목표다.
  3. (O) 세 공리(Local accuracy, Missingness, Consistency)를 만족하는 가법적 기여 해는 유일하다.
  4. (X) “SHAP은 확률 공간에서 항상 합이 맞는다.” → 보통 로짓에서 합이 맞습니다. 확률 합은 비선형이라 어긋날 수 있음.
  5. (X) “SHAP은 상관 특징에서도 유일한 정답을 준다.” → 공로 분배는 비식별적일 수 있으며 그룹화/조건부/인과 접근이 필요.
  6. (O) KernelSHAP은 모델 불문이지만 근사/느림. TreeSHAP은 트리 전용이지만 빠르고(거의 선형) 정확.
  7. (O) 배경 샘플 선택에 따라 ϕ\phi가 크게 달라질 수 있다(중요한 실무 함정).
  8. (X) “SHAP은 전역 중요도 기법이다.” → 로컬이 기본, 다수 샘플을 집계해 전역을 만든다.
  9. (O) SHAP 상호작용 값으로 2차 효과를 분해할 수 있다.
  10. (O) 선형모델에서(상호작용/상관 없다고 가정) ϕi\phi_i는 대략 계수×(특징값−배경평균) 형태로 해석 가능.

11) 실전 체크리스트(보고서·시험 공통)

  • 링크 공간 명시: probability vs log-odds.
  • 배경 선택 근거: 전체 학습세트? 서브샘플? 도메인 합의?
  • 상관 고려: interventional/conditional/causal 선택 이유 기록.
  • 안정성: 샘플 수/랜덤시드, 재현성 표기.
  • 전역 요약: mean(|φ|)만 보지 말고 분포/상호작용까지 확인.
  • 정량 검증: sanity check(무작위 라벨/모델에서 ϕ\phi가 무의미한지), 시나리오 테스트(경계 사례).

12) 짧은 예시 해석(개념 감각)

  • 이진분류, 기준 로짓 ϕ0=0.4\phi_0= -0.4 (기준확률≈0.40)
  • 한 샘플에서 ϕage=+0.9,ϕincome=0.2,ϕothers=+0.1\phi_\text{age}=+0.9, \phi_\text{income}=-0.2, \phi_\text{others}=+0.1
  • : 0.4+0.90.2+0.1-0.4 + 0.9 - 0.2 + 0.1 = +0.4 (로짓). 확률로 역변환하면 기준 0.40에서 상승(정확한 증감폭은 비선형).

profile
AI에 관심이 많은 23살 대학생입니다.

0개의 댓글