25년 3월 2주차 그래프 오마카세
Vision GNN (ViG) 연구 흐름 및 발전 요약 및 핵심 정리
목차
- Vanilla Vision GNN (Vanilla ViG)
- Vision HGNN
- MobileViG & V2
- GreedyViG
- WiGNet
- 이번 주 오마카세에서는 이미지 분류, 객체 탐지 및 분할 등과 같은 다양한 컴퓨터 비전 태스크에서 GNNs의 적용 가능성을 입증한 기여도 높은 논문들과 학습 메커니즘의 발전 및 아키텍쳐 변화의 흐름을 개인적으로 정리하여 쉽게 전달해드리고자 합니다.
- CNN & ViT 계열 모델들이 이미지 인식 분야에서 워낙 뛰어난 성능을 꾸준하게 보여주고 있는 사실은 모두들 잘 아시고 계실거라 생각합니다. 그로부터 우리의 GNNs도 충분히 좋은 성능을 얻어낼 수 있지 않을까? 라는 단순한 궁금증으로부터 시작됩니다.
- 그래프라는 데이터 타입으로 표현하게 되면 다양한 도메인에 Dynamic하게 적용 가능하다 장점을 그리드 형태의 이미지에 적용하여, 얼마나 이미지 상의 객체를 그래프로 잘 표현할 수 있을지, 그리고 어떻게 이 표현된 그래프를 잘 학습할 수 있을지가 Vision GNNs 도메인의 주요 질문들입니다.
- 이미지의 그래프 표현은 객체의 복합적인 속성들(e.g. 인간 신체의 연결 관계 : 얼굴 - 몸 - 팔 - 다리)을 더욱 유연하고 디테일하게 포착할 수 있어 그 표현성을 더욱 풍부하게 만들어주는 장점이 있습니다. 추가 옵션으로 위치 인코딩까지 포함하게 되면 복합 속성들 간의 위치정보까지 파악할 수 있어 (e.g. 몸 위에 얼굴 / 몸 양쪽에 팔 / 몸 아래에는 다리 ..) 그 메리트가 크게 강조될 수 있습니다.
Vanilla Vision GNN (Vanilla ViG)
paper link : https://arxiv.org/abs/2206.00272
Reference blog : https://velog.io/@zheedong/Paper-review-Vision-GNN-An-Image-is-Worth-Graph-of-Nodes-NeurIPS-2022
- 시초가 되는 Vanilla Vision GNN (Vanilla ViG) 논문에서는 이미지 상의 로컬한 특징을 잘 포착하는 CNN 계열과 글로벌한 특징을 잘 포착하는 ViT의 장점들을 잘 조합하여 Large scale visual tasks에 성공적으로 적용된 사례를 보여줍니다.

- ViT의 방법을 차용하여 이미지를 일정 크기의 패치로 분할하고, 각 패치를 노드로 고려하여 KNN 알고리즘을 통해 그래프로 표현합니다. 그 이후 Grapher (max-relative gconv) + FFN (2-MLP)으로 구성된 (위 그림의) Network module을 통과하여 over-smoothing과 같은 성능 저하 문제들을 완화하였으며, 노드 별 위치 임베딩을 추가하여 더 좋은 성능을 얻어내었음을 설명합니다.
- Isotropic (fix scale) & Pyramid (multi-scale) 구조로 설계된 ViGs를 CNNs & ViTs 모델들과 비교하여 견줄만한 좋은 성능을 얻어낸 것을 확인해볼 수 있습니다.
- 해당 모델에 대한 많은 블로그 리뷰가 있으니 참고해보시면서 아이디어를 이해해보시는 것을 추천드립니다.
Vision HGNN (ViHGNN)

