ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Non-local Neural Networks
    머신러닝, 딥러닝 공부 2020. 7. 4. 14:07
    반응형

    1. Introduction

    일반적인 Convolutional neural network의 경우 넓은 receptive field를 확보하기 위해 convolution를 여러 개 쌓거나 pooling layer를 통해 봐야 하는 영상의 크기를 줄인다. 하지만 이러한 방식은 receptive field 측면에서 크게 효율적인 방법은 아니다. 충분한 receptive field를 확보하기 위해선 네트워크 깊이가 상당히 깊어져야 하므로 효율적이지 못하다.

     

    저자는 2000년대 초반에 소개된 상당히 좋은 성능을 보여주는 노이즈 제거 필터인 Non-local Means Filter (NLM Filter)에서 아이디어를 얻어 기존의 convolution의 local 한 특성을 보완해 줄 수 있는, 한 번의 연산이 영상 전체 영역을 대상으로 하는 Non-local 한 연산을 제안했다.

     

    2. Non-local Means Filter

    NLM Filter는 주로 speckle 형태의 랜덤 노이즈를 제거하는데 많이 사용된다. 랜덤 노이즈가 제거된 영상을 얻고자 할 때는 동일한 사진을 여러 차례에 거쳐 촬영하고 이들 사진을 합쳐서 평균을 내주면 우리가 원하는 사물만 깨끗하게 남아있는 영상을 얻을 수 있다.  하지만 동일한 영상을 계속해서 촬영하는 것은 때로는 매우 어려운 일이다.

     

    NLM Filter to remove random noise on pixel p

     

    예를 들어 위 사진에서 p 지점의 경우 위아래에 q1, q2와 같이 p와 유사한 구조의 지점들이 존재한다. 때문에 한 영상 안에서도 이러한 유사한 영역들을 모아준 후 평균을 취해주면 여러 장의 영상을 평균해 준 결과와 유사한 결과를 얻을 수 있다. 이것이 NLM Filter의 원리이다.

     

    3. Non-local Neural Networks

    논문의 저자는 NLM Filter의 아이디어를 차용해서 non-local block이라는 구조를 제안했다. 그리고 이를 기존의 CNN에 추가하면 네트워크의 성능을 크게 향상할 수 있다는 결론을 얻었다. non-local block을 수식으로 표현하면 다음과 같다.

     

    $ y_i=\frac{1}{C\left(x\right)}\sum_{\forall j}\ f\left(x_i,y_i\right)g\left(x_j\right) $

     

    $f\left(x_i,y_i\right)$ 부분이 바로 두 위치의 관계를 계산하는 부분인데, 여기선 두 위치의 관계를 각 위치의 채널 축 값 간의 dot product로 정의하였다. 전체 과정을 그림으로 표현하면 다음과 같다.

     

    논문에서는 video를 사용해서 시간 T 축이 하나 더 존재한다. 위 과정을 좀 더 직관적인 그림으로 표현하면 다음과 같다.

     

    실험 결과 등은 reference에 자세히 설명되어있다. 위 구조를 사용하는 대표적인 논문은 Self-Attention Generative Adversarial NetworksDual Attention Network for Scene Segmentation이다. 이중 Dual Attention Network for Scene Segmentation에 대해서만 간단히 설명한다.

     

    4. Dual Attention Network for Scene Segmentation

     

    저자는 segmentation task를 위해 위와 같은 구조를 제안한다. Position Attenion Module은 non-local block과 거의 유사하다. 대신 논문은 채널 간의 관계를 구하기 위해 Channel Attention Module을 추가했다.

     

    Reference

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

    2. https://blog.lunit.io/2018/01/19/non-local-neural-networks/

    반응형

    댓글

Designed by black7375.