XAI

Learning Deep Features for Discriminative Localization

loosiu 2023. 11. 20. 10:47

Abstract

image level label에 학습되는 것에도 불구하고 주목할만한 localization ability를 가지기 위해 cnn을 어떻게 명쾌하게 할 수 있는지 빛을 비춘다.
이 기술은 이전에 정규화 학습에 대해 평균으로 제안되어지는 동안, 우리는 image에서 cnn에 내포된 attention을 드러내는 일반적인 지역화할 수 있는 깊은 representation을 만든다는 것을 알아냈다.
global average pooling의 분명한 단순성에도 불구하고 bounding box annotation 학습없이 ILSVRC 2014에서 object localization에 대해 37.1% top 5 error를 달성 할 수 있다. 
classification task를 해결하는 것에 대해 학습되는 것에도 불구하고 network는 차별적인 image region을 localize할 수 있다는 것을 다양한 실험으로 증명한다.

 

 

 

Introduction

object의 위치에 대한 map은 제공되어지지 않았음에도 불구하고 최근 연구는 cnn의 다양한 layer들의 convolutional unit이 object detector로 하는 것으로 나타냈다.
최근에 높은 성능을 유지하는 동안 Network in Network(NIN)와 googlenet과 같은 인기 있는 fully convolutional neural network는 parameter의 수를 최소화하기 위해 fc layer의 사용을 피하는 것이 제안되어졌다.

fc layer의 사용을 피하기 위해 학습하는 동안 overfitting을 막는 구조적인 regularizer로 역할하는 global average pooling을 사용한다.

global average pooling layer의 이점: 
심지어 network가 학습되어지지 않는 것으로, task의 넓은 다양성에 대한 single forward pass에 쉽게 식별가능한 image region을 확인하는 것을 허용한다.

우리의 방법의 단순성에도 불구하고, ILSVRC benchmark에서 weakly supervised object localization에 대해 우리의 최고 network는 fully supervised alexnet에 의해 34.2% top 5 test error에 가까운 37.1% top 5 test error를 달성한다.
그러므로, 우리의 방법에 있는 deep feature의 localizability가 일반적인 classification, localization, concept discovery에 대한 다른 recognition dataset을 쉽게 이동시킬 수 있는 것을 입증한다.

 

 

 

* Related Work

1. weakly-supervised object localization
우리의 방법은 end to end로 학습되어졌고 단일 forward pass로 object를 localize할 수 있다.
각 image에 대해 생성된 weighted activation map을 참조하기 위해 class activation map을 사용한다.

2. visualizing cnns
우리의 방법은 image의 region들이 식별력에 대해 중요하다는 것을 강조할 수 있다.

 

 

Class Activation Mapping

우리는 Network in Network와 googlenet과 비슷한 network 구조를 사용한다.
network는 convolutional layer로 주로 구성하고, final output layer 전에 convolutional feature map에서  global average pooling을 실행하고 훌륭한 output을 만드는 fc layer에 대한 feature로서 사용한다.


class activation mapping 기술: convolutional feature map에서 output layer의 weight 뒤쪽에 투과함으로써 image region의 중요도를 식별할 수 있다.

global average pooling은 마지막 convolutional layer에서 각 unit의 feature map의 공간적 평균을 도출한다.
이 value의 가중치된 합은 마지막 output을 생성하는데 이용된다.
우리는 class activation map을 얻기 위해 마지막 convolutional layer의 feature map의 가중치된 합을 계산한다.

 

  • image가 주어질 때
    $fk(x,y)$: 공간적 위치(x,y)에서 마지막 convolutional layer에서 유닛 k의 활성화 함수를 대표
    유닛 k에 대한 $F^k$(gloabal average pooling의 결과): $\sum_{x,y} fk(x,y)$

 

  • class c가 주어질 때
    $S_c$(softmax으로 input): $\sum_k w^c_kfk$($w^c_k$: 유닛 k에 대해 class c에 일치하는 weight)
    $w^c_k$: class c에서 $F_k$의 중요성
    $P_c$(class c에 대한 softmax의 output): exp$(s_c)$/$\sum_c$ exp$(s_c)$


softmax의 input bias를 0으로 설정 -> classifciation 성능에 거의 영향이 미치지않는다

$f_k$: visual pattern의 존재에 대한 map


class activation map은 다른 공간적인 location에서 visual pattern의 존재의 가중치된 linear sum이다.
input image의 크기로 class activation map을 upsampling함으로써 우리는 특정한 카테고리에 대해 가장 관련있는 image region을 확인할 수 있다.

 

