ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [논문 리뷰] Context-Gated Convolution (2020)
    Paper Review/Neural Network 2023. 2. 26. 20:24

    Abstract 

    CNN(Convolutional Neural Networks)의 기본 구성 요소인 conv layer는 local pattern에 좋은 성능을 보이지만 특성 상 global context를 모델링하는 능력이 떨어진다. 이를 해결하기 위해 최근 연구가 다양하게 수행되고 있지만 대부분 global context 정보는 conv layer에 들어가기 전에 local feature에 통합되는 방법을 주로 사용한다. 그러나, perceptual task를 위해서는 context에 따라 동적으로(dynamically) feature를 수정하는 신경망이 반드시 필요하다.

     

    따라서, 이 논문에서는 global context에 따라 conv layer의 weight를 적응적으로 업데이트 하기 위한 Context-Gated convolution(CGC)을 제안한다. 이처럼 global context가 포함되면 CGC의 conv kernerl은 대표적인 local pattern을 더 잘 추출하고 구별할 수 있는 feature를 구성할 수 있다. 또한, 다양한 네트워크에 확장 가능성을 가지고 있다.

    1. Introduction 

    기존 convolution의 sliding window mechanism은 local pattern만 포착할 수 있어 global context를 활용한다고 보기 힘들다. Figure 1.(a)에서처럼, 이미지에 대한 2D convolution을 하나의 예로 들면, local image patch에서만 동작하여 local feature를 구성한다. 최근 연구에서는 global context의 중요성을 깨닫고 이를 위한 방법들이 많이 있다. 대부분의 연구들은 figure 1.(b)처럼 convolution 연산 전에 feature modulating을 통해 단지 local feature와의 통합으로 볼 수 있다. 

    하지만, 신경망은 전체 context에 대해 feature를 변화시킬 수 있는 adaptive processor의 역할을 가져야 한다. 따라서 ,이 논문에서는 기존의 convolution layer를 apative processor로 모델링하고 global context를 활용하여 local feature의 구성하는 방법을 연구하였다. 


    Figure 1.(c)에 나온 것처럼, Context-Gated Convolution(CGC)을 제안한다. 구체적으로 제안된 CGC는 global context feature representation으로부터 gate를 생성하여 convolution kernel을 업데이트시키는 mapping을 학습한다. 이렇게 변조된 kernel을 사용하여 convoluiton은 input feature map에서 수행되며, 이는 conv layer가 global context에 따라 대표적인 local pattern을 동적으로 포착하고 관심 있는 local feature를 구성하게 한다. 

     

    본 논문의 contribution은 다음과 같다.

    • Global context에 따라 weight를 변화시켜 convolution layer에 context-awareness를 적용한 첫 번째 방법을 제안한다.
    • Global context를 통해 weight를 수정하기 위해 conv kernel에 대한 gate를 효과적으로 생성하기 위한 CGC를 제안한다. CGC는 context 정보를 latent representation으로 인코딩하는 context encoding module, output dimension의 공간에 투영하기 위한 channel lnteracting module, gate를 생성하기 위해 latent representation을 디코딩하는 Gate Decoding Module로 이루어져 있다. 
    • CGC는 local pattern을 더 잘 포착하고 차별적인 feature를 구성할 수 있으며, 분류, 인식, 기계 번역 등 다양한 방법에 활용될 수 있다.

    3. Context-Gated Convolution 

    3.1 Preliminaries 

    일반성을 유지하는 2D case의 샘플 하나를 고려한다. Conv layer의 input은 feature map X ∈ R^(c x  h x w)이며, 여기서 c는 채널 수이고, h, w는 각각 feature map의 height, width이다. 각각의 convolution에서,  c x k_1 x k_2 크기의 local patch는 sliding window에 의해 수집되어 이 conv layer의 kernel W ∈ R^(o x c x k1 x k2)와 연산을 수행한다. 여기서 o는 output 채널의 수이고 k1, k2는 각각 kernel의 height, width이다. 따라서 한 번의 convolution 연산에서 각 patch 내의 local feature만 추출된다. 학습 과정에서 conv kernel은은 학습 데이터 세트에 있는 모든 이미지의 모든 패치에서 학습되지만, 추론 시간 동안 kernel은 context에 적응하지 못한다.

    3.2 Module Design

    해당 모델은 global context의 정보에 따라 convolution kernel을 직접 업데이트하기 위한 목표를 가지고 있다. 

    Global context 정보를 통해 kernel W 를 업데이트 하는 간단한 한가지 방법은 global context에 따라 W와 동일한 크기의 Gate G ∈ R^(o x c x k1 x k2)를 직접 생성하는 것이다. linear layer를 사용(bias x)하여 context vector v R^l에서 gate를 생성한다고 가정하면, 파라미터의 수는 (l × o × c × k1 × k2)이며, 이는 모든 conv layer의 kernel을 업데이트하는데 굉장히 복잡하게 만든다. 따라서, 이전 연구(convolution kernel decomposition)에서 영감을 받아 gate G를 두 개의 텐서 G(1) ∈ R^(c x k1 x k2)와 G(2) ∈ R^(o x k1 x k2)로 분해하여 복잡성을 크게 분해할 수 있도록 제안한다.

    그러나 이 두 텐서를 직접 생성하는 것은 여전히 비현실적이다. 두 개의 linear layer로 생성한다고 가정하면, 파라미터의 수는 (l × (o + c) × k1 × k2)이며, 이는 conv kernel 자체의 파라미터의 수와 동일한 규모이다. 따라서, 이전 연구 (depth-wise separable convolutions)에서 영감을 받아 복잡성을 더욱 줄이기 위해 spatial interaction과 channel-wise interaction을 모델링한다.

    구체적으로, 논문에서 제안하는 CGC는 context encoding module, channel Interacting module, Gate decoding module로 구성된다. Figure 2.와 같이, Context encoding module은 각 채널의 global context 정보를 spatial interaction을 통해 latent representation C 로 인코딩한다. Channel interacting module은 latent representation을 channel-wise interaction을 통해 output 차원 o 의 공간으로 투영한다. Gate decoding module은 latent representation C 와 projected representation O로부터 G(1), G(2)를 생성하여 spatial interaction을 통해 gate G를 구성한다. 

    Context Encoding Module 

    Context 정보를 추출하기 위해 먼저 pooling layer를 통해 공간의 해상도를 h` x w`로 줄이고 크기가 조정된 feature map을 context encoding module에 공급한다. 각 채널의 모든 spatial location에서 정보를 인코딩하고 global context의 latent representation을 추출한다. weight E ∈ R^(h` x w` x d)를 가지는 linear layer을 사용하여 각 채널의 크기가 조정된 feature map을 크기가 d인 latent vector로 투영한다. 이전 연구의 bottlneck structure에서 영감을 받아 context 정보를 추출하기 위해 d = (k1 x k2) / 2 로 지정한다. Weight E는 서로 다른 채널에서 공유 된다. 또한, linear layer 뒤에 normalization layer와 activation function을 붙인다. c개의 채널이 있으므로, Context Encoding Module의 최종 출력은 C

    ∈ R (c x d)가 된다. 출력은 두 개의 서로 다른 module로 공급되고 필요할 경우 서로 다른 정보가 전달될 수 있도록 두 개의 개별 normalization layer를 적용한다. 

    Channel Interacting Module 

    해당 module은 output dimension o의 공간에 feature representation C ∈ R (cxd)를 투영한다. Grouped linear layer I ∈ R (c/g x o/g)를 사용한다. 여기서 g는 그룹의 수이다. Weight I는 다른 차원의 d와 다른 그룹 간에 공유된다. Linear layer 뒤에는 normalization layer, activation function이 붙는다. Channel Interacting Module의 최종 출력은  O ∈ R(oxd)입니다.

    Gated Decoding Module

    해당 모듈은 C와 O를 모두 입력으로 사용하고, latent representation을 convolution kernel의 공간 크기로 디코딩한다. 또한, Weight Dc ∈ R (d x k1 x k2) 와 Do ∈ R (d x k1 x k2)가 C와 O의 다른 채널에서 각각 공유되는 두 개의 linear layer를 사용한다. Gate G의 각 요소는 다음과 같이 생성된다.

    여기서 σ(·)는 sigmoid 함수를 나타낸다. 이 과정을 통해 global context에서 생성되는 동일한 크기의 convolution kernel W를 가진 G를 가지고 있다. 그 다음으로 element-wise 곱으로 convolution layer의 weight를 업데이트하여 광범위한 context 정보를 통합할 수 있다.

    변조된 kernel을 사용하여 기존의 convolution process가 input feature map에서 수행되며, 여기서 context 정보는 kernel이 더 많은 대표적인 패턴을 캡처하고 관심 있는 feature를 구성하는 데 도움이 될 수 있다.

    Complexity 

    세 가지 module의 계산 복잡도는 O (c x d x h` x w` + c x o/g + c x d x  k1 x k2 + o x d x k1 x k2 + o x c x k1 x k2)이다. 여기서 h`, w`은 h, w와 독립적으로 설정될 수 있다. 이는 convolution의 O(o × c × k1 × k2 × h × w)에 비해 무시할 수 있다. 파라미터의 총 개수는 O(d × h` × w` + c × o/g^2 + d × k1 × k2)이며, 이는 전통적인 convolution의 O(o × c × k1 × k2)에 비교했을 때 무시할 수 있을 정도의 변화라고 한다. 따라서, 많지 않은 계산량 증가와 파라미터 증가로 제안된 CGC가 기존 convolution을 쉽게 대체할 수 있으며, convolution layer가 global context에 적응할 수 있도록 한다.

    3.3 Discussions 

    기존의 global context를 활용하기 위한 연구들은 대부분 conv layer의 입력을 수정할 뿐 weight tensor를 변경하진 않는다. 따라서, 본 논문에서 제안한 CGC는 convolution layer의 feature map을 입력으로 사용하고 각 conv layer의 weight를 동적으로 변조시켜 CNN의 global context modeling 성능을 체계적으로 향상시켰다.

     

    CGC를 사용했을 때의 장점은 다음과 같다. 쉽게 훈련될 수 있고, CNN의 학습 안정성을 향상시킬 수 있다. 또한, context에 따라 특수한 기능을 가진 kernel을 동적으로 생성할 수 있으며, CNN에서 feature map만으로 알기 어려운 정보를 포착할 수 있다. 

    4. Experiments 

    제안된 CGC를 기반으로 image classification, action recognition, machine translation에 대해 다양한 실험을 수행하였다. 6개의 벤치마크 데이터 세트(ImageNet, CIFAR-10, ObjectNet, Something(v1), Kinetics, IWSLT'14 De-En)에서 큰 계산량의 증가 없이 성능을 향상시켰다. 

    4.1 Implementation Details 

    모든 linear layer에는 bias를 넣지 않았다. Vision task에는 batch normalization, 자연어 task에는 layer normalization을 사용하였다. 또한, 모든 activation은 ReLU를 사용하였다고 한다. 

    4.2 Image Classification 

    4.3 Action Recognition 

    4.4 Machine Translation 

     

     

    paper : https://link.springer.com/chapter/10.1007/978-3-030-58523-5_41
Designed by Tistory.