모델 설명하기: 특징 중요도 · 순열 중요도 · 부분 의존 · LIME · SHAP
순열 중요도 · PDP · LIME · 섀플리 값을 손계산하고 SHAP의 원리와 함정을 익히는 수업
먼저 알아야 할 것
다루는 내용
모델 내부를 보지 않고 바깥에서 설명하는 방법을 전역 · 지역으로 나눠 정리합니다. 순열 특징 중요도, 부분 의존 그림과 ICE, LIME의 지역 선형 근사, 특징 3개 예로 섀플리 값을 손계산하고 효율성 성질을 확인합니다. KernelSHAP과 TreeSHAP의 차이, 상관 특징과 인과 해석의 함정을 다룹니다.
해설
모델 설명하기: 특징 중요도 · 순열 중요도 · 부분 의존 · LIME · SHAP
잘 맞히는 모델도 "왜 그렇게 예측했나"를 말하지 못하면 믿고 쓰기 어렵습니다. 이 수업은 모델 안을 열지 않고 바깥에서 설명하는 대표 방법 다섯 가지(특징 중요도 · 순열 중요도 · 부분 의존 그림 · LIME · SHAP)를 손계산으로 익히고, 각 방법이 무엇을 말해 주고 무엇은 말해 주지 않는지 정리합니다.
| 항목 | 내용 |
|---|---|
| 참고 출처 | Christoph Molnar, 『Interpretable Machine Learning』 3판 (SHAP · 순열 중요도 · PDP · LIME 장), LIME · SHAP 원 논문 |
| 트랙 · 수준 | 해석 가능성 · 중급 |
| 이 수업이 다루는 범위 | 전역 · 지역 설명, 순열 특징 중요도, 부분 의존 그림(PDP)과 ICE, LIME, 섀플리 값, SHAP(KernelSHAP · TreeSHAP), 상관 특징과 인과의 함정 |
들어가기 전에
- 모델 평가와 과적합 — 손실 · 정확도 같은 평가 지표, 검증 데이터. 순열 중요도는 "지표가 얼마나 나빠지나"로 잽니다.
- XGBoost: 확장 가능한 트리 부스팅 — 트리 앙상블. TreeSHAP이 가장 많이 쓰이는 곳입니다.
- 평균 · 기댓값(→ 확률과 통계 최소한)과 선형 회귀를 알면 충분합니다.
한눈에 보기
- 전역 설명(모델 전체가 무엇에 기대나)과 지역 설명(이 예측 하나는 왜 이렇게 나왔나)을 구분합니다.
- 순열 중요도를 "특징 하나를 섞으면 오차가 얼마나 커지나"로 계산합니다.
- 부분 의존 그림이 평균을 내면서 숨기는 것을 압니다.
- LIME이 예측 하나 주변에 간단한 선형 모델을 맞추는 원리를 압니다.
- 특징 3개짜리 예로 섀플리 값을 끝까지 손계산하고, 기여의 합이 "예측 − 평균 예측"과 같아지는 것을 확인합니다.
1. 전역 설명과 지역 설명
직관(해설용 비유). 한 회사의 "연봉을 정하는 데 가장 중요한 요소는 경력"이라는 말은 전역 설명입니다. "김 대리의 올해 연봉이 평균보다 400만 원 높은 이유는 자격증 +250, 경력 +150"이라는 말은 지역 설명입니다. 둘은 답하는 질문이 다릅니다.
| 방법 | 범위 | 질문 |
|---|---|---|
| 모델 내장 중요도(트리 분할 이득 등) | 전역 | 학습 중 어떤 특징을 많이 썼나 |
| 순열 특징 중요도 | 전역 | 이 특징을 망가뜨리면 성능이 얼마나 떨어지나 |
| 부분 의존 그림(PDP) | 전역 | 이 특징 값이 바뀌면 평균 예측이 어떻게 변하나 |
| LIME | 지역 | 이 예측 근처에서 모델을 선형으로 흉내 내면 |
| SHAP | 지역(모으면 전역) | 이 예측을 평균에서 얼마나 밀어 올렸나, 특징별로 |
여기 나오는 방법은 모두 모델 불가지론적(model-agnostic) 입니다. 모델 안의 가중치를 보지 않고 "입력을 바꿔 넣고 출력을 관찰"만 하므로 어떤 모델에도 쓸 수 있습니다(TreeSHAP은 예외로 트리 구조를 씁니다).
2. 순열 특징 중요도
직관. 시험에서 학생 답안의 한 문항만 다른 학생 것과 무작위로 바꿔치기했더니 점수가 크게 떨어졌다면, 그 문항이 점수에 중요했던 것입니다. 특징 열 하나를 행끼리 뒤섞으면 그 특징과 정답의 관계만 끊어집니다.
단계. Molnar 책은 Fisher · Rudin · Dominici(2019)의 모델 불가지론 판을 이렇게 정리합니다. 이 방식은 Breiman(2001)이 랜덤 포레스트용으로 처음 제안했습니다.
- 원래 데이터로 오차 를 잽니다(예: 평균 제곱 오차).
- 특징 열만 무작위로 섞은 데이터로 오차 를 잽니다.
- 중요도를 비율 또는 차이로 구합니다.
| 기호 | 뜻 |
|---|---|
| 섞기 전 오차 | |
| 특징 를 섞은 뒤 오차 | |
| 특징 의 중요도. 비율이 1이면 "섞어도 그대로" = 안 쓰는 특징 |
정확도 · AUC처럼 클수록 좋은 지표라면 두 값의 자리를 바꿉니다.
숫자로 해 보기(해설용). 집값 모델의 검증 MSE가 4.0입니다. '면적'을 섞으니 25.0, '층수'를 섞으니 4.4가 되었습니다.
- 면적: 비율 , 차이
- 층수: 비율 , 차이
모델은 면적에 크게 기대고 층수는 거의 쓰지 않습니다.
주의할 점.
- 검증 데이터로 잽니다. 학습 데이터로 재면 과적합한 모델이 쓸모없는 특징까지 중요하게 보이게 할 수 있습니다.
- 섞는 데 무작위가 들어갑니다. 여러 번 섞어 평균을 냅니다.
- 상관된 특징. '면적'과 '방 개수'처럼 강하게 상관된 특징 중 하나만 섞으면 "면적 200㎡에 방 1개" 같은 비현실적 행이 생깁니다. 또 비슷한 특징이 둘 있으면 중요도가 둘로 쪼개져 각각 덜 중요해 보입니다.
- 얼마나 중요한지는 알려 주지만 어느 방향으로 영향을 주는지는 알려 주지 않습니다.
3. 부분 의존 그림(PDP)과 ICE
직관. "다른 조건은 각자 그대로 두고, 모든 집의 면적만 100㎡로 바꿔 놓으면 평균 예측가는?"을 면적 값마다 계산해 이은 선입니다. Friedman(2001)이 그래디언트 부스팅 논문에서 소개했습니다.
| 기호 | 뜻 |
|---|---|
| 관심 있는 특징(들)의 값. 이 값으로 고정합니다 | |
| 번째 데이터의 나머지 특징 실제 값 | |
| 학습된 모델 | |
| 일 때의 평균 예측 |
숫자로 해 보기(해설용). 데이터 3건, 모델 라고 합시다. 나머지 특징 의 실제 값이 입니다. 로 고정하면 예측은 , , → 평균 . 면 → 평균 .
PDP는 " 이 1 늘면 예측이 2 늘어난다"는 직선을 그립니다. 하지만 개별 곡선(ICE, Individual Conditional Expectation)을 그려 보면 기울기가 집마다 으로 다릅니다. PDP는 평균이라 집단별로 다른 효과를 감춥니다. 극단적으로 절반은 +, 절반은 − 효과면 PDP는 평평해져 "효과 없음"처럼 보입니다. 그래서 ICE 곡선을 함께 봅니다.
PDP도 순열 중요도처럼 특징들이 서로 독립이라고 가정합니다. 상관된 특징이 있으면 평균을 낼 때 실제로는 없는 조합을 섞습니다.
4. LIME: 예측 하나 주변을 선형으로 흉내 내기
직관(해설용 비유). 지구는 둥글지만 내 집 마당은 평평한 바닥처럼 다뤄도 됩니다. 복잡한 모델도 한 점 바로 근처 에서는 직선(선형 모델)으로 꽤 잘 근사됩니다. LIME(Local Interpretable Model-agnostic Explanations)은 Ribeiro · Singh · Guestrin이 2016년(KDD 2016) 발표했습니다.
단계.
- 설명할 데이터 를 고릅니다.
- 주변에 일부 특징을 흔든 가짜 샘플 를 많이 만들고, 블랙박스 모델의 예측을 받습니다.
- 에 가까운 샘플일수록 큰 가중치 를 줍니다.
- 가중치를 준 데이터로 단순한 모델 (특징 몇 개짜리 선형 모델 등)를 맞춥니다.
- 의 계수를 설명으로 읽습니다.
| 기호 | 뜻 |
|---|---|
| 설명하려는 블랙박스 모델 | |
| 해석할 수 있는 단순 모델(예: 희소 선형 모델) | |
| 와의 가까움을 재는 가중치 | |
| 가까운 곳에서 가 를 얼마나 못 흉내 내는지(가중 오차) | |
| 의 복잡도(특징 개수 등). 작을수록 사람이 읽기 쉬움 |
원 논문은 가중치로 지수 커널 를 씁니다( 는 거리, 는 폭).
숫자로 해 보기(해설용). 일 때 거리 0.5인 샘플의 가중치는 , 거리 2인 샘플은 입니다. 먼 샘플은 거의 무시됩니다. 폭 를 2로 키우면 거리 2인 샘플도 이 되어 "주변"이 넓어집니다.
주의할 점. Molnar 책은 커널 폭을 정하는 좋은 방법이 없고, 폭을 바꾸면 설명(부호까지)이 달라질 수 있으며, 아주 가까운 두 점의 설명이 크게 다르거나 샘플링을 다시 하면 결과가 바뀌는 불안정성 을 지적합니다.
5. 섀플리 값: 협력 게임에서 공을 나누는 법
직관. 세 사람이 함께 일해 80만 원을 더 벌었습니다. 누가 얼마를 가져가야 공정할까요? 섀플리 값(Shapley value)은 "모든 가능한 합류 순서를 고르게 따져, 각자가 들어왔을 때 늘어난 몫을 평균"합니다. 게임 이론가 섀플리(1953)의 아이디어로, 모델 설명에서는 사람 = 특징, 상금 = 예측 입니다.
단계.
- 특징 부분집합 마다 "그 특징만 알 때의 예측" 를 정합니다. 아무것도 모를 때 는 평균 예측입니다.
- 특징 가 빠진 모든 에 대해 한계 기여 를 구합니다.
- 합류 순서의 경우의 수에 맞는 가중치로 평균합니다.
| 기호 | 뜻 |
|---|---|
| , | 특징 전체 집합과 그 개수 |
| 를 뺀 특징 부분집합 | |
| 의 특징 값만 알 때의 (기대) 예측 | |
| 분수 가중치 | 순서 가지 중 "앞에 가 먼저 오고 그다음 " 인 순서의 비율 |
| 특징 의 섀플리 값(기여) |
숫자로 해 보기(해설용, 파이썬으로 검산). 집값 예측(단위: 백만 원). 특징은 ①면적 ②역 거리 ③층수. 각 부분집합의 예측이 다음과 같다고 합시다.
| {1} | {2} | {3} | {1,2} | {1,3} | {2,3} | {1,2,3} | ||
|---|---|---|---|---|---|---|---|---|
| 300 | 340 | 320 | 310 | 370 | 345 | 330 | 380 |
이면 가중치는 일 때 , 일 때 , 일 때 입니다.
- 면적:
- 역 거리:
- 층수:
합은 입니다. 이것이 효율성(efficiency) 성질입니다. 기여를 다 더하면 "이 집의 예측 − 평균 예측"이 정확히 나옵니다. 3! = 6가지 합류 순서를 일일이 따져 평균해도 같은 값이 나옵니다.
왜 이렇게 하나. "다른 특징을 다 고정하고 하나만 뺐을 때의 차이"만 보면 상호작용 몫을 누가 가질지가 순서에 따라 달라집니다. 위 예에서 면적과 역 거리가 함께 있으면 더 올라가는 몫이 있습니다. 모든 순서를 평균하면 이 몫을 공정하게 나눕니다. 섀플리 값은 효율성 · 대칭성 · 더미(안 쓰면 0) · 가산성을 동시에 만족하는 유일한 분배 방식이라는 것이 게임 이론의 결과입니다.
6. SHAP: 섀플리 값을 빠르게 계산하기
특징이 개면 부분집합이 개라 정확한 계산은 금방 불가능해집니다. Lundberg · Lee(2017, NIPS 2017)는 LIME · DeepLIFT 등 여러 방법을 "가산적 특징 귀속"이라는 한 틀로 묶고, 섀플리 값을 근사하는 SHAP(SHapley Additive exPlanations)을 제안했습니다.
| 기호 | 뜻 |
|---|---|
| 특징 가 "있음(1) · 없음(0)" | |
| 기준값(평균 예측) | |
| 특징 의 SHAP 값 |
Molnar 책이 정리한 세 성질은 지역 정확성(모든 특징이 있을 때 가 원래 예측과 같음 = 효율성), 결측성(없는 특징은 0), 일관성(모델이 바뀌어 어떤 특징의 한계 기여가 늘거나 같으면 SHAP 값도 줄지 않음)입니다.
KernelSHAP vs TreeSHAP.
| KernelSHAP | TreeSHAP | |
|---|---|---|
| 대상 | 아무 모델 | 결정 트리 · 랜덤 포레스트 · 부스팅 트리 |
| 방법 | 부분집합을 샘플링하고, 특별한 커널 가중치로 가중 선형 회귀를 풀어 계수를 SHAP 값으로 | 트리 구조를 따라 계산 |
| 비용 | 느림(샘플이 많이 필요) | Molnar 책 기준 을 로 줄임( 트리 수, 최대 잎 수, 최대 깊이) |
KernelSHAP의 커널은 로, 특징이 아주 적거나 아주 많은 부분집합에 큰 가중치를 줍니다. 같은 커널을 LIME에 쓰면 LIME도 섀플리 값을 추정하게 됩니다. Molnar 책은 KernelSHAP이 느려 shap 패키지에서 더 이상 기본 방법이 아니라고 적습니다.
flowchart LR
A[학습된 모델 f] --> B{무엇을 묻나}
B -->|모델 전체| C[순열 중요도<br/>오차 증가로 순위]
B -->|특징 값의 효과| D[PDP + ICE<br/>평균과 개별 곡선]
B -->|예측 하나| E{모델 종류}
E -->|트리 앙상블| F[TreeSHAP]
E -->|아무 모델| G[KernelSHAP · LIME]
F --> H[기여 합 = 예측 − 평균]
G --> H
C --> I[해석 · 검증 · 보고]
D --> I
H --> I7. 설명을 읽을 때의 함정
- 설명 ≠ 인과. SHAP 값이 크다는 것은 "모델이 그 특징에 기댔다"는 뜻이지 "현실에서 그 특징을 바꾸면 결과가 바뀐다"는 뜻이 아닙니다. 아이스크림 판매량으로 익사 사고를 예측하는 모델은 여름이라는 공통 원인을 따라갈 뿐입니다.
- 상관 특징. KernelSHAP은 특징이 독립이라 보고 주변 분포에서 값을 뽑으므로 비현실적인 조합에 무게를 둘 수 있습니다. 반대로 조건부 분포를 쓰면 모델이 실제로 쓰지 않는 특징도 0이 아닌 값을 받을 수 있습니다(Molnar 책이 Sundararajan · Najmi 2020, Janzing 외 2020을 들어 설명). 어느 쪽을 썼는지 밝혀야 합니다.
- 기준값. 을 어떤 데이터의 평균으로 잡았는지에 따라 값이 달라집니다.
- 설명도 검증합니다. 일부러 넣은 무작위 특징이 상위에 오르면 설명이나 모델 중 하나를 의심합니다.
연습 문제
- 정확도 0.90인 분류기에서 특징 A를 섞으니 0.72, B를 섞으니 0.89가 되었습니다. 차이 방식 중요도는?
- 풀이: 클수록 좋은 지표이므로 로 바꿔 씁니다. A , B 입니다.
- 본문 섀플리 표에서 이 380이 아니라 400이고 나머지는 같다면 면적의 섀플리 값은?
- 풀이: 항만 으로 바뀝니다. 입니다.
- 특징이 10개일 때 정확한 섀플리 계산에 필요한 부분집합 수는?
- 풀이: 개입니다. 특징 30개면 약 10억 개()라 근사가 필요합니다.
- LIME에서 , 거리 1인 샘플의 가중치는?
- 풀이: 입니다.
스스로 점검
- 순열 중요도를 학습 데이터로 재면 어떤 문제가 생기나요?
- 답: 과적합한 모델은 학습 데이터의 잡음까지 외워, 실제로는 쓸모없는 특징을 섞어도 학습 오차가 크게 늘어 중요해 보일 수 있습니다. 검증 데이터로 잽니다.
- SHAP 값을 모두 더하면 무엇이 되나요?
- 답: 그 데이터의 예측값에서 기준값(평균 예측)을 뺀 값입니다(지역 정확성 · 효율성).
- "SHAP에서 '나이'의 기여가 크니 나이를 바꾸면 결과가 바뀐다"는 말은 왜 위험한가요?
- 답: SHAP은 모델이 무엇에 기댔는지를 보여 줄 뿐 인과 관계를 보여 주지 않습니다. 나이와 상관된 다른 요인의 효과를 대신 짊어졌을 수 있습니다.
용어 정리
| 용어 | 쉬운 뜻 |
|---|---|
| 전역 설명 | 모델 전체가 무엇에 기대는지 설명 |
| 지역 설명 | 예측 하나가 왜 그렇게 나왔는지 설명 |
| 모델 불가지론적 | 모델 내부를 보지 않고 입력 · 출력만으로 설명하는 성질 |
| 순열 특징 중요도 | 특징 하나를 섞었을 때 오차가 늘어난 정도 |
| 부분 의존 그림(PDP) | 특징 값을 바꿔 가며 본 평균 예측 곡선 |
| ICE | 데이터 한 건마다 그린 부분 의존 곡선 |
| LIME | 예측 하나 주변에서 단순 모델로 흉내 내는 설명 |
| 섀플리 값 | 모든 합류 순서를 평균해 기여를 공정하게 나눈 값 |
| SHAP | 섀플리 값을 가산적 설명 모델로 근사 · 계산하는 틀 |
| 효율성(지역 정확성) | 기여의 합 = 예측 − 기준값 |
더 깊이 보려면
- Molnar 책 17장(섀플리 값) · 18장(SHAP) · 14장(LIME) · 19장(PDP) · 23장(순열 중요도)
- Ribeiro 외, "Why Should I Trust You?" (arXiv 1602.04938)
- Lundberg · Lee, A Unified Approach to Interpreting Model Predictions (arXiv 1705.07874)
다음에 볼 것
- 신경망 속 들여다보기: 기울기 · 통합 기울기 · 탐침 · 메커니즘 해석 — 모델 안의 기울기와 뉴런을 직접 보는 방법
- AI 공정성: 편향 지표와 불가능성 정리 — 설명으로 찾은 편향을 숫자로 재는 법
라이선스
본문은 KAITABASE 자체 해설입니다. 참고 자료 『Interpretable Machine Learning』(Christoph Molnar)은 CC BY-NC-SA 4.0으로 공개되어 있습니다. 집값 · 연봉 숫자와 모델은 이 수업을 위해 만든 해설용 예이며, 섀플리 계산은 파이썬으로 검산했습니다.
출처
- Molnar, Interpretable Machine Learning 3판: christophm.github.io/interpretable-ml-book
- Ribeiro · Singh · Guestrin (2016), "Why Should I Trust You?": Explaining the Predictions of Any Classifier, KDD 2016: arxiv.org/abs/1602.04938
- Lundberg · Lee (2017), A Unified Approach to Interpreting Model Predictions, NIPS 2017: arxiv.org/abs/1705.07874
AI 원리부터 이해하기 · 해석 가능성 모듈
해석 가능성 모듈 학습
이 글은 해석 가능성 모듈의 학습 자료입니다. 전체 2개 자료 중 1번째입니다.
출처·원문
원문 보기요약만