다른 카테고리에 대한 discriminative region은 주어진 image조차도 다른 것을 관찰한다.

 


-- Global average pooling (GAP) vs global max pooling (GMP)

map의 평균을 할 때, value는 모든 low activation이 특정한 map의 output을 줄임으로써 object의 모든 식별가능한 부분을 찾음으로써 최대화되어졌다.
반면에 GMP에서 가장 discriminative region을 제외한 모든 image region에서 낮은 점수는 최대값으로 수행하므로 점수에 영향을 주지 않는다.
GMP는 GAP처럼 비슷한 classification 성능을 보였고, GAP는 localization에서는 GMP를 능가한다.

 

 

 

Weakly-supervised object localization

* Setup

유명한 cnn(alexnet, vggnet, googlenet)에서 CAM 사용의 효과를 평가한다.
일반적으로 network 각각에 대해 우리는 마지막 output 전에 fc layer를 제거하고 fully connect된 softmax layer 뒤따르는 GAP로 대체한다.
fc layer를 제거하는 것은 network parameter를 줄이지만 classification 성능을 떨어트린다.

GAP전에 마지막 convolutional layer가 mapping resolution이라고 칭하는 더 높은 공간적인 resolution을 가질 때 network의 localization 능력은 향상되어졌다.


이것을 하기 위해 network 몇개로부터 여러개의 convolutional layer를 제거했다.
alexnet: 13x13의 mapping resolution에서 conv5 뒤에 layer를 제거
vggnet: 14x14의 mapping resolution에서 conv5-3 뒤에 layer를 제거
googlenet: 14x14의 mapping resolution에서 inception4e 뒤에 layer를 제거  


각 network 위에서,  gap layer와 softmax layer 뒤에 오는 1024 unit을 가진 3x3 크기의 convolutional layer, stride 1, pad 1을 더한다.
각각의 network는 마지막 network인 Alexnet gap, vggnet gap, googlenet gap 각각에 1000 way object classification 결과에 대해 ILSVRC의 1.3M training image로 fine tune했다.

 

 

* Results

-- classification

우리는 다양한 network로부터 추가적인 layer를 제거할 때 1~2% 작은 성능 저하가 있는 대부분의 경우를 발견했다.
alexnet은 fc layer의 제거에 대부분 영향이 있었다
alexnet gap network에서 gap 결과를 내기 전에 두 개의 convolutional layer를 추가한다.
종합적으로, classification 성능은 gap network에 대해 보존되어졌다.
object category와 bounding box location 둘 다 정확하게 확인하는 것을 포함하는 것으로 localization에서 고성능을 달성하기 위해 classification에서 좋은 성능을 내는 network가 중요하다는 것에 주목한다.

 


-- localization

localization 성능을 위해서, bounding box와 연관된 object category를 생성할 필요가 있다.

  • cam으로 bounding box를 생성하기 위해 heatmap을 segment하는 간단한 thresholding 기술
    1. 값이 cam의 max value의 20%를 초과하는 region을 먼저 segment한다. 
    2. segmentation map에서 가장 크게 연결된 요소를 다루는 bounding box를 가진다.

 

gap network가 top 5에서 43%의 가장 낮은 localization error를 달성한 googlenet gap으로 모든 baseline 방법을 능가한다.
single annotated bounding box에서 학습되지 않은 network이다.
cam 방법이 backpropagation 방법을 상당히 능가함
classification에서는 반대였음에도 불구하고 googlenet gap이 localization에서 googlenet을 상당히 능가한다.
googlenet gap가 object의 크기를 확인하기 위해 max pooling보다 average pooling의 중요성을 묘사하는 합리적인 차이로 googlenet gmp를 능가한다.

우리는 다른 bounding box selection 전략이 있다. 
최고로 예측된 class와 두번째로 좋게 예측된 class와 세번째로 좋게 예측된 class로부터 one loose bounding box의 cam으로부터 두개의 bounding box를 고른다.
이 경험적 방법은 classification 정확도와 localization 정확도 사이에 trade off이다. 

 

 

 

Deep features for generic localization

GAP CNN에 의해 학습된 feature는 일반적인 feature와 bonus 같은 것에서 잘 기능하고 특정한 task에 대해 학습되지 않음에도 불구하고 범주화에 사용하는 discriminative image region을 알아본다. 
일반적인 softmax layer와 비슷한 weight를 얻기 위해서, GAP layer output에서 linear SVM을 학습한다.

종합적으로, 우리 방법은 일반적인 task에 대해 지역화할 수 있는 deep feature을 생성하는데에 효과적이다.

 

 

