논문

하루에도 수만개의 글자를 읽고 있습니다. 하루에도 수백장의 종이를 들춰 읽습니다.
이것은 그 읽기에 대한 일기입니다.

Residual Attention Network for Image Classification

1. Introduction

이 논문에서는 Residual Attention Network을 제안합니다. 이것은 attention mechanism 을 아주 깊은 구조의 컨볼루셔널 네트워크에 적용한 것입니다. 이 네트워크는 여러개의 Attention Module로 구성되어 있고, 각각의 모듈은 attention-aware feature를 생성합니다. 이 각 모듈의 attention aware feature는 레이어가 깊어질 수록 적절하게 변화합니다.

이 모델은 아래와 같은 특징을 가집니다.

  1. Attention Module의 수를 증가시키면 성능이 일정하게 늘어납니다. 또한 각각의 모듈은 서로 다른 형식의 attention을 감지하도록 학습됩니다.
  2. 기존의 딥 네트워크 구조에 바로 적용하여 end-to-end로 학습이 가능합니다.

논문이 기여한 부분은 아래와 같습니다.

  1. Stacked network structure: 여러 Attention module을 쌓아서 구성하였기 때문에, 각 모듈들은 서로 다른 형태의 attention을 감지하도록 학습됩니다.
  2. Attention Residual Learning: 단순히 모듈을 쌓는 것으로는 성능이 하락하기 때문에 attention residual learning mechanism을 사용하였습니다.
  3. Bottom-up top-down feedforward attention: 사람의 자세 추정1이나 세그멘테이션2,3,4에서 좋은 성능을 보인 bottom-up top-down feedforward 구조를 적용하여 특징에 soft weight를 추가하는 용도로 사용하였습니다.

2. Related Work

3. Residual Attention Network

Residual Attention Network는 여러 Attention Module을 쌓아서 만들었습니다. 각 Attention Module은 마스크와 트렁크(trunk), 두개의 브랜치로 나누어 집니다. 트렁크 브랜치는 특징을 만들어내는 브랜치로 기존의 어떤 네트워크 구조로 변경이 가능합니다. 트렁크 브랜치의 출력을 입력 $x$에 대해 $T(x)$라고 할 때, bottom-up top-down 구조를 사용하는 마스크 브랜치는 출력 특징 $T(x)$와 같은 크기를 갖는 마스크 $M(x)$를 학습합니다. 이 마스크는 출력 측징에 soft weight를 적용하는 역할을 합니다. Bottom-up top-down 구조는 fast feedforward와 feedback attention 처리를 흉내냅니다. 출력 마스크는 Highway Ntework 5와 비슷하게 트렁크 브랜치의 게인을 조절하기 위해 사용됩니다. 최종적으로 Attention Module의 출력은 다음과 같습니다.

$H_{i, c}(x) = M_{i, c}(x) * T_{i,c}(x)$

여기서 $i$는 특징의 지역 위치를 나타내며 $c$는 채널을 나타냅니다.

여기서 사용된 마스크는 인퍼런스 시 특징을 선택하는 역할을 할 뿐 아니라 그래디언트 업데이트를 필터링 하는 역할도 담당합니다. 마스크 브랜치에서 입력 특징에 대한 그래디언트 마스크는 다음과 같습니다.

$$ \frac{\partial M(x, \theta) T(x, \phi)}{\partial \phi} = M(x, \theta) \frac{\partial T(x, \phi)}{\partial \phi}$$

여기서 $\theta$는 마스크 브랜치의 파라미터이며, $\phi$는 트렁크 브랜치의 파라미터입니다. 이런 성질은 잘못된 그래디언트가 업데이트 되는 것을 막도록 하여 Attention Module이 노이즈에 강해지도록 합니다.

여러 모듈을 쌓는 대신 6처럼 하나의 네트워크로 마스크를 생성하는 방법도 생각할 수 있지만, 몇가지 단점이 있습니다. 먼저 복잡한 씬이나 많은 모양 변화를 가지는 경우에는 서로 다른 방식의 attention을 가지도록 모델링 되어야 합니다. 그렇게 되려면 각 레이어의 특징들이 서로 다른 attention 마스크를 가지도록 해야 하는데, 하나의 마스크 브랜치로는 이를 따라갈 수가 없습니다. 또한 하나의 모듈은 한 특징에만 영향을 끼치기 때문에, 잘못 적용한다면 다음 기회가 올 수 없습니다.

