Saliency Map(살리언시 맵)

쌀과자AI·2025년 9월 3일

XAI

목록 보기
4/5

XAI(설명가능한 AI)에서 Saliency Map(살리언시 맵)딥러닝 모델의 입력 중 어떤 부분이 예측에 중요한 영향을 미쳤는지를 시각적으로 강조해주는 방법입니다. 주로 이미지 분류 모델에서 사용되지만, 텍스트나 기타 입력에 대해서도 일반화된 형태로 적용됩니다.


✅ 핵심 개념 요약

항목설명
정의입력의 각 위치가 출력에 얼마나 중요한지를 시각적으로 표현한 맵
주요 용도모델이 어떤 부분을 보고 판단했는지 확인 (신뢰성, 디버깅, 오류 탐지 등)
대표 사용 분야컴퓨터 비전 (이미지 분류, 객체 탐지), 일부 NLP (e.g., attention heatmap)
기반 원리출력 클래스 점수에 대한 입력의 gradient (기울기)를 계산해서 시각화

🔍 동작 원리

1. 기본 수식 구조

Saliency Map은 일반적으로 다음과 같이 계산됩니다:

S(x)=ycxS(x) = \left| \frac{\partial y_c}{\partial x} \right|
  • xx: 입력 이미지 (또는 텍스트)
  • ycy_c: 특정 클래스 cc에 대한 모델의 출력 점수
  • ycx\frac{\partial y_c}{\partial x}: 입력 xx에 대한 출력 ycy_c의 gradient
  • S(x)S(x): Saliency Map (입력과 동일한 크기의 텐서)

즉, 입력 xx의 각 요소(픽셀, 토큰 등)가 출력 ycy_c에 얼마나 영향을 주는지를 미분을 통해 정량화한 것이라 볼 수 있습니다.


🧠 직관적인 이해

  • 입력의 각 요소(픽셀/토큰 등)를 조금 변화시켰을 때 출력이 얼마나 민감하게 바뀌는지를 측정합니다.
  • 민감하게 반응하는 부분은 “이 위치가 중요하다”고 판단하여 밝게 표시하고, 덜 민감한 위치는 어둡게 표시합니다.
  • 결과적으로 생성된 Saliency Map은 “모델이 주목한 부분의 강조 시각화”가 됩니다.

📊 예시: 이미지 분류

예를 들어, CNN 기반 이미지 분류 모델이 고양이 이미지를 보고 “cat”이라고 예측했다고 합시다.

  • Saliency Map은 이 이미지에서 “어떤 픽셀(또는 영역)이 ‘cat’이라는 예측에 가장 큰 영향을 줬는가?”를 시각적으로 보여줍니다.
  • 고양이의 얼굴, 귀, 눈 부위가 강조되어 나올 가능성이 높습니다.

🔧 구현 예시 (PyTorch)

# 입력 이미지에 대한 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]  # 채널 차원에 대해 최대값

🧪 다른 Saliency 기법과의 비교

기법설명특징
Vanilla Saliency Map기본 gradient 기반가장 직관적이지만 노이즈가 많음
SmoothGrad여러 노이즈 버전의 평균시각적으로 더 부드러운 결과
Grad-CAMCNN의 중간 계층에 gradient 적용클래스 별로 localization map 생성 가능
Integrated Gradients입력과 기준점 사이의 적분으로 gradient 누적블랙박스 완화, 수학적으로 정당화됨
Layer-wise Relevance Propagation (LRP)예측 값을 역전파하여 기여도 추정복잡하지만 설명력 높음

📌 장단점

장점

  • 모델의 판단 근거를 직관적으로 이해할 수 있음
  • 오탐/오분류 분석, 모델 신뢰성 검증 등에 유용
  • 구현이 간단하고 빠름

단점

  • 노이즈가 많아 해석이 어려움 (→ SmoothGrad 등 보완 기법 필요)
  • 모델의 깊은 구조나 중간 계층 반영이 어려움
  • 해석에 주관성이 개입될 수 있음

🧠 XAI 시험 대비 포인트

보기 스타일옳은 보기인지 판단 가이드
“입력의 각 요소가 예측에 미친 영향도를 gradient를 통해 계산한다”✅ 옳음
“Saliency Map은 모델 학습을 위한 정규화 기법이다”❌ 틀림 (설명 기법)
“Grad-CAM은 Saliency Map을 응용한 기법이다”✅ 옳음
“Saliency Map은 모델의 attention weight를 시각화한 것이다”❌ 틀림 (attention과는 다름)
“Saliency Map은 입력에 대한 모델의 민감도를 기반으로 한다”✅ 옳음

📚 관련 개념과 구분

용어설명
Attention HeatmapTransformer 모델에서 attention score를 시각화한 것
Grad-CAMCNN의 convolution layer의 gradient를 기반으로 class별로 시각화
Integrated Gradientsbaseline과 입력 사이의 평균 gradient 누적
LIME / SHAP모델-불문 모델 agnostic 방식으로 샘플 주변을 샘플링하며 설명

📌 마무리 요약

  • Saliency Map은 입력에 대한 예측 민감도를 시각화하여, 딥러닝 모델의 판단 근거를 인간이 이해할 수 있도록 도와줍니다.
  • 주로 이미지 분류 모델에서 사용되며, gradient 기반이지만 다양한 개선 기법(SmoothGrad, Grad-CAM 등)이 존재합니다.
  • 단순하면서도 powerful한 XAI 기법의 출발점이며, 다른 복잡한 기법들의 기반이 되기도 합니다.

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

0개의 댓글