image

paper , code

TL;DR

  • I read this because.. : NeurIPS2023
  • task : image classification, object detection
  • problem : CNN은 sliding window를 하고 ViT는 image patch를 잘라서 sequential하게 넣는데 좀 더 유동적으로 보고 싶다
  • idea : image patch를 잘라서 이걸 node로 보고 GNN
  • architecture : multi-head max relative GCN + linear + BN + relu + linear + BN + FFN를 여러 층 쌓음.
  • baseline : ResNet, CycleMLP, Swin-T
  • data : ImageNet ILSVRC 2012, COCO2017
  • result : tiny 모델과 비교했을 때 비슷한 flops로 sota
  • contribution : first gnn model for image representation
  • limitation / things I cannot understand : ViT 대비 좋은 점을 잘 모르겠음 ;; 어차피 patch로 자르는건 똑같고 sequential하게 들어가도 연결성은 SA로 할 수 있을 것 같은데.. 크흠..

Details

motivation

image

Preliminaries

https://ydy8989.github.io/2021-03-03-GAT/

Architecture

Graph Structure of Image

$H \times W \times 3$을 $N$개의 패치로 나눔. 각 패치를 feature vector $\mathrm{x}_i \in \mathbb{R}^D$로 표현하여 $X=[\mathrm{x}_1, \mathrm{x}_2, … \mathrm{x}_N]$을 얻음 이 feature를 순서가 없는 node $\mathcal{V}={v_1, v_2, … v_N}$으로 표현할 수 있음. 각 node $v_i$에 대해서 K개의 가장 가까운 neighbors들 $\mathcal{N}(\mathcal{v}_i)$을 찾고 edge $e_ij$를 추가함. 그러면 우리는 graph $\mathcal{G}=(\mathcal{V},\mathcal{E})$를 얻을 수 있고 여기에 GNN을 통과시키면 됨! graph construction $\mathcal{G}=G(X)$라고 표기할 예정

  • Graph로 표현하는 것의 장점
  1. graph는 매우 일반화된 구조 표현! CNN의 grid나 ViT의 sequence는 그래프의 특정한 종류라고 볼 수 있음
  2. 모양이 가변적인 복잡한 object를 표현하는데 grid나 sequence보다 그래프가 강점을 가질 수 있음
  3. object는 part들의 조합(사람의 경우 머리 몸통 팔 다리)로 볼 수 있으므로 이러한 part를 조합하는데 더 강점을 가질 수 있음
  4. 최신 GNN 아키텍쳐 활용 가능

Graph-level processing

image

feature $X \in \mathbb{R}^{n\times D}$로 시작해서 graph based feature $\mathcal{G}=G(X)$를 뽑음. graph convolutional layer는 neighbor node간 feature를 aggregate하면서 정보를 교환함 image

이를 좀더 구체적으로 쓰면 node $x_i$에 대해 neighbor 정보를 aggregate를 해서 $x_i’$을 만드는걸로 볼 수 있음. 우리는 max-relative graph convolution을 사용할 것임 image

aggregate할 때 feature의 차이에 max를 취해서 aggregate 하는 것

여기에 multi-head operation을 쓰려고 함. feature diversity때문에 도입. image

ViG block

이전의 GC의 경우 반복적으로 graph convolution layer를 진행하면서 node features간의 차이가 없어지고 성능 저하가 일어남. image

그래서 ViG block은 feature transformation과 nonlinear activation을 더 추가하려고 함. GCN 레이어 이후에 linear layer를 넣고 nonlinear activation도 넣음. + FFN도 추가함 image image

이렇게 하니까 diversity가 ResGCN보다 좋았음. (위의 figure 3)

Network Architecture

Isotropic architecture

ViT나 ResMLP처럼 feature가 모두 같은 size인 모델 image

Pyamid architecture

ResNet이나 PVT처럼 feature가 점점 작아지는 형태

image

PE

image absolute pe 더함

Result

Experiment detail

image

Result for isotropic

image

Result for Pyramid

image

Object Detection result

image

visualization

image

etc

  • max relative graph convolution

DeepGCNs: Can GCNs Go as Deep as CNNs? https://arxiv.org/pdf/1904.03751.pdf 에서 제안 ResNet이랑 비슷한 느낌의 논문인데, 위의 over-smoothing 현상 때문에 대부분의 GCN 모델들은 4레이어 이하였음 이를 해결하기 위해 GCN을 깊게 쌓으려면 어떻게 하면 되는가?를 주제로 한 논문

  1. residual / dense connection image

  2. dilation image