티스토리 뷰
[논문 리뷰🐱🏍] CAM : Learning Deep Featrues for Discriminative Localization 2016 CVPR
ESin99 2021. 11. 20. 21:56개인적으로 논문 스터디를 진행 후 정리한 노션(Notion) 내용을 기반하여 정리한 글입니다.
1. Introduction
- 근래의 CNN에 대하여 : behave as object detectors despite no supervision on the location of the object was provided.
- Localize Objects : Fully-connected를 할 경우 손실됨
- NIN, GoogleNet에서부터 이를 피하기 위해 + high performance maintaining하기 위해 fully-connected layers 안 쓰고 GAP(Global Average Pooling) 사용
- 이 논문의 실험에서 GAP(Global Average Pooling)이 regularizer 그 이상의 역할을 하고 있음을 밝혀냄
- be able to localize the discriminative region
- The localizability of the deep features in our approach can be easily transferred to other recognition datasets for generic classification, localization, and concept discovery.
→ 이 분야를 이제 XAI라고 말하는 것이고, 논문 스터디는 XAI 위주로 진행되었습니다.
1.1 Related Work
- An appropriate architecture(CAM) → to start identifying exactly which regions of an image are being used for discrimination.
- 관련 논문 : weakly-supervised object localization, visualizing the internal representation of CNNs
- Weakly-supervised object localization
- Self-taught object localization involving masking out image regions : identifying the regions causing the maximal activations in order to localize objects
- 기존의 CNNs : multiple overlapping patches을 이용해서 output을 평가함으로 object localization일 이루어졌음
- 이것들은 localization ability를 평가하기 위함이 아니었음 (그냥 image classification)
- 이러한 접근 : end-to-end training가 아님 & localize objects를 위해 multiple forward passes가 필요함
⇒ Making them difficult to scale to real-world datasets
⇒ CAM은 end-to-end, localize objects in a single forward pass
- Global Max Pooling : limited to a point lying in the boundary, not determining the full extent of the object.
- Global Average Pooling : network가 complete extent of the object를 identify하게 함
- Class Activation Map (CAM) : to refer to the weighted activation maps generated for each image
- Visualizing CNNs
- The same network can perform both scene recognition and object localization in a single forward-pass (Zhou et al.)
- By removing the fully-connected layers and retaining most of the performance
- 이 논문에서는 discrimination에 대해서 어떤 regions가 중요한 지 highlight 해주는 접근법을 소개함
2. Class Activation Mapping (CAM)
CAM 방식의 주요 특징
- GAP 사용, Fully-connected layer의 features로 사용
- By projecting back the weights of the output layer on to the convolutional feature maps
⇒ Class Activation mapping
→ GAP(Global Average Pooling) : feature map의 공간 평균 정보를 output으로
→ Weigted sum 계산 후, CAM을 얻는 방향 (Softmax 사용)
⇒ Bias term 무시한 상태 (it has little to no impact on the classification performance)
$f_k(x, y)$ : 마지막 Convolutional Layer에서 공간 $(x, y)$, unit k의 Activation
$F^k = \sum_{x,y}f_k(x, y)$ : unit k에 대하여 GAP 수행한 결과
$S_c = \sum_kw_k^cF_k$ : Class c에 대하여, softmax의 input ($w_k^c$ : unit k에 대하여 class c에 대응하는 weight)
→ $w_k^c$는 class c에 대하여 $F^k$의 중요도(importance)를 의미함
$P_c = {\exp(S_c)\over\sum_c\exp(S_c)}$ : Class c에 대하여 softmax의 output
수식을 정리하면 다음과 같이 된다.
$S_c = \sum_kw_k^cF_k = \sum_kw_k^c\sum_{x,y}f_k(x,y)=\sum_{x,y}\sum_kw_k^cf_k(x,y)$
$M_c =\sum_kw_k^cf_k(x,y)$ : Class c에 대하여 CAM을 정의
→ image를 class c라고 분류한다면, 그 분류를 하게 만든 (x,y)공간의 activation에 대한 중요도를 나타내는 값
→ 특정 category와 많은 관련을 가진 image regions를 식별할 수 있음
$f_k(x, y)$ : the map of the presence of this visual pattern
→ GAP vs GMP : GAP가 모든 값을 고려한다는 점에서 GMP보다 모든 부분을 관련하여 판단함
CAM의 단점 : Activate된 부분, 모델이 그 부분을 보고 A라고 판단한 것일뿐, 그 부분이 A라는 것이 아님
3. Weakly-supervised Object Localization
→ CAM의 localization ability 평가
(1) Setup
- Fully-connected layer 삭제 : performance drop (문제)
- GAP 전에 convolutional layer가 높은 spatial resolution(mapping resolution)을 가지면, Localization ability가 향상됨(이 논문에서 바라는 바)
- 이를 위해, several convolutional layers를 삭제하고 3x3, stride 1, pad 1 with 1024 units를 추가함 (GAP Layer, Softmax Layer)
— 개인적인 의견이지만, fully-connected layer는 parameter때문에 어쩔 수 없이 삭제했고, 공간정보를 계속해서 convolution-pooling으로 없애기 때문에 convolution을 삭제 후 map 크기를 똑같이 유지하는 convolution을 진행하여 GAP한 것으로 보임
- 원래 CNN 모델과 비교, Localization은 backpropagation을 이용함(CAM 대신)
- GMP, GAP 차이도 비교하기 위해 GoogleNet에 GMP 적용, GAP 적용 비교함
(2) Results
- 결론 : Our approach does not significantly hurt classification performance.
[1] Classification
- Fully-connected layer를 삭제하여 performance가 조금 떨어짐 : 보완 위해 two convolutional layers 추가
- GAP Network가 classification performance를 보존해준다는 것을 알아냄
- GAP와 GMP 또한 비슷한 결과물을 냄(그러면 공간 정보를 가지는 GAP를 사용하자!)
- Classification은 기본이며 localization 또한 잘 해내야 함
[2] Localization
- CAM으로부터 bounding box를 만들어내야 함 (Localization 평가하는 법) : thresholding technique 사용 (to segment the heatmap)
- (1) CAM의 max value의 20%가 넘는 부분을 Segment
- (2) Segmentation map에서 가장 크게 connected된 component를 커버하는 bounding box를 얻어냄
- Localization error on the ILSVRC validation set : GAP한 게 top-1 val.error, top-5 val.error 다 가장 낮음!
- This network was not trained on a single annotated bounding box
- Backpropagation approach 보다 좋은 성능
- GoogleNet-GAP보다 GoogleNet이 Classification은 잘하지만, GoogleNet-GAP가 Localization은 더 잘 함
- 이 이유에 대하여 필자는 '7 x 7을 쓰는 것이 localization을 잘 못하게 만들었다' 라고 주장
- GoogleNet-GMP보다 GAP가 Localization 성능이 더 높게 나옴 (GAP가 더욱 spatial information을 잘 catch하는 것)
[3] Weakly-supervised vs Fully-supervised
Weakly-supervised : image, label → 전부를 input으로 넣어서 training 시킬 때의 문제점(Fully-supervised)
- 예기치 못한 input이 들어왔을 경우, training이 되어있지 않은 경우 Localization이 어려움
- image와 label이 아니라 label만 가지고 더 많은 정보를 가진 label을 생성한다거나, 학습 data 대비 적은 수의 labeled 데이터로 classifier를 학습 후 unlabeled data를 classifier에 통과시켜 label을 붙이고 training을 하는 등의 방식
- GoogleNet-GAP 구조로 실험함
Method
- two bounding boxes 선택 : One tight, One loose
- Top 1st and 2nd predicted classes 로부터 tight bounding / 3rd prediced class로부터 loose bounding
- 위와 같은 방법은 heuristic : trade-off between classification accuracy and localization accuracy
Result
- Heuristic한 방법 : performances를 improve함 (Validation set)
- GAP, weekly supervision을 사용하면 AlexNet의 top-5 test error 와 비슷하지만 Fully-supervised에 비해 매우 높은 error
- we still have a long way to go when comparing the fully-supervised networks with the same architecture for the localization
4. Deep Features for Generic Localization
The features learned by out GAP CNNs : identify the discriminative image regions used for categorization
- weights 얻기 위해 linear SVM on the output of the GAP layer를 train시킴
(1) Performance들 비교 : 여러 가지 dataset으로 AlexNet, GoogleNet, GoogleNet-GAP에 대하여
- GoogleNet-GAP이 가장 성능 좋음 (GAP이 들어간 것이 더 좋은 이유를 필자는 'having fewer convolutional layers'라고 주장함)
(2) CAM과 GogoleNet-GAP을 같이 이용했을 경우 Localization maps가 잘 생성되는 지에 대하여
→ The most discriminative regions tend to be highlighted across all datasets
→ Our approach is effective for generating localizable deep features for generic tasks
⇒ 이것을 어떻게 판단한 것일까? : 정량적인 해석이 없음을 의미 (tend to be,~하는 경향일뿐 경험적인 해석에 의존한 결과)
(1) Fine-grained recognition
- thresholding과 유사한 방법 : To first identify bird bounding boxes in both the train and test sets, GoogleNet-GAP 이용해서 features extracting
- 성능 향상의 결과 가져옴
- fine-grained recognition에 대해서 중요하다 정도로 마무리
(2) Pattern discovery
- images 뿐만 아니라 text or high-level concepts와 같은 patterns, common elements를 identify할 수 있는 지
- 주어진 imgae에서, network가 중요하다고 생각하는 위치가 어디인지 식별하고, 이것이 input pattern과 corresponds가 되는 지에 대해 알고 싶음
Method
- Training Linear SVM on the GAP layer of the GoogleNet-GAP Network
- Applying the CAM technique to identify important regions
Results
- Discovering informative objects in the scenes : one-vs-all linear SVM for each scene category, computing the CAMs using the the weights of the linear SVM
- High activation regions frequently correspond to objects
- Concept localization in weakly labeled images : learn concept detectors, apply our CAM technique to localize concept
- training을 positive set, negative set으로 나눠서 진행
- positive set : short phrase를 text caption으로 포함하는 image들로 구성 (ex, mirror in lake, view out of window)
- negative set : text caption없이 무작위로 선택된 image들로 구성
- training을 positive set, negative set으로 나눠서 진행
- Weakly supervised text detector : box annotation없이 text만을 highlight함
- positive set : text 포함한 Google StreetView images 350개
- negative set : outdoor scene images에서 random하게 sample된 이미지들
- Interpreting visual question answering : 이미지를 넣고 question을 넣었을 때, 답변과 함께 무엇에 근거하여 답변을 했는 지 heatmap으로 표현
5. Visualizing Class-Specific Units
GAP, ranked softmax weight를 사용하여 most discriminative한 unit을 찾아 ⇒ class-specific units of a CNN 이라고 부름
Estimating the receptive field, segmenting the top activation images of each unit
- softmax weights to rank the units for a given class ⇒ most discriminative한 부분을 찾을 수 있음 (어떤 유닛들이 이 부분을 detect하는 지)
- ex. dog face, body fur를 detecting하는 유닛들은 lakeland terrier class라고 판단하는 데 중요함
- ex. sofa와 table 그리고 fireplace를 detecting하는 유닛들은 living room class라고 판단하는 데 중요함
⇒ CNN은 사실상 a bag of words이고, 각각의 단어들은 discriminative class-specific unit이다!
6. Conclusion
Without any bounding box annotations, be able to learn to perform object localization
CAM allow us to visulize the predicted class scores on any given image, highlighting the discriminative object parts
Additional Opinion (Subjective)
(1) CAM Method : Activated region → 모델이 그 부분을 보고 A라는 결과로 판단한 것이지, 그 부분이 A라는 것이 아님, 그렇다면 결과를 보고 좋은 Method인지 판단하는 tool이 없는 것 아닐까?
(2) GAP(Global Average Pooling) : 모든지 평균을 내면 outlier의 것들이 중간값으로 평가되는데 이것을 완벽하게 방어할 수는 없을까?
(3) 이미지를 보여주는 것은 정량적인 해석이 없음 : 이것이 잘 했다고 판단할 수 있는 tool의 부재 (1과 동일한 맥락)
'Machine Learning 👥 > XAI' 카테고리의 다른 글
[논문 리뷰🐱🏍] SmoothGrad: Removing noise by adding noise 2017 ICML (0) | 2021.11.20 |
---|---|
[논문 리뷰🐱🏍] Grad-CAM: Visual Explanations from Deep Networks via Gradient-based Localization 2017 ICCV (0) | 2021.11.20 |