이러한 단점을 해결하기 위해 각 트렁크 브랜치에 붙은 마스크 브랜치는 그 특징의 딱 맞도록 specialized된 마스크를 제공합니다.

3.1. Attention Residual Learning

단순히 Attention Module을 쌓는 것만으로는 성능이 올라가지 않았는데, 0에서 1사이의 값을 가진 마스크가 계속 적용되면서 특징들이 점점 약해지기도 했고, 마스크가 트렁크 브랜치의 Residual Unit의 identical mapping 성질을 깨버리기도 했기 때문입니다.

따라서 마스크가 identical mapping을 유지할 수 있도록 하기 위해 Attention Module의 출력 $H$를 수정하였습니다.

$$ H_{i,c}(x) = (1 + M_{i,c}(x)) * F_{i, c}(x)$$

여기서 $M(x)$는 0에서 1사이의 범위를 가직 때문에 만약 값이 0일 경우 원래의 특징 $F(x)$을 내보내도록 될 것입니다. 이것을 attention residual learning이라고 합니다. 이제 마스크의 역할은 특징 중 좋은 특징을 더 강조하고 노이즈 특징을 약하게 하는 역할을 하게 됩니다.

이러한 Attention Module을 쌓게 되면 레이어가 깊어질 수록 계속적으로 좋은 특징들을 유지시키고 강화시켜 성능을 높이게 됩니다.

3.2. Soft Mask Branch

이전의 DBN7에서의 attention mechanism에 따르면 마스크 브랜치는 fast feed-forward sweep과 top-down feedback step을 가지고 있습니다. 첫번째 것은 전체 이미지의 글로벌 정보를 수집하고, 다음 단계로 글로벌 이미지 정보를 원래 특징 맵과 통합하게 됩니다. 컨볼루셔널 네트워크에서는 이를 bottom-up top-down의 fully convolutional 구조로 풀어지게 됩니다.

입력된 데이터는 약간의 Residual Unit을 통과시킨 다음 max pooling을 몇번 적용하여 receptive field를 증가시킵니다. 가장 낮은 해상도까지 다다르면 입력 특징의 글로벌 정보는 확장되어 각 위치로 들어갑니다. 다시 Residual Unit을 몇번 통과시킨 뒤, max pooling과 같은 수로 linear interpolation으로 출력을 업샘플링하면 원래의 입력 특징과 같은 크기로 확장할 수 있습니다. 이제 두번의 1x1 컨볼루션 레이어를 적용한 뒤 sigmoid 레이어를 적용하여 출력 값을 0에서 1사이로 조절합니다. 여기에 bottom-up과 top-down 사이에 skip connection을 추가하여 스케일간 정보를 얻도록 하였습니다.

3.3. Spatial Attention and Channel Attention

마스크 브랜치에 normalization 단계를 추가하여 마스크를 조절할 수 있었습니다. 3개의 방식을 사용해보았는데, mixed attention $f_1$, channel attention $f_2$, spatial attention $f_3$이 각각입니다. $f_1$은 단순히 sigmoid의 출력을 그대로 사용한 것입니다. $f_2$는 각 위치에서 채널별로 L2 normalization을 한 것으로 지역 정보를 없앤 것입니다. $f_3$은 지역적으로 normalization을 하여 지역 정보만 고려하여 마스크를 생성한 것입니다. 하지만 $f_1$이 가장 성능이 좋았습니다.

4. Experiments

5. Discussion

 

 

 

1 A. Newell, K. Yang, and J. Deng. Stacked hourglass networks for human pose estimation. arXiv preprint arXiv:1603.06937, 2016.
2 V. Badrinarayanan, A. Handa, and R. Cipolla. Segnet: A deep convolutional encoder-decoder architecture for robust semantic pixel-wise labelling. arXiv preprint arXiv:1505.07293, 2015.
3 J. Long, E. Shelhamer, and T. Darrell. Fully convolutional networks for semantic segmentation. In CVPR, 2015 .
4 H. Noh, S. Hong, and B. Han. Learning deconvolution network for semantic segmentation. In ICCV, 2015.
5 R. K. Srivastava, K. Greff, and J. Schmidhuber. Training very deep networks. In NIPS, 2015.
6 M. Jaderberg, K. Simonyan, A. Zisserman, et al. Spatial transformer networks. In NIPS, 2015.
7 H. Larochelle and G. E. Hinton. Learning to combine foveal glimpses with a third-order boltzmann machine. In NIPS, 2010.


Add a Comment Trackback