[논문 리뷰]_Score-CAM: Score-Weighted Visual Explanations for Convolutional Neural Networks

코넬·2023년 9월 22일
0

PapersReview

목록 보기
27/35
post-thumbnail

Score-CAM: Score-Weighted Visual Explanations for Convolutional Neural Networks

Background

gradient saturation

Introduction 에서는 기존 Grad-CAM++ 에서의 문제점을 제기합니다. Grad-CAM++ 에서는 gradient 를 사용하는데요, gradient saturation 문제는 그라디언트에서 sigmoid function 등의 영향으로 값이 거의 소실될 수 있고, 여러 노이즈가 포함된 값이므로 saturation 문제가 발생할 수 밖에 없습니다.

False confidence


기존 CAM 과 grad-CAM 에서는 activation map의 weight가 target score를 형성하는데에 중요한 부분일 것이라는 가정을 하였습니다. 하지만 위의 상황처럼 실제 그러지 않은 경우가 많습니다.

예를 들어 위의 (2) 이미지를 확인해보면 activation map의 weight는 0.035로 제일 높지만, target score는 0.003으로 제일 낮습니다.

이처럼 기존 CAM의 가정과는 다르게 activation map의 weight와 target score는 비례하지 않는 경우가 많다는 것이 문제점입니다.

Score-CAM: Proposed Approach

Channel-wise Increase of Confidence (CIC)

Score-CAM 에서 사용된 Increase of confidence 는 DeepLIFT 등에서도 사용된 개념인데요, 이는 베이스라인과 비교하여 주어진 입력에 대한 결과 차이를 통해 중요도를 나타내는 개념입니다.
이 개념을 이용해서 저자는 아래의 식과 같은 Channel-wise Increase of Confidence 를 정의하였습니다.

C(Alk)=f(XHlk)f(Xb)whereHlk=s(Up(Alk))C(A^k_l) = f(X\circ H^k_l)-f(X_b) \newline \newline where H^k_l = s(Up(A^k_l))
  • AlkA^k_l : l 번째 k채널의 feature map
  • XX : 입력 이미지
  • UpUp : 업샘플링
  • ss : normalizing
  • ff : 모델

feature map 을 업샘플링 한 후, normalizing 하여, 입력 이미지와 point-wise manipulation을 진행합니다. 그 결과를 모델에 넣어 나온 값과 원래의 베이스라인 이미지를 모델에 넣어 나온 값을 빼서 Increase of Confidence 를 구해줍니다.

논문에서는 여기서 베이스라인 이미지를 값이 모두 0인 black 이미지로 다루었고, XbX_b 는 무시되어 최종적으로 C(Alk)C(A^k_l) 은 아래의 식으로 된다.

C(Alk)=f(XHlk)whereHlk=s(Up(Alk))C(A^k_l) = f(X\circ H^k_l) \newline \newline where H^k_l = s(Up(A^k_l))

Score-CAM 작동 방식


Phase 1에서 입력 이미지를 모델에 넣어 feature map을 계산합니다. 이 feature map은 업샘플링과 normalizing 과정을 거쳐 식 (2)식의 HlkH^k_l 가 된다. 이 HlkH^k_l 는 마스크처럼 생각할 수 있다.

Phase 2에서 입력 이미지와 phase 1에서 얻은 HlkH^k_lpoint-wise manipulation 을 진행합니다. 이러한 과정에서 식 (2)의 XHlkX\circ H^k_l 가 계산됩니다.

이 값을 모델에 넣어 또 다른 target score인 f(XHlk)f(X\circ H^k_l) 을 계산합니다. 최종적으로 C(Alk)C(A^k_l) 가 구해집니다.
Phase 1에서 구한 feature map과 phase 2에서 구한 C(Alk)C(A^k_l) 을 이용하여 아래의 식으로 linear combination 을 하여 Score-CAM을 계산합니다.

LScoreCAMc=ReLU(kakcAlk)where  akc=C(Alk)L^c_{Score_CAM} = ReLU(\sum_ka^c_kA^k_l) \newline where\; a^c_k = C(A^k_l)

전반적인 알고리즘은 다음과 같이 작성됩니다.

Activation normalize 는 다음과 같은 식으로 이루어집니다.

s(Alk)=AlkminAlkmaxAlkminAlks(A^k_l) = \frac{A^k_l-minA^k_l}{maxA^k_l - minA^k_l}

추가적으로 Batchify 를 사용을 하는데, 이는 메모리를 효율적으로 사용하기 위하여 사용됩니다. Feature map 을 원본 사이즈로 업샘플링하기에 메모리 공간이 많이 필요하는데요, 이를 나눠서 처리해주기 위한 알고리즘을 의미합니다.

Results

결과를 확인해보면, 기존의 CAM보다 recognitionlocalization evaluation metric 에서 더 뛰어난 성능을 보입니다.

Score-CAM:
Score-Weighted Visual Explanations for Convolutional Neural Networks - 논문 보기

profile
어서오세요.

0개의 댓글