iMTE

Towards Learning Spatially Discriminative Feature Representation 내용 정리 [XAI-21] 본문

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

Towards Learning Spatially Discriminative Feature Representation 내용 정리 [XAI-21]

Wonju Seo 2021. 9. 13. 13:40

논문 제목 : Towards Learning Spatially Discriminative Feature Representation

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

 

Towards Learning Spatially Discriminative Feature Representations

The backbone of traditional CNN classifier is generally considered as a feature extractor, followed by a linear layer which performs the classification. We propose a novel loss function, termed as CAM-loss, to constrain the embedded feature maps with the c

arxiv.org

주요 내용 정리 :

1) 저자는 class activation map (CAM)을 loss에 포함시켜서 더 나은 image classification, regularization effect, transfer learning, few shot learning, 마지막으로 knowledge distilation을 유도하는 방법을 제시하였다. 결과에서는 CAM loss가 성능을 향상시키는데, CAM이 background에 대한 effect를 suppress하고 discriminative한 부분들 더 강조하게 되는 것이다.

밑의 그림을 보면 class-agnostic activation map (CAAM) 결과를 보면, cross entropy (CE)를 사용한 것 보다 CAM-loss를 사용한 결과가 lable accuracy가 높다는 것을 알 수 있다. CE 경우, CAAM은 background 혹은 주요하지 않은 (ox를 보면 검정색 part는 black bear와 비슷하다) 부분까지도 고려한다. 반면, CAM loss는 이런 부분 보다는 더 discriminative 한 부분 (ox를 보면 얼굴 쪽) 부분을 더 보고, 주요하지 않은 부분과 background는 suppress 하는 것을 확인 할 수 있다.

2) 먼저, CAM을 정의하자

$f_k(x,y)$는 $k$-th feature map의 (x,y)에서의 activation을 의미한다. Global average pooling layer를 통과한 이후 $f_k$는 다음과 같이 변환된다.

$$F_k=\frac{1}{H \times W}\sum_{x,y}f_k (x,y)$$

위 식에서 $H$ 와 $W$는 feature map의 크기이다. 주어진 target class $i$에 대해서, softmax layer의 입력은 다음과 같이 표현된다.

$$z_i = \sum_k w_k^i F_k$$

위 식에서 $w_k^i$는 unit $k$에 대한 class $i$에 대응되는 weight이 되고, class $i$에 대한 $F_k$의 중요도를 나타낸다. 최종적으로, $z_i$는 다음과 같이 표현된다.

$$z_i=\frac{1}{H \times W}\sum_k w_k^i \sum_{x,y}f_k(x,y)$$

$$=\frac{1}{H \times W}\sum_{x,y}\sum_k w_k^i f_k(x,y)$$

위 식으로 부터 CAM은 다음과 같이 표현된다.

$$CAM_i(x,y)=\sum_k w_k^i f_k(x,y)$$

다음으로 CAAM 은 다음과 같이 표현된다.

$$CAAM(x,y)=\sum_k f_k(x,y)$$

$CAAM$과 $CAM$을 min-max normalization 한 이후에 $L_{cam}$은 다음과 같의 정의된다.

$$L_{cam}=\frac{1}{H \times W}\sum_{x,y}||CAAM'(x,y)-CAM'_i(x,y)||_{l1}$$

위 식을 통해서, $CAAM'$이 $CAM'$에 가깝게 되도록 될 것이다.

$L_{ce}$는 다음과 같이 정의 되며 (Cross-entropy), 최종 CAM-Loss는 다음과 같다.

$$L_{ce}=- \log \frac{e^{z_i}}{\sum_j e^{z_j}}$$

$$CAM-loss = \alpha L_{cam}+L_{ce}$$

$\alpha$는 combination ratio이다. 주요한 점은, $L_{ce}$는 $W$를 update 하고, $L_{cam}$은 $\theta$를 update 한다. 이렇게 하는 이유는 $W$와 $L_{cam}$ 사이의 correlation을 제거하기 위함이다. (여기서 $W$는 global averge pooling 이후의 fully connected layer의 weights을 의미하고, $\theta$ 는 backbone의 weights이다.)

