iMTE

Informative Class Activation Maps 내용 정리 [XAI-20] 본문

Deep learning study/Explainable AI, 설명가능한 AI

Informative Class Activation Maps 내용 정리 [XAI-20]

Wonju Seo 2021. 9. 6. 11:19

논문 제목 : Informative Class Activation Maps

논문 주소 : https://arxiv.org/abs/2106.10472

 

Informative Class Activation Maps

We study how to evaluate the quantitative information content of a region within an image for a particular label. To this end, we bridge class activation maps with information theory. We develop an informative class activation map (infoCAM). Given a classi

arxiv.org

주요 내용 정리:

1) 저번에 리뷰한 Combinational CAM (https://wewinserv.tistory.com/167)과 비슷하게 target class (i.e., highest probability class)로 생성되는 CAM만 사용하는 것이 아닌, 다른 class의 CAM을 사용함으로써, 보다 정확한 bounding box를 만들어 weakly supervised object localization (WSOL) 문제에서 기존 CAM보다 좋은 성능을 보여주었다.

2) 먼저, CAM에 대해서 알아보면, 주어진 $K$개의 feature map $g_1,...,g_K$에서 fully connected layer의 weight matrix $W\in \mathbb{R}^{M\times K}$의 $w_k^y$는 $k$ feature map의 class $y$에 대한 weight을 의미한다. 

$g_k(a,b)$는 $k$ 번째 feature map의 각 point $(a,b)$의 importance로 해석 할 수 있고, 특정 class $y$에 대한 $(a,b)$ 위치에서의 중요도는 다음과 같이 나타낸다.

$$M_y(a,b)=\sum_k w_k^y g_k (a,b)$$

CAM은 특정 class $y$를 분류하기 위한 feature space에서 가장 중요한 부분을 highlight 하는데, 특정 class $y$에 해당하는 softmax layer에 입력되는 입력은 다음과 같다.

$$\sum_{a,b}M_y(a,b) = n(x)_y$$

직관적으로 $w_k^y$는 특정 class $y$의 $k$ 번째 feature map의 전체적인 중요도를 의미하며, $M_y(a,b)$는 input image $x$를 class $y$를 유도하는 $(a,b)$ 위치에서 feature map의 중요도를 의미한다.

저자는 기존 연구로 부터 input image와 label 쌍에서 input image와 label의 영역으로 확장하여 label로 mutual information이 높은 영역을 캡처하도록 하였다.

Mutual information은 두 variables 사이의 point-wise mutual information의 expectation으로 다음과 같이 나타낸다.

$$\mathbb{I}(X,Y)=\mathbb{E}_{x,y}[PMI(x,y)]$$

$$PMI(x,y)=n(x)_y - \log\sum_{y'=1}^M exp(n(x)_{y'})+\log M$$

PMI는 $y$가 log-sum-exp에서 maximum argument가 될 때, $\log M$에 가까워진다. Classificaiton에 가장 의미있는 region을 찾기 위해서 true label 과 다른 labels의 평균 사이의 difference를 계산하였다.

$$Diff(PMI(x)) = PMI(x,y^*)-\frac{1}{M-1}\sum_{y'\neq y^*}PMI(x,y')$$

$$=\sum_{(a,b)\in g}w^{y^*}g(a,b)-\frac{1}{M-1}\sum_{y'\neq y^*}w^{y'} g(a,b)$$

결과적으로 infoCAM은 다음과 같이 정의된다.

$$M_y^{Diff}(R)=\sum_{(a,b)\in R}w^y g(a,b) - \frac{1}{M-1}\sum_{y'\neq y}w^{y'} (a,b)$$

infoCAM은 다른 labels에 대한 분류 경계를 결정하는 영역을 강조 표시합니다. (위 식을 보면, 원하는 class로 생성되는 부분은 집중 하고, 다른 class에서 주목되는 부분은 average한 다음 제거함으로써, background 영역은 suppressing 하는 것으로 보인다.)

다음으로, average 대신에, most-unlike label을 보는 방법으로 infoCAM+은 다음과 같이 정의된다.

$$M_y^{Diff+}(R)=\sum_{(a,b)\in R}w^y g(a,b) - w^{y'}g(a,b)$$

$$y'=argmin_m \sum_{(a,b)\in R}w^m g(a,b)$$

InfoCAM 방법은 밑의 그림에 과정이 나와있다.

(사실 복잡해보이는데, 복잡한게 1도 없다. feature map에서 infoCAM을 뽑아내고 거기서 bounding box를 만든 다음에 upsampling 하여, bounding box를 만들어 WSOL 문제를 해결하는 것이다.)

3) 결과를 보면 먼저, CUB-200-2011 dataset과 Tiny-ImageNet dataset 에서 infoCAM은 가장 좋은 성능을 보여주었다.

위식에서 ADL은 Attention-based Dropout Layer로 image region에서 가장 discriminative한 부분을 random하게 제거함으로써, CNN-based classifier가 entire object를 고려하도록 한다.

Ablation study의 결과, 모든 기능을 사용하는 것이 성능면에서 이득임을 알 수 있다.

시각화 결과를 보면, 다음과 같다. 기존 CAM 방법보다 bounding box를 잘 잡고 있는 것을 알 수 있다.

+

최근 트렌드인지 모르겠지만, 다른 class에서 생성되는 CAM을 사용해서 좀 더 precisely 한 CAM을 만들어내는 방법들이 제안되고 있는 것으로 보인다. 다른 class를 사용함으로써, background에 대해 suppressing을 하고 이는 결국 target class의 object에 대한 더 나은 localization을 유도하는 것이다.

Comments