본문 바로가기
Multi Modal/Paper Review

[Survey] VQA

by BaekDaBang 2024. 3. 24.

1. VQA: Visual Question Answering (2015)

  • Image는 CNN encoder, Question은 LSTM encoder 거친 vector를 합치는 방식
  • Pretrained VGG 16, LSTM 사용

 

2. Hierarchical Question-Image Co-Attention for Visual Question Answering (2016)

  • Image와 Question 사이의 관계를 설명하기 위해 Attention 사용
  • Image feature 추출은 거의 변한 것이 없음
  • Question에서 더 semantic한 정보를 뽑기 위해 LSTM 구조를 hierarchical하게 변경
  • Image와 Question을 attention해서 unified context vector 추출

 

3. Bottom-Up and Top-Down Attention for Image Captioning and Visual Question Answering (2017)

  • 원하는 object만 추출한 일부 이미지 영역과 Question을 attention (전체 이미지를 사용하는 방식을 Top-Down 방식, object detection 후 일부분만 사용하는 방식을 Bottom-Up 방식)

  • Bottom-Up 방식(Faster-RCNN)을 이용하여 한 Image에 대해 여러 개의 object 후보군이 k개 생김 (Image features: k*2048)
  • LSTM → GRU

  • ResNet 모델(위쪽)은 언어 선입견으로 인해 변기가 있는 것으로 착각하여 품질이 좋지 않은 캡션을 생성
  • 업다운 모델(아래)은 문맥에서 벗어난 소파를 명확하게 식별하여 올바른 캡션을 생성하는 동시에 더 해석하기 쉬운 주의 가중치를 제공
  • A, man, sitting이 적힌 영역을 보면 매우 작음
  • 전체 이미지에서 모델이 "A"에 해당하는 부분은 저 조그만 pixel, "man"에 해당하는 부분도 저 조그만 pixel 영역으로 생각
  • Semantic한 information을 잘 학습한 것이 아니라, 단어들에 대한 이미지 영역이 매우 좁은 pixel에 모여 있음
  • Bottom-Up으로 특정 이미지 영역을 정해주고, attention을 적용하면 훨씬 semantic하게 잘 학습됨을 알 수 있음
  • "A"와 "man"에 해당하는 면적이 꽤나 넓어졌고 의미적으로도 유사

 

4. Learning Conditioned Graph Structures for Interpretable Visual Question Answering (2018)

 

GitHub - aimbrain/vqa-project: Code for our paper: Learning Conditioned Graph Structures for Interpretable Visual Question Answe

Code for our paper: Learning Conditioned Graph Structures for Interpretable Visual Question Answering - aimbrain/vqa-project

github.com

 

5. BLOCK: Bilinear Superdiagonal Fusion for Visual Question Answering and Visual Relationship Detection (2019)

 

GitHub - Cadene/block.bootstrap.pytorch: BLOCK (AAAI 2019), with a multimodal fusion library for deep learning models

BLOCK (AAAI 2019), with a multimodal fusion library for deep learning models - Cadene/block.bootstrap.pytorch

github.com

 

6. Flamingo: a Visual Language Modelfor Few-Shot Learning (2022)

 

[논문 리뷰] 🦩 Flamingo: a Visual Language Model for Few-Shot Learning - 1. 핵심 특징 및 예제 설명

구글 딥마인드에서 발표한 Visual Language Model로, 이미지와 텍스트로 구성된 input을 받아 텍스트 output을 생성합니다. 다양한 Vision-Language task에서 적은 수의 example로 학습해 fine-tuned model의 SotA에 가

cocoa-t.tistory.com

 

 

GitHub - mlfoundations/open_flamingo: An open-source framework for training large multimodal models.

An open-source framework for training large multimodal models. - mlfoundations/open_flamingo

github.com

  • Language-vision에 대해 supervision과 contrastive learning으로 매우 좋은 성능을 보인 CLIP을 사용한 모델
  • Few-shot으로 몇 가지 example만 보여주면 그에 따른 답을 만들어주는 모델이다. VQA 뿐만 아니라 chat-bot 기능, Image captioning 등 다양한 분야에 사용

  • Flamingo 모델은 CLIP 모델의 vision encoder(ViT), text encoder를 frozen하여 그대로 사용
  • Image-text pair를 서로 attention하여 학습하기 위해 두 가지의 새로운 구조를 도입

(1) Perceiver Resampler

Vision encoder로 얻은 feature들을 고정된 작은 사이즈의 visual token으로 mapping하는 역할을 한다. Visual token의 출력 size가 작을수록 vision-text cross attention의 계산량을 줄일 수 있어, 긴 비디오를 처리할 때 매우 유용하게 사용된다.

(Bottom-Up 구조로 attention 계산량을 줄이는 아이디어는 동일)

 

(2) Gated Cross Attention layers

Visual token과 text를 attention하는 layer이다. 이때 Attention의 key, value 값은 vision feature에서 얻고, query를 language feature에서 얻는다. 따라서 이 layer에서는 vision과 language 정보를 통합해 LM block이 다음 token을 예측하는 task를 수행하는데 도움을 준다.

Flamingo는 parametric size가 클수록 성능이 좋아지고, in-context shot (위에서 언급했던 few-shot의 개수!) 숫자가 증가할수록 성능이 좋아졌다. 사실 parameter size가 증가한다고 무작정 모델 정확도가 좋아지기 어렵다. 하지만 Flamingo는 CLIP을 frozen하고 몇 가지 layer만 추가한 모델이기에 CLIP과 유사하게 parametric size가 클수록 좋은 성능을 보이는 경향을 보이고 있다.