13-2. 모델 Explanation 방법론: LIME, SHAP
1. 딥러닝 모델의 설명가능성(Explainability)의 중요성
딥러닝 모델은 복잡한 구조와 방대한 데이터를 기반으로 놀라운 성능을 보여주지만, 그 내부 동작 방식은 여전히 블랙 박스(Black Box)에 가깝습니다. 즉, 모델이 왜 특정 예측을 하는지, 어떤 특징(feature)에 의해 영향을 받는지 이해하기 어렵다는 뜻입니다. 이러한 불투명성은 딥러닝 모델의 신뢰성을 저해하고, 다음과 같은 문제점을 야기할 수 있습니다.
- 신뢰성 부족: 모델의 예측이 설명 불가능하다면, 의료 진단이나 자율 주행과 같이 오작동 시 치명적인 결과를 초래할 수 있는 분야에서 사용하기 어렵습니다.
- 디버깅의 어려움: 모델의 오류를 발견하고 수정하는 데 어려움이 있습니다. 오류의 원인을 파악하기 위해 수많은 실험과 분석을 거쳐야 합니다.
- 편향(Bias) 문제: 훈련 데이터에 내재된 편향이 모델에 반영될 수 있습니다. 모델이 잘못된 이유로 예측을 할 경우, 편향을 발견하고 수정하기 어렵습니다.
- 규제 준수 어려움: 특정 산업 분야에서는 모델의 설명가능성을 요구하는 규제가 존재합니다.
이러한 문제점을 해결하기 위해 딥러닝 모델의 설명가능성을 높이는 다양한 방법론이 연구되고 있으며, 그중 대표적인 방법으로 LIME(Local Interpretable Model-agnostic Explanations)과 SHAP(SHapley Additive exPlanations)이 있습니다.
2. LIME(Local Interpretable Model-agnostic Explanations)
LIME은 2016년에 Marco Tulio Ribeiro, Sameer Singh, Carlos Guestrin에 의해 제안된 모델로, 딥러닝 모델의 예측 결과를 설명하기 위한 방법 중 하나입니다. LIME은 모델에 독립적(model-agnostic)이며, 특정 데이터 포인트(instance)에 대한 국소적인(local) 설명을 제공하는 것을 목표로 합니다. 즉, 전체 모델의 동작 방식을 설명하는 것이 아니라, 각 개별 예측에 대해 "왜" 그런 예측이 나왔는지를 설명합니다.
1) LIME의 작동 원리
LIME은 다음과 같은 단계로 작동합니다.
- 관심 대상인 instance $\mathbf{x}$ 주변에 국소적인 샘플링(Sampling): 먼저, 설명하고자 하는 특정 데이터 포인트 $\mathbf{x}$를 중심으로, $\mathbf{x}$와 유사한 데이터를 생성합니다. 이웃(neighborhood)을 생성하는 방법은 다양하며, 일반적으로 $\mathbf{x}$ 주변에 가우시안 분포(Gaussian distribution)를 따르는 샘플을 생성하거나, 간단한 변형(perturbation)을 통해 생성합니다.
- 샘플링된 데이터에 대한 예측: 생성된 샘플 데이터를 원래의 딥러닝 모델에 입력하여 예측 결과를 얻습니다.
- 가중치 부여: $\mathbf{x}$에서 가까운 샘플일수록 더 큰 가중치를 부여합니다. 이는 $\mathbf{x}$ 주변의 국소적인 영역에 집중하여 설명을 생성하기 위함입니다. 가중치는 일반적으로 샘플과 $\mathbf{x}$ 간의 거리(예: 유클리드 거리)를 기반으로 계산됩니다.
- 선형 모델 학습: 샘플 데이터와 해당 예측 결과를 사용하여 가중치를 고려한 선형 모델(예: 선형 회귀)을 학습시킵니다. 이 선형 모델은 원래의 딥러닝 모델을 국소적으로 근사합니다.
- 설명 생성: 학습된 선형 모델의 계수를 통해 $\mathbf{x}$의 예측에 가장 큰 영향을 미치는 특징(feature)을 파악하고, 이를 기반으로 설명을 생성합니다.
2) LIME의 장점과 단점
LIME은 다음과 같은 장점과 단점을 가집니다.
-
장점:
- 모델에 독립적: 어떤 종류의 딥러닝 모델에도 적용 가능합니다.
- 직관적인 설명: 선형 모델을 사용하여 예측에 영향을 미치는 특징을 쉽게 파악할 수 있습니다.
- 구현 용이성: 비교적 간단한 알고리즘으로 구현할 수 있습니다.
- 단점:
- 국소적 설명: 전체 모델의 동작 방식을 설명하지 못하고, 특정 데이터 포인트에 대한 설명만 제공합니다.
- 설명의 안정성 문제: 샘플링 과정에 따라 설명 결과가 달라질 수 있습니다.
- 설명의 정확성 문제: 국소적인 선형 근사로 인해, 복잡한 모델의 동작을 정확하게 설명하지 못할 수 있습니다.
3) LIME의 활용 예시
이미지 분류 모델에 LIME을 적용하여, 모델이 특정 이미지를 고양이로 분류한 이유를 설명할 수 있습니다. LIME은 이미지의 픽셀 단위로 중요도를 계산하여, 고양이의 귀, 눈, 수염 등, 모델이 고양이로 인식하는 데 영향을 미친 주요 특징을 시각적으로 보여줍니다.
3. SHAP(SHapley Additive exPlanations)
SHAP는 2017년에 Scott M. Lundberg와 Su-In Lee에 의해 제안된 방법으로, 게임 이론의 Shapley value를 기반으로 딥러닝 모델의 예측을 설명합니다. SHAP는 각 특징(feature)이 모델의 예측에 기여하는 정도를 정량적으로 평가하여, 보다 일관되고 정확한 설명을 제공합니다.
1) SHAP의 핵심 개념: Shapley Value
Shapley value는 게임 이론에서 각 참가자의 기여도를 공정하게 분배하기 위한 개념입니다. 딥러닝 모델의 맥락에서, 각 특징은 모델의 예측에 참여하는 "참가자"로 간주될 수 있습니다. Shapley value는 각 특징이 예측에 기여하는 정도를 모든 가능한 특징 조합을 고려하여 계산합니다.
Shapley value는 다음과 같은 속성을 만족해야 합니다.
- 효율성(Efficiency): 모든 특징의 기여도를 합하면, 모델의 전체 예측 값과 일치해야 합니다.
- 대칭성(Symmetry): 두 특징이 예측에 동일한 기여를 한다면, 동일한 Shapley value를 가져야 합니다.
- 더미 특징(Dummy player): 예측에 아무런 영향을 미치지 않는 특징은 Shapley value가 0이어야 합니다.
2) SHAP의 작동 원리
SHAP는 다음과 같은 단계를 거쳐 각 특징의 Shapley value를 계산합니다.
- 특징 조합 생성: 모델의 모든 특징의 가능한 조합을 생성합니다.
- 각 조합에 대한 예측: 각 특징 조합을 사용하여 모델의 예측 값을 계산합니다. 특징 조합에 포함되지 않은 특징은
baseline value로 설정합니다. Baseline value는 일반적으로 훈련 데이터의 평균 예측값 또는 특정 데이터 포인트의 예측값으로 설정됩니다. - Shapley value 계산: 각 특징의 Shapley value는 해당 특징이 포함된 조합과 포함되지 않은 조합 간의 예측 값 차이를 가중 평균하여 계산합니다. 가중치는 조합의 크기와 조합 내에서 특징의 상대적 중요성에 따라 결정됩니다.
$$ \phi_i(f, \mathbf{x}) = \sum_{S \subseteq \mathbf{x} \setminus \{i\}} \frac{|S|!(M-|S|-1)!}{M!} [f_x(S \cup \{i\}) - f_x(S)] $$
- $\phi_i(f, \mathbf{x})$: 특징 $i$의 Shapley value
- $f_x(S)$: 특징 집합 $S$를 입력으로 사용했을 때 모델의 예측
- $\mathbf{x}$: 입력 데이터
- $M$: 전체 특징의 수
- $S$: 특징 $i$를 제외한 모든 특징의 부분 집합

