일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Unsupervised learning
- Explainable AI
- Cam
- xai
- AI
- 머신러닝
- 코딩 테스트
- python
- Artificial Intelligence
- Deep learning
- keras
- 메타러닝
- Machine Learning
- 코딩테스트
- meta-learning
- 기계학습
- 딥러닝
- Class activation map
- Score-CAM
- grad-cam
- SmoothGrad
- 인공지능
- 백준
- 시계열 분석
- coding test
- cs231n
- Interpretability
- 설명가능한
- GAN
- 설명가능한 인공지능
- Today
- Total
iMTE
Towards Learning Spatially Discriminative Feature Representation 내용 정리 [XAI-21] 본문
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
주요 내용 정리 :
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 사용은 성능 향상에 필수적으로 사용 될 것으로 생각된다. 이는 모델의 설명가능성이 성능 향상에 도움된다는 것을 의미할 수 있음으로 매우 유의미한 발전으로 해석된다.