[Paper Review] Learning What and Where to Attend


Drew Linsley, Dan Shiebler, Sven Eberhardt and Thomas Serre
최대한 간결하게 3페이지 이내로 요약하고자 하니, 구체적인 내용은 논문을 통해 파악하기를 권고한다. https://openreview.net/pdf?id=BJgLg3R9KQ


Abstract

 Visual recognition 있어서 attention mechanism 성능 향상에 중요한 역할을 해왔다. Object recognition같은 경우 image label 부터 기인된 Weak Supervision 통해 어떤 부분에 attend 해야할 지를 결정하게 된다. 논문에서는 Network 인간이 중요하게 생각하는 image 영역에 대해서 attend 하게 하여 더욱 강한 supervision을 제공하도록 한다. 본 논문에서는 ClickMe(http://clickme.ai/)에서 제공하는 일종의 온라인 라벨링 게임을 통해서 사람이 판단한 중요한 image region 데이터들을 수집할 수 있었고, 이를 통해 ClickMe supervision을 제공하는 것이 accuracy 향상에 크게 기여하는 것을 확인할 수 있었다.

Introduction

 인간은 유아기일 때부터 어떤 부분에, 어떤 것을 시각적으로 attend하여 그 사물을 인지하는 방법을 배워나가는 복잡한 mechanism을 가지고 있다. Neural Network에서도 Attention mechanism을 적용하고는 있으나, 너무 weak 한 supervision이기에 본 논문에서는 where to, what to attend를 해야하는지 배울수 있도록 하였다.

Contribution

 1. ClickMe.ai라는 온라인 라벨링 툴을 이용하여 인간으로부터 attention map을 얻어낼 수 있었다.
 2. SE module의 extension인 GALA(the Global-and-Local attention) module을 제안하여 global contextual guidance도 제공하면서 동시에 local saliency를 제공하도록 하였다.
 3. ClickMe supervision을 GALA에 적용하는 것이 인간 observer가 뽑아낸 visual representation들과 비슷하게 뽑아냈다고 한다. 

ClickME.AI

 일종의 라벨링하는 게임이다. 어떤 ImageNet의 이미지가 주어지고, 인간이 이것에 대해서 Image의 어떤 부분이 객체를 인식하는데 있어서 가장 중요한 역할을 하였는지 <그림 1>의 왼쪽과 같이 라벨링을 해주면 딥러닝 모델에 <그림 2>와 같이 input으로 넣어준다. 딥러닝 모델(DCN)이 만약 이를 7초 내에 top-5안에 정답 라벨을 맞추면 사용자의 점수가 남은 시간 비율에 맞춰서 올라가고, 틀렸으면 다음 round로 넘어가게 된다.

<그림 1>

ClickME and Object Recognition

  본 논문에서는 Rapid vision experiment를 통해 top-down 방식의 ClickME feature와 bottom up image saliency를 나타내는 feature 중 어떤 것이 더 인간에게 잘 recognize하는지에 대해서 비교하였다. 이 실험을 통해서, ClickME approach가 object recognition에 있어서 중요한 역할을 한다는 것을 보여주고 싶었던 것이다.
 실험에서 피실험자들은 60명씩 나뉘어서 한 그룹은 ClickME map을 보고 0.55초 만에 주어진 feature에 대해서 판단을 내려야했고, 다른 그룹은 bottom-up saliency map을 보고 판단을 내려야했다. 
 참가자들은 전혀 손대지 않거나 preprocessing을 거친 이미지(중요한 image 영역에서 discontinuous하도록 하는등)를 보게 하였다. 또한, food-fill algorithm을 통해서 attention map의 픽셀별로 중요도를 score로 계산하였다. 계산된 score를 가지고, 몇퍼센트를 인간에게 노출시켰을 때 인간이 얼마나 정확하게 object를 인식하는지에 대한 성능 표는 <그림 2>와 같다. 

<그림 2>

 결과적으로, ClickMe attention map이 bottom-up 보다 더 human에게 잘 인식되고 있는 것을 볼 수 있다.

Proposed Network Architecture

 Architecture
 GALA는 input layer로 들어오는 U 에 대해서 attention mask A(spatial dimension은 U와 동일) 를 적용하여 global과 local attention을 적용하도록 했다. U의 height, width, channel수는 H, W, C로 표기한다. 
 GALA의 global attention은 SE module에 기반하여 만들어졌다. Global attention map은 global average pooling을 통해 1x1xC의 shape을 가지게 된다. 이를 Squeeze and Excitation Network처럼 2개의 MLP를 거쳐서 shrink, expanding을 하게 된다. 이 때, reduction ratio 는 r로 주고, <식 1.> 과 같이 나타낼 수 있다. 중간에 시그마는 ReLU를 나타내며 채널간의 complex dependencies를 잘 학습할 수 있도록 도와준다. 



<식 1. Squeeze and Excitation>

 Local saliency attention을 위하여, input U에 대해서 1x1 conv(input channel C, output channel C/r)을 적용하고, ReLU를 적용한다. 그 다음, 1x1 conv(input chanel C/r, output channel 1)를 <식 2>와 같이 적용한다.



* 는 Convolution을 나타낸다. 
<식 2. Local Saliency Attention>

전체적인 GALA의 구조는 <그림 3> 과 같다. 

< 그림 3. GALA module>

 그림에서 보면, Global, local attention map을 가지고 먼저 G*와 S*를 만든다. 이 때, G*와 S*의 shape는 H,W, C라고 하는데, G*의 경우 g와 U를 channel wise하게 곱해주고, S*의 경우 S와 U를 channel wise하게 곱해주지 않았나 싶다. 논문에서는 이부분에 대해서 자세히 언급된 바가 없다..  이렇게 만들어진 G* 와 S*를 합쳐서 Activity A를 만드게 되는데, additive strategy혹은 multiplication strategy중 어떤게 더 잘 동작하는지 모르겠어서 각각 additive와 multiplication에 대해서 어떤 것을 더 크게 작용 시킬지 channel별로 학습가능한 parameter를 주었다고 한다. <식 3>을 참고하면 되겠다. 


Activation 으로 tanh를 사용하였다고 한다.
<식 3. Integration >

 이렇게 나온 A를 가지고 사람이 labeling해준 attention map ClickMaps와 동일해주게끔 추가적인 loss를 걸어줘서, GALA가 human이 봤을 때 object를 인지하기 좋은 feature map을 뽑아주도록 학습되게 된다. 

Attention module에 loss를 이런식으로 human friendly하게 걸어주었다는 점, attention feature map에다가 loss를 걸어주었다는 점이 인상적이다. CBAM에서는 attention map에 loss를 걸어주고 이런게 없어서 어떻게 보면 self Attention map이라고 밖에 못했는데, 이 논문은 이러한 loss를 걸어줘서 인간으로부터의 supervision을 굉장히 강하게 걸어주었다라고 개인적으로 생각된다. 

 계속해서 A를 가지고, input U와 element wise하게 곱해줘서 U'를 생성하게 된다. 

Co-Training GALA with ClickMAps


 total loss는 위와 같이 model output과 label간의 cross entropy loss와 Click maps에 대한 loss의 합으로 설계하였다. 이 때, A(l)은 layer l번째에서의 GALA attention map을 나타내고 R(l)은 Click Map을 bicubic interpolation을 통해 A(l)과 spatial size를 같게한 것이다. L2 norm을 적용하여 loss 값을 조정하였고 lambda값은 실험적으로 조정하였다고 한다. ResNet50의 경우 6으로 줬을 때 object recognition accuracy와 Click Me map prediction의 정확도가 둘다 향상되었다고 한다.

결과

결과는 간략하게 정리하겠다.
<GALA ResNet50의 성능: ClickMe test dataset에 대해서 실험 진행>
* maps는 Click Maps에 대한 유사도를 측정한 결과이다. 

실험 regime는 300K개의 image sample로 학습을 하였고, 이 때 SE module을 사용한 ResNet은 굉장히 오버피팅 되는 경향을 보였고 GALA는 상대적으로 매우 좋은 성능을 보여주었다.


COCO 데이터에서 ImageNet과 동일한 클래스를 가지는 image들에 대해서 attention map을 아래와 같이 나타내보았다. ClickMe Maps를 통한 additional loss로 학습한 모델이 동물의 얼굴, 자동차의 바퀴, 등사람이 봤을 때 인지적인 feature에 대해서 attention이 많이 되있는 것을 볼 수 있다. 그에 비해 additional loss를 주지 않은 모델은 interpretability가 없는 attention map을 보여준다.


discussion 하고 싶은 부분: g, s 에서 G*, S*로 어떻게 만들어준건지, 그리고 L2 norm을 적용하였는데 구체적으로 어떻게 적용한 건지? channel wise하게 적용한건지? 아니면 pixel값 전체(HxWxC)에 대해서 L2 norm한건지?

댓글