- 다음 논문은 Hypergraph로 이미지 객체를 표현하였을 때 더욱 우수하고 풍부한 특징 정보를 기반으로 성능 향상에 도움을 얻어낼 수 있음을 보인 논문입니다. 이미지를 표현한 결과의 토폴로지 정보를 활용하는 Hypergraph라는 데이터 구조를 명시적으로 활용하여, 개별 노드 간 메세지 교환이 아닌 다중 노드를 클러스터하여 클러스터 간의 메세지 교환에 집중하였고 그로부터 이미지 상의 더욱 복잡한 higher-ordered relationship을 포착하는 데 성공한 사례를 잘 보여주었습니다.
- 위 저자들은 Vanilla ViG의 한계점으로 KNN 기반 그래프 구성 방법의 비효율성 (표현력 및 메모리 연산 무거움)과 일반 그래프의 pairwise한 메세지 전달 학습 메커니즘을 손꼽았습니다.
- 전자의 문제점은, 이미지를 일정 크기의 패치로 분할하였을 때 모든 패치들이 동일하게 높은 관계 혹은 유사성을 가질 수가 없지만 KNN이라는 완전연결 방법을 통해 관련이 없는 패치들까지 연결한 불필요 엣지들이 다수 생성되며, 이러한 연결정보로부터 메세지 전달 학습에서 큰 메모리를 요구하게 됩니다. 다음 현상은 한 객체 "내"의 불필요한 관계성 뿐만 아니라, 다른 객체 "간"의 불필요한 관계성 또한 모두 포착하기 때문에 성능의 상한선이 확실하게 존재합니다.
- 후자의 문제점은, 복잡하게 뒤얽힌 의존성을 갖는 "다중" 객체들 사이의 디테일한 상호작용을 포착하는 데 제한이 존재하게 됩니다. 다음은 이미지의 의미론적 이해 및 추론 측면에서 중요한 부분인데, 예를 들어 " 한 '사람'이 '왼손'으로 '책상'위에 '컵'을 ''잡고'' 있다" 의 이미지를 바라보면 다중 객체의 위치적 관계성 (사람- 왼손 / 책상 - 위 - 컵)과 그 상호관계 (잡다)를 이해하기 위해 단순 그래프의 pairwise한 로컬 관계성 뿐만 아니라 더욱 고차 메세지까지 전달받아야만 합니다.

- 그로부터 ViG의 기본 그래프 표현방식을 따르되 (패치 분할을 통한 사전 처리 | Grapher + FFN의 기본 아키텍쳐 방식) , Fuzzy C-Means 방법을 통해 중복 및 non-empty한 노드 클러스터를 형성하고, 그 위에 HGNN을 학습하여 고차 관계성을 포착할 수 있는 ViHGNN 모델을 위 그림과 같이 설계합니다.
- 여기에서 저자들이 중점으로 고민한 부분은 이미지마다 표현된 하이퍼그래프 구조를 학습하는 방법이었습니다. 이를 "닭과 달걀 - 무엇이 우선인가?"의 문제로 표현하였습니다.
- 닭과 달걀이란 표현을 풀어 해석하면, 하이퍼그래프 구조는 패치 임베딩에 의존하여 구성되며, 패치 임베딩은 하이퍼그래프 구조의 적절성에 의존하고 있다는 사실을 의미하고 있습니다.
- 이에 대응하기 위한 "피드백 루프"를 설계하여 하이퍼그래프 구조 및 패치 임베딩 간의 동적 업데이트 방법을 도입합니다. 간략하게 Fuzzy C-Mean으로 구성된 초기 하이퍼그래프를 HGNN + FFN을 통해 출력한 패치 임베딩 벡터를 재사용하여 그 구조를 업데이트 하고, 그 업데이트된 구조를 다시 HGNN + FFN을 통해 패치 임베딩 벡터를 업데이트하는 방식입니다. 위 그림의 점선 부분의 루프 과정에 해당합니다.
MobileViG & V2
paper link : https://arxiv.org/abs/2307.00395 (MobileViG)/ https://arxiv.org/abs/2406.05850 (V2)
- 실제 어플리케이션을 위한 ViG 모델의 활용 측면에서, 성능을 위한 ViG-B을 백본으로 활용하기에 그 어려움이 두드러지며 가벼운 ViG-Ti를 활용하기엔 성능적으로 활용이 아쉽습니다. 그 문제점을 ViHGNN의 저자들이 지적한 것과 같이 KNN 기반 그래프 구성 방식을 손꼽았습니다.
- ViT의 높은 성능과 경량화 CNN 모델의 대표 사례인 MobileCNN의 성공에 영감을 받아, 그 두가지 장점들을 ViG에 녹여보자는 것이 다음 저자들의 주 목표입니다.
- 제안하는 모델은 CNN-GNN의 하이브리드 모델로써 구성하는데, 기존 하이브리드 모델의 불필요한 이미지 텐서의 Reshape 과정을 요구하는 문제 또한 해결하고자 합니다.
MobileViG with SVGA
- 이를 위해 저자들은 Sparse Vision Graph Attention (SVGA) 모듈을 기반으로 한 MobileViG 모델을 설계하였습니다. 주요 학습 메커니즘은 기존 MobileCNN의 Depthwise conv 및 Vanilla ViG와 동일한 Max-relative graph conv (MRConv)를 활용하였습니다.

