논문 읽기/Classification

[논문 읽기] Non-local Neural Networks(2017)

AI 꿈나무 2021. 7. 13. 16:51
반응형

 안녕하세요, 오늘 읽은 논문은 Non-local Neural Networks 입니다.

 

 deep neural network에서 long-range dependency를 포착하는 것은 매우 중요합니다. 예를 들어, language 모델에서 long-range deprendency를 포착하기 위해 LSTM을 하용하고, image data에서는 convolutional layer를 쌓아 receptive field를 확장하여 long-range depencdency를 포착합니다.

 

 convolution과 recurrent operation은 공간 또는 시간에 대한 local neighborhood에 연산을 수행합니다. 그리고 이 local operation을 반복적으로 수행하는데 이는 다음과 같은 문제점을 초래합니다. (1) 연산이 비효율적입니다. (2) 조심스럽게 다뤄야 하므로 optimization에 어려움이 있습니다. (3) multihop dependency modeling가 필요합니다.(예를 들어, 메세지가 먼 거기를 왔다갔다 하듯이 bi-RNN 같은 구조를 의미합니다.)

 

 

 해당 논문은 long-range dependency를 포착하는 효율적이고 간단한 non-local operation을 제안합니다. 이 non-local operation은 입력 featuremap에서 모든 위치에 있는 feature들의 가중합으로서 한 위치의 response를 계산합니다.

 

 non-local operation을 사용하는 장점은 (1) 임의의 두 위치 사이의 interation을 계산함으로서 직접적으로 long-range dependency를 계산할 수 있습니다. (2) 효율적이고 더 좋은 성능을 나타냅니다. (3) variable input size를 갖으며 다른 연산(convolution)과 함께 결합하여 하용할 수 있습니다.

 

Non-local Neural Networks

(1) Formulation

 

 딥러닝에서 non-local operation을 다음과 같이 정의합니다.

 

 

 i는 output position의 index입니다. 공간, 시간 또는 spacetime이 될 수 있습니다. j는 모든 position을 열거하는 index 입니다. x는 입력 signal(image, sequence, video 등등)입니다. y는 x와 동일한 크기의 output signal 입니다. f는 xi와 xj 사이의 affinity 같은 관계를 나타내는 scalar를 계산하는 함수입니다. g는 위치 j에서 input signal의 representation을 계산합니다. C(x)에 의해 normalize 됩니다.

 

 위 식을 살펴보면 xi와 모든 위치 j 사이의 연관성을 계산하는 것으로 이해해볼 수 있습니다. 이에 반해 convolution은 j가 i 근처 8 pixel만을 계산하는 local operation 입니다.

 

  또한 위 연산은 variable size의 입력을 받고, 동일한 크기의 output을 출력합니다. 또한 이 non-local operation은 conovlution/recurrent layer와 함께 사용될 수 있습니다.

 

(2) Instantiations

 

 g는 1x1 or 1x1x1 conv를 사용하는 linear embedding 입니다.

 

 f는 여러가지 연산으로 정의될 수 있습니다.

 

gaussian
dot product
concatenation

 

 3가지 f의 type에 따른 성능 실험은 아래에서 살펴보겠습니다.

 

 

 normalize를 수행하는 C(x)는 위과 같이 계산합니다.

 

 

 f(xi, xj)가 C(x)에 의해 normalize 되면, 이는 j 차원을 기준으로 한 softmax 연산으로 생각해볼 수 있습니다.

 

 따라서 전체 식을 다음과 같이 다시 작성할 수 있습니다.

 

 

 한 위치에서 xi와 모든 위치 xj 사이의 연관성을 계산하여 softmax를 통해 가중치를 가하는 것으로 생각해 볼 수 있습니다.

 

(3) Non-local Block

 

 

 y는 non-local block의 출력값이고 x는 residual connection 입니다. W는 weight matrix이며 yi에 대해 1x1x1x conv로 position-wise embedding을 계산합니다. 

 

Video Classification Models

 non-local network의 성능을 조사하기 위해 video classification task에서 non-local을 3D ConvNet으로 확장하여 base line architecture를 생성합니다.

 

 

 base line architecture는 1xkxk kernel size conv로 구성되어 있으며 video task의 temporal dimension은 pooling에서만 다뤄집니다. 위 구조에 non-local net이 삽입됩니다. 어느 stage에 non-local block이 추가되냐, non-local block의 layer 수에 따라 모델의 성능이 달라집니다. 

 

Experiments

 non-local block의 삽입 위치, layer 수, 함수 f의 variant 등등에 따른 ablation study를 진행합니다.

 

 학습 곡선

 

 kinetics에서 SOTA 모델과 비교

 


참고 자료

[1] https://arxiv.org/abs/1711.07971

반응형