$\alpha$의 경우 다음의 식을 통해서 정하는데, 특정 epoch을 넘어가면 c가 0이 아니고, 특정 epoch 전에는 c가 0이 된다. 이렇게 하는 이유는 처음 학습시에 생성된 CAM은 너무 discrete하며, 마지막 epoch에 가까울 수록 CAM이 더 나은 heatmap을 만들어 주기 때문이다. $\alpha$는 밑의 ablation test를 통해서 결정되었다.

Knowledge distilation의 기존 방법은 weak student가 strong teacher를 따라하게 하는데, 이때 그들 사이의 Kullback-Leibler divergence를 최소화하는 방법을 사용했다. 최종적인 Loss는 다음과 같다.

$$L=\beta L_{ce}+(1-\beta)L_{kd}+\gamma L_{ccm}$$

위 식에서 $\beta$와 $\gamma$는 combine ratio 이다. 위 식을 자세하게보자면, 

$$L_{kd}=\frac{1}{n}\sum_{i=1}^n \tau^2 (p_{ti}^\tau \log p_{ti}^\tau - p_{ti}^t \log p_{si}^\tau)$$

위 식에서 $\tau$는 temperature factor, $p_{si}^\tau$는 studnet의 soft target이고, $p_{ti}^\tau$는 teacher의 soft target 이다.

다음으로, $L_at$는 두 모델의 attention map의 일치 정도를 보는 것으로, 다음과 같다.

$$L_{at}=||CAM'_{si}-CAM'_{ti}||_{l1}$$

위 식에서 $CAM'_{si}$은 normalized student CAM, $CAM'_{ti}$는 normalized teacher CAM 을 의미한다.

저자가 제안하는 CAAM-CAM matching (CCM)은 AT와 다르게 student의 CAAM을 사용하는 점이 다르다. 이는 다음과 같이 표현된다.

$$L_{ccm}=||CAAM'_s - CAM'_{ti}||_{l1}$$

위 식에서 $CAAM'_s$는 normalized student CAAM 이다.

(논문에서 $L_{ccm}$이 $L_{at}$만 사용하는 것 대비 왜 좋은 효과를 나타내는지 나타내고 있는데, 이 부분은 한 번 읽어보길 바란다.)

전체적인 CAM-loss의 구조는 다음과 같다.

3) Results

(1) Image classification, apply to various network structure : 밑의 표를 보면, CAM-loss를 사용했을 때, top 1 error가 모든 모델, 두 데이터 셋에서 낮아졌음을 확인 할 수 있다.

또한, 밑의 그림을 보면 CAM-loss가 regularization effect를 줄 수 있음을 보여주고 있다.

(2) Combine with regularization methods : 다양한 regularization methods를 사용 했을 때에도, CAM-loss를 사용하거나 같이 사용하는 경우 상당한 성능 향상을 보여주었다.

(3) Compare with other loss functions : 다른 loss function 과도 비교할 때, 성능이 향상되었음을 알 수 있다.

(4) Transfer learning : ImageNet-1k 에 pre-trained 된 모델을 CUB과 stanford dogs 데이터 셋에 fine-tuning을 했을 때에도, 단순 CE를 사용한 경우보다 CAM-loss를 사용한 경우 더 나은 성능을 보여주었다.

(5) Few shot learning : few shot learning case에 대해서도 CAM loss를 사용하는 경우 더 나은 성능을 보여 주었다.

여기서 왜 CAM-loss가 few shot learning 성능을 향상시켰을까? 저자는 CAM-loss가 background에 대한 effect를 suppress 하기 때문이다. 밑의 그림을 보면 few shot image classificaiton은 background에 영향을 받는 것으로 보인다.

(6) Knowledge distilation : Knowledge distilation 결과를 보면, KD, AT에 비해서 제안된 CCM이 더 나은 성능을 보여주었음을 알 수 있다.

+

최근 연구에서 CAM이 background effect를 제거하고 discriminative한 부분은 더 강조하는 역할로써 성능 향상이 되는 효과를 보여주고 있는 것으로 보인다. 아마 CAM 사용은 성능 향상에 필수적으로 사용 될 것으로 생각된다. 이는 모델의 설명가능성이 성능 향상에 도움된다는 것을 의미할 수 있음으로 매우 유의미한 발전으로 해석된다.

Comments