- 다음 알고리즘을 살펴보면, Roll이라는 새로운 오퍼레이터가 보이는데 다음은 쉽게 N-hop 거리만큼 떨어진 패치를 "일정 방향"을 따라 연결하기 위한 방법으로 생각하시면 됩니다.

- 위의 그림과 같이, KNN 기반 그래프는 K 거리 파라미터에 따라 그에 해당하는 모든 노드들을 완전 연결하는 방식으로 구성되어지지만 Roll 방식은 그보다 더욱 sparse하게 일정 방향으로 연결된 그래프를 구성하게 됩니다.
- 다시 알고리즘으로 돌아와서, 파라미터로 제공된 고정된 K값에 대하여 m라는 rolling control 파라미터를 통해 그 거리를 세부적으로 조절합니다. 초기 값 (m <- 0)은 해당 패치의 self-loop의 경우로 바라보시면 됩니다.
- 좌상단 패치을 중심으로 먼저 이미지의 높이를 넘어가지 않는 범위 내에서 반복적으로 mK만큼 떨어진 모든 패치들을 얻어내고 (roll_down), 모든 패치들 간의 상대적 거리 (X_c)를 계산하여 최대값을 뽑아냅니다 (X_j). 일종의 연결 마스크 역할로써 (= masked Adj matrix) 그리고 다음을 이미지와 concat하여 MRconv를 수행합니다.
- 마찬가지로 너비를 기준으로 똑같은 동작을 수행합니다.
- SVGA 모듈을 추가한 MobileViG의 전체 아키텍처는 아래와 같습니다.

- 4가지 단계로 구성되어 있으며, 3단계까지는 일반적인 CNN 기반 방식 및 residual connection의 구성으로 설정하였습니다. 마지막 downsample된 작은 해상도의 이미지 상에서 위의 SVGA를 수행합니다. 해당 블록은 ViG와 동일한 Grapher + FFN 모듈로 구성되어 있으며, 위의 알고리즘이 MRGraphConv에서 진행됩니다. Conv 1x1을 통해 패치 별 세밀한 관계정보를 포착하고자 하였습니다.
MovileViG V2
paper link : https://arxiv.org/abs/2406.05850
- 그 발전모델인 V2는 SVGA의 스케일 문제 (고해상도 이미지에서 속도 저하 - 지연율 상승) 및 MobileViG의 위치 정보 부재로 인한 성능 저하 등을 문제로 지적하며, 이를 해결하는 Mobile Graph Convolution (MGC) 및 Conditional Positional Encoding (CPE)를 적용한 아키텍처를 소개합니다.
- SVGA 모듈의 FFN은 그대로 사용하되, MRConv 단에 CPE 및 inverted residual connection을 추가하여 살짝 수정합니다.

- CPE는 FastViT의 제안에 따라 7x7 depthwise conv로 가볍게 구현하여 추가되어지며, MobileViG의 3 stages of CNN + 1 stage of MRconv를 반대로 적용하여 1 stage of CNN + 3 stages of MRconv으로 구성합니다.
- 눈여겨볼 부분은 위 그림의 보라색 블록, Max-Relative Scores입니다. 다음은 SVGA의 roll 연산과 비슷하지만 핵심 차이점은 그래프 상의 연결개수를 더욱 제한하는 것입니다.
- SVGA는 각 이미지 해상도 크기를 넘지 않는 모든 mK를 고려하여 roll을 연산하는 반면 (e.g. K=2 -> 7 connections), 위 저자들은 실험적으로 오히려 적은 연결개수가 더 좋은 성능을 낸다는 사실을 발견하여 오직 5가지 연결요소로 고정합니다.
- 다음 5가지 연결요소는 1개의 self-loop, 2개의 행 / 열 방향 장거리 좌우 / 상하 패치 1개와의 연결입니다. 아래의 그림으로 비교해보면 좋을 것 같습니다.

