XAI(설명가능한 AI)에서 Saliency Map(살리언시 맵)은 딥러닝 모델의 입력 중 어떤 부분이 예측에 중요한 영향을 미쳤는지를 시각적으로 강조해주는 방법입니다. 주로 이미지 분류 모델에서 사용되지만, 텍스트나 기타 입력에 대해서도 일반화된 형태로 적용됩니다.
| 항목 | 설명 |
|---|---|
| 정의 | 입력의 각 위치가 출력에 얼마나 중요한지를 시각적으로 표현한 맵 |
| 주요 용도 | 모델이 어떤 부분을 보고 판단했는지 확인 (신뢰성, 디버깅, 오류 탐지 등) |
| 대표 사용 분야 | 컴퓨터 비전 (이미지 분류, 객체 탐지), 일부 NLP (e.g., attention heatmap) |
| 기반 원리 | 출력 클래스 점수에 대한 입력의 gradient (기울기)를 계산해서 시각화 |
Saliency Map은 일반적으로 다음과 같이 계산됩니다:
즉, 입력 의 각 요소(픽셀, 토큰 등)가 출력 에 얼마나 영향을 주는지를 미분을 통해 정량화한 것이라 볼 수 있습니다.
예를 들어, CNN 기반 이미지 분류 모델이 고양이 이미지를 보고 “cat”이라고 예측했다고 합시다.
# 입력 이미지에 대한 gradient 기반 saliency map 생성 예시
input_image.requires_grad_()
output = model(input_image)
score = output[0, target_class]
score.backward()
saliency_map = input_image.grad.data.abs().max(dim=1)[0] # 채널 차원에 대해 최대값
| 기법 | 설명 | 특징 |
|---|---|---|
| Vanilla Saliency Map | 기본 gradient 기반 | 가장 직관적이지만 노이즈가 많음 |
| SmoothGrad | 여러 노이즈 버전의 평균 | 시각적으로 더 부드러운 결과 |
| Grad-CAM | CNN의 중간 계층에 gradient 적용 | 클래스 별로 localization map 생성 가능 |
| Integrated Gradients | 입력과 기준점 사이의 적분으로 gradient 누적 | 블랙박스 완화, 수학적으로 정당화됨 |
| Layer-wise Relevance Propagation (LRP) | 예측 값을 역전파하여 기여도 추정 | 복잡하지만 설명력 높음 |
| 보기 스타일 | 옳은 보기인지 판단 가이드 |
|---|---|
| “입력의 각 요소가 예측에 미친 영향도를 gradient를 통해 계산한다” | ✅ 옳음 |
| “Saliency Map은 모델 학습을 위한 정규화 기법이다” | ❌ 틀림 (설명 기법) |
| “Grad-CAM은 Saliency Map을 응용한 기법이다” | ✅ 옳음 |
| “Saliency Map은 모델의 attention weight를 시각화한 것이다” | ❌ 틀림 (attention과는 다름) |
| “Saliency Map은 입력에 대한 모델의 민감도를 기반으로 한다” | ✅ 옳음 |
| 용어 | 설명 |
|---|---|
| Attention Heatmap | Transformer 모델에서 attention score를 시각화한 것 |
| Grad-CAM | CNN의 convolution layer의 gradient를 기반으로 class별로 시각화 |
| Integrated Gradients | baseline과 입력 사이의 평균 gradient 누적 |
| LIME / SHAP | 모델-불문 모델 agnostic 방식으로 샘플 주변을 샘플링하며 설명 |