* Fine-grained recognition

Dataset: 200개 새 종류 있는 CUB-200-2011 dataset(contain bounding box annotation)
11788 image = 5994 training image + 5794 test image 

train, test 둘 다 bounding box annotation없이 full image일 떄 63.0% 정확도로 존재하는 방법과 비슷하게 성능을 보인다.
bounding box 있을 때, 정확도 70.5%로 올랐다.
training과 test할 때 bounding box 안에 crop으로부터 다시 feature를 추출하기 위해 googlenet gap을 사용한다.
67.8%로 성능이 올랐다.
localization 성능은 카테고리 간의 구별이 미묘하고 더 집중된 image crop을 사용하면 더 나은 식별이 가능하므로  fine grained recognition에 특히 중요합니다.

 

google gap: 0.5 IOU 기준에 따라 image의 41.0%에서 새의 위치를 정확하게 파악할 수 있다.

 

 

* Pattern discovery

deep feature를 사용하는 3개의 pattern discovery 실험

 

-- Discovering informative objects in the scenes

SUN dataset: 전체 4675개 fully annotated image 중에서 적어도 200개 fully annotated image 포함(10 scene category)

각 category에 대해 one vs all linear SVM을 학습하고 linear SVM의 가중치로 CAM을 계산한다. 

 

 

-- Concept localization in weakly labeled images

hard negative mining 알고리즘을 사용해서 detector 개념을 학습하고, image의 개념을 localize하기 위해 CAM 기술을 적용한다.
짧은 문구에 대한 detector 개념을 학습하기 위해, positive set은 text caption에서 짧은 문구를 포함하는 image로 구성한다.
그리고 negative set은 text caption에 관련된 단어없이 랜덤으로 선택된 image로 구성한다.
문구는 전형적인 object 명칭보다 훨씬 더 추상적임에도 불구하고 CAM은 개념에 대해 유익한 region을 localize한다.

 

-- weakly supervised text detector

negative set: outdoor scene image으로부터 랜덤하게 sample되어있다.
positive set: text를 포함하는 image를 사용하는 weakly supervised text detector로 학습한다.

 

-- interpreting visual question answering

우리는 우리의 방법과 visual question answering을 위해 제안된 baseine에서 localizable deep feature를 사용한다.
test standard에서 종합적으로 55.89% 정확도를 가진다.

 

 

 

Visualizing class-specific units

cnn의 다양한 layer의 convolutional unit은 object나 scene과 같은 고수준 개념과 texture나 material와 같은 저수준 개념을 확인하는 visual concept detector로 역할을 한다.
network가 깊어질수록 unit은 점점 식별된다.
그러나 많은 network에 fc layer가 고려될 때, 다른 카테고리를 확인하기 위해서 다른 unit의 중요성을 확인하기 어려울 수 있다
gap와 정렬된 softmax weight를 사용해서, 우리는 주어진 class에 대해 대부분 식별이 되는 unit을 시각화할 수 있다.

 

마지막 convoltional layer에 각 unit의 image에 최고의 activation으로 segment하는 것과 receptive field를 평가하는 것처럼 비슷한 절차를 했다.
주어진 class에 대해 unit을 정렬하는 softmax weight를 사용한다.
그림에서 분류에 대부분 식별하는 object의 부분를 확인할 수 있고 unit은 이 부분을 detect한다.
그러므로 cnn은 각 word가 식별하는 class별 unit인 bag of word를 학습하는 것을 추론한다.  
class별 unit의 결합은 cnn이 각 image를 분류하는데 도움이 된다

 

 

 

Conclusion

global average pooling을 가진 CNN에 대한 CAM이라고 불리는 일반적인 기술을 제안한다.
bounding box annotation 사용하는 것 없이 object localization을 수행하는 학습을 하기 위해 classification 학습을 받은 CNN을 사용한다.
cam은 cnn에 의해 탐지된 식별가능한 object part를 강조하는 주어진 image에서 예측된 class score를 시각화한다.
global average pooling cnn이 정확한 object localization을 수행할 수 있는 것을 증명하기 위해서 ILSVRC benchmark에서 weakly supervised object localization으로 우리의 방법을 평가한다.
우리는 cam localization 기술이 다른 visual recognition task로 일반화하는 것을 증명한다.
즉, 우리의 기술은 task을 위해 CNN에 의해 사용된 식별의 기초를 이해하는 것에 다른 연구자들을 돕기 위해 일반적인 지역화할 수 있는 deep feature를 만든다.