3) SHAP의 장점과 단점
SHAP은 다음과 같은 장점과 단점을 가집니다.
-
장점:
- 이론적 근거: 게임 이론의 Shapley value를 기반으로 하여, 모델의 예측을 공정하고 일관되게 설명합니다.
- 전역적 설명: 각 특징의 Shapley value를 통해, 전체 모델의 동작 방식을 파악할 수 있습니다.
- 정확성: LIME보다 더 정확한 설명을 제공합니다.
- 단점:
- 계산 복잡성: 모든 특징 조합을 고려해야 하므로, 계산 비용이 많이 듭니다.
- Baseline 설정의 중요성: Baseline value의 선택에 따라 설명 결과가 달라질 수 있습니다.
- 구현의 어려움: LIME에 비해 구현이 복잡합니다.
4) SHAP의 활용 예시
SHAP은 다양한 분야에서 활용될 수 있습니다.
- 의료 분야: 의료 진단 모델이 질병의 위험 요인을 파악하는 데 기여하는 각 특징(예: 혈압, 콜레스테롤 수치)의 기여도를 설명하는 데 사용될 수 있습니다.
- 금융 분야: 신용 평가 모델이 대출 승인 여부를 결정하는 데 영향을 미치는 각 특징(예: 소득, 신용 점수)의 기여도를 설명하는 데 사용될 수 있습니다.
- 자연어 처리 분야: 텍스트 분류 모델이 특정 문장을 긍정 또는 부정으로 분류하는 데 영향을 미치는 단어들의 기여도를 설명하는 데 사용될 수 있습니다.
4. LIME과 SHAP 비교
| 특징 | LIME | SHAP |
|---|---|---|
| 설명 범위 | 국소적 | 전역적 |
| 설명 방식 | 선형 모델 사용 | Shapley value 계산 |
| 모델 의존성 | 모델에 독립적 | 모델에 독립적 |
| 계산 복잡도 | 낮음 | 높음 |
| 설명 안정성 | 낮음 (샘플링에 따라 달라짐) | 높음 |
| 설명 정확성 | 낮음 (선형 근사) | 높음 (Shapley value 기반) |
| 적용 사례 | 이미지 분류, 텍스트 분류 등 특정 데이터 포인트 설명 | 의료, 금융, 자연어 처리 등 전반적인 모델의 특징 기여도 설명 |
5. 결론
LIME과 SHAP은 딥러닝 모델의 설명가능성을 높이기 위한 효과적인 방법론입니다. LIME은 국소적인 설명을 제공하여 특정 예측에 대한 직관적인 이해를 돕고, SHAP은 Shapley value를 기반으로 보다 정확하고 일관된 설명을 제공합니다.
어떤 방법론을 선택할지는 사용 목적과 상황에 따라 달라집니다. 특정 예측에 대한 빠른 설명을 원한다면 LIME을 사용할 수 있고, 모델의 전반적인 동작 방식과 각 특징의 기여도를 파악하고 싶다면 SHAP을 사용하는 것이 좋습니다.
궁극적으로 딥러닝 모델의 설명가능성을 확보하는 것은 모델의 신뢰성을 높이고, 오해를 방지하며, 모델을 더 잘 이해하고 개선하는 데 기여합니다.
비슷한 글 추천
13-1. 딥러닝 Explainability (설명가능성): 중요성과 필요성
딥러닝 모델의 Explainability (설명가능성)의 중요성과 필요성을 설명하고, 윤리적인 문제와 사회적 영향을 논합니다.
3-7. 경사 하강법의 변형: Momentum, AdamW
경사 하강법의 단점을 보완하기 위한 모멘텀, AdamW 등 다양한 최적화 알고리즘에 대해 설명하고, 각 알고리즘의 특징과 사용 사례를 비교합니다.
1-5. 딥러닝 개발 환경 설정: GPU, CUDA, cuDNN
딥러닝 연구 및 실습을 위한 GPU, CUDA, cuDNN 설치 및 설정 방법, 환경 점검 방법을 다룹니다.
3-1. PyTorch 소개: 텐서
PyTorch 소개, 텐서 생성, 텐서 자료형
Comments (0)
No comments yet. Be the first to comment!
Please to write a comment.