📑 논문

논문 | Vision GNN: An Image is Worth Graph of Nodes (NeurIPS 2022)

노바깅 2023. 1. 15. 16:51

컨셉

컴퓨터 비전 분야에서 이미지를 이해하기 위해 다양한 네트워크가 등장했다. 특히, CNN과 Transformer 구조가 이미지를 이해하기 위해 다양하게 사용되고 있다. CNN은 이미지를 grid 구조로, Transformer는 이미지를 순차적인 구조로 표현한다. 하지만 본 논문에서 이러한 구조는 복잡한 오브젝트를 파악하기에 적합하지 않다고 하며 그래프 구조를 제안한다. 이미지를 그래프로 바라보자! 이런 느낌이다.

 예를 들어, object detection task를 생각해보자. 물고기는 꼬리, 지느러미, 머리 등 여러 부분으로 나눌 수 있는데 각 부분은 서로 연결되어 있다. 그래프 구조를 이용한다면 이러한 연결 관계를 더 잘 활용할 수 있다는 장점이 있고 따라서 복잡한 object를 더 잘 표현할 수 있다.  본 논문에서는 이미지를 특정 갯수의 patch로 나누고, 각 patch를 하나의 node로 본다. 각 패치와 가장 유사한 K개의 node가 이웃 node가 된다.

 

 이미지를 그래프로 표현했을 때, 앞서 언급한 연결 관계를 통해 복잡한 object를 더 잘 포착할 수 있다는 장점 외에도 몇 가지 더 장점이 존재한다.

  1. graph는 매우 일반화된 구조 표현으로 grid 구조나, sequence 구조 모두 graph 구조로 표현할 수 있다.
  2. grid, sequence 구조보다 복잡한 object를 더 잘 표현할 수 있다.
  3. object는 part들의 인데, part를 조합하는데 더 강점을 가질 수 있다. (자유로운 연결 구조)
  4. GNN network를 활용할 수 있다.

 


Approach

 

Graph Structure of Image

 H x W x 3 사이즈의 이미지를 N개의 패치로 나누는데, 각 패치는 D차원의 벡터로 표현할 수 있다. 각 패치는 그래프의 각 node가 된다. 각 노드(패치) $v_i$에 대해서 가장 가까운 K개의 이웃 $N(v_i)$을 고르는데, $v_j \in N(v_i)$인 모든 $v_j$에 대해서 $v_j$에서 $v_i$로 가는 edge를 추가한다. 이를 통해서 그래프 $\mathcal{G}$를 생성한다. 즉, $\mathcal{G} = G(X)$이다.

 

Graph-level processing

 위에서 이미지를 그래프로 변형했기 때문에, GCN과 같은 네트워크를 통해 그래프 레벨에서 처리를 해줄 수 있다. 이 논문에서는 multi-head update operation of graph convolution을 제시했는데, aggregated된 feature를 h개의 head로 나누고, 각 head마다 다른 weight를 곱해준 후 업데이트된 head들을 concat해서 final values로 사용한다. Multi-head update operation은 모델이 다양한 representation subspace에서 정보를 표현할 수 있도록 하고, 이를 통해 더 다양한 feature를 볼 수 있다.

 

ViG block

 기존의 GCN은 네트워크가 깊어질 수록 over-smoothing 현상이 발생하는데 모든 노드가 비슷해지는 현상을 의미한다. 본 논문에서는 이러한 현상을 방지하기 위해 몇 가지 방법을 제한한다. graph convolution 전후에 linear layer를 적용하고, layer collapse를 방지하기 위해 graph convolution 다음에 nonlinear activation function을 적용한다. 이를 Grapher라고 부른다.

 

 추가로 각 노드마다 FFN을 적용하는데, FFN은 2개의 FC layer로 구성된 단순한 모듈이다. (더 자세한 구현은 논문 참조)

 

Network Architecture

 Isotropic architecture, Pyramid architecture 2가지가 존재한다. 전자는 ViT처럼 네트워크 구조 내에서 이미지의 feature 사이즈가 바뀌지 않는 타입을 의미하고, 후자는 ResNet처럼 네트워크 내에서 이미지 feature의 사이즈가 바뀌는 타입을 의미한다.

 

Experiments

 Image Classfication task에 대해 좋은 성능을 보여주고 object detection task에 대해서도 좋은 성능을 보여준다!

 

 위의 이미지는 모델의 시각화 결과인데, 네트워크의 첫 번째 블럭에서는 색깔이나 텍스쳐 등이 비슷한 노드들끼리 연결되어 있지만, 12번째 블럭에서는 더 의미적으로 비슷한 것들끼리 연결되어 있다. 즉, 레이어가 깊어질 수록 더 의미적으로 유사한 feature들이 서로 연결된다.

 


 

 

관련 자료

Paper📑 https://arxiv.org/abs/2206.00272