- 고정된 연결개수로 더욱 sparse한 그래프 구성 및 위치 인코딩을 통한 패치 간 공간 정보까지 추가된 V2모델은 기존 모델보다 소폭 증가한 파라미터수를 가지고도, MGC의 빠른 동작을 기로 적은 지연율을 통해 대폭 향상된 인식 성능을 보여주었다고 합니다.
GreedyViG
paper link : https://arxiv.org/abs/2405.06849
- 다음은 MobileViG의 핵심 알고리즘 SVGA를 개선한 Dynamic Axial Graph Construction (DAGC)라는 그래프 설계 모듈을 제안합니다. 저자들이 밝힌 SVGA의 핵심 문제점은 알고리즘의 시작 패치들로 부터 구성된 모든 그래프의 구조가 동일하여 표현의 유연성이 상대적으로 떨어진다는 것입니다. 즉, 이미지 상의 객체 모양에 따라 동적으로 변하는 그래프 구조를 활용하는 새로운 아이디어를 소개합니다.

- 또한 MobileViG V2의 CPE 모듈을 추가하여 포괄적인 모델 아키텍처를 설계한 GreedyViG를 소개합니다. 한마디로 MobileViG & V2의 장점들만 쏙쏙 뽑아 설계한 욕심많은 ViG 모델이라고 바라보면 될 것 같습니다.


- 동적 그래프 구조 업데이트를 위해 Fig 3과 같이 패치를 또다시 4사분면으로 나누고 대각 사분면끼리 위치를 변경한 새로운 이미지 타입을 준비합니다. 일종의 패치 Augmentation 방법으로 활용되었습니다.
- 원본 이미지와의 거리를 계산하고 평균 및 표준편차를 계산하여 직접적인 패치 간 거리 계산을 피하고, 그 차이를 roll 이미지와의 상대 거리와 비교하여 그보다 작은 거리 분포에 존재하는 패치 쌍은 동일한 정보를 공유하고 있다는 직관적인 인사이트를 mask를 통해 반영하고 있는 것을 다음 DAGC의 알고리즘을 통해 확인해볼 수 있습니다. 나머지는 기존 SVGA 방식과 동일하게 진행됩니다.
- SVGA의 효율성을 그대로 살리면서 동적 그래프 업데이트 및 유사도 높은 패치 쌍들만 연결을 보장하는 DAGC 알고리즘의 특성을 갖는 GreedyViG의 향상된 성능을 확인해볼 수 있습니다.
WiGNet
paper link : https://arxiv.org/abs/2410.00807
- 다음 모델도 마찬가지로 Vanilla ViG의 KNN 기반 값비싼 그래프 구성 비용을 줄이기 위해 패치 기반이 아닌 윈도우 기반 구성 방법을 제안합니다. Swin Transformer에 영감을 받아 ViG에 적용한 아이디어입니다.
- 윈도우 내의 작은 파티션 별로 독립적인 그래프를 KNN으로 구성하고, 개별적인 MRconv를 적용한 이후 Window reverse를 통해 reshape하는 Window-based Grapher 모듈과 FFN이 따라오는 구성입니다.

- Swin transformer의 shifted window partitioning 방법과 동일하게 cycling operation을 통해 윈도우를 일정 방향으로 이동시키고, 마스킹 메커니즘을 통해 이미지에서 벗어나는 윈도우 부분의 그래프와 연결을 제거합니다.

- 다음 마스크 값은 이동한 윈도우의 거리 S에 비례하여 적응적으로 할당됩니다. 예를 들어, 위 그림처럼 8x8 크기의 특징맵에 대하여 4x4의 윈도우를 적용한 경우, 행과 열 방향으로 2만큼 이동시켰을 때 (우측 하단) B 부분의 2x2 크기의 작은 윈도우와 (8-2) x (8-2) 크기의 A, C 윈도우의 over-window 영역이 발생합니다.
- 다음 영역에서 구성된 KNN 그래프 연결을 제거하기 위해, 윈도우 크기에 대한 over-windows의 비율을 마스크값으로 사용하여 해당 KNN 그래프의 Adj matrix에 적용합니다.
- 윈도우 기반 아이디어의 장점을 ViG에 적용하여 인식 성능 및 복잡도 측면에서 많은 gains을 얻어낼 수 있음을 언급합니다.
[Contact Info]
Gmail: jhbae1184@akane.waseda.jp
Twitter (X): @jhbae1184