Table of Contents

DeepLearning

CAM, Grad-CAM

꼬꼬마코더 2024. 7. 25. 19:28
728x90

Class Activation Mapping (CAM)

  • 원리: CAM은 CNN의 마지막 컨볼루션 레이어에서 생성된 특성 맵에 대해 GAP을 적용한 후, 특정 클래스의 예측에 대한 가중치를 곱하여 시각화합니다. 이 기술은 네트워크가 이미지의 어느 부분을 주목하며 해당 클래스를 예측했는지를 보여줍니다.
  • 사용 조건: CAM을 적용하기 위해서는 모델 아키텍처가 매우 특정해야 합니다. 즉, 마지막 컨볼루션 레이어 다음에 바로 GAP이 와야 하며, 그 다음에는 각 클래스에 대한 선형 레이어(로지스틱 회귀)가 위치해야 합니다.

Gradient-weighted Class Activation Mapping (Grad-CAM)

  • 원리: Grad-CAM은 CAM을 일반화한 형태로, 어떤 CNN 아키텍처에도 적용할 수 있습니다. Grad-CAM은 특정 클래스의 예측에 대한 그래디언트 정보를 사용하여, 마지막 컨볼루션 레이어의 특성 맵에 역전파를 수행합니다. 이를 통해 중요한 영역을 강조하는 가중치 맵을 생성합니다.
  • 유연성: Grad-CAM은 GAP을 사용하지 않는 네트워크 아키텍처에서도 적용 가능합니다. 이는 Grad-CAM이 특성 맵의 그래디언트만을 요구하기 때문입니다.

GAP의 영향과 CAM vs. Grad-CAM

  • GAP의 역할: GAP은 CAM에서 중요한 역할을 합니다. GAP을 사용하면 각 특성 맵의 전역 평균을 추출하여 클래스별 가중치와 결합할 수 있습니다. 이는 직관적이고 이해하기 쉬운 클래스 활성화 맵을 제공합니다. Grad-CAM에서는 이러한 구조적 요구가 없어 더 넓은 범위의 모델에 적용할 수 있습니다.
  • 결과의 차이: CAM은 구조적 제한 때문에 특정 모델에만 적용할 수 있으며, 결과적으로 특성 맵과 완전히 일치하는 활성화 지도를 제공합니다. 반면, Grad-CAM은 다양한 아키텍처에서 사용할 수 있으며, 특성 맵의 그래디언트를 기반으로 하므로 더 세밀한 영역을 강조할 수 있습니다.

결론

따라서, GAP을 사용하든 사용하지 않든, CAM과 Grad-CAM은 다른 방식으로 활성화 맵을 생성하고, 각각의 방식에 따라 결과의 차이가 있을 수 있습니다. Grad-CAM은 보다 범용적으로 사용될 수 있으며, 다양한 유형의 네트워크 구조에 대해 더 유연합니다.