https://arxiv.org/abs/1505.00468
초록
free-form and open-ended task의 해결 방식으로 VQA를 제안한다.
VQA는 image와 natural language question이 주어지면 natural language로 답변을 제공한다.
Dataset을 통해 VQA를 위한 다양한 기준과 방법을 제시하고 결과를 비교한다.
1. Introduction
- VQA task
Visual Quetion Answering(VQA)는 이미지(또는 영상)와 그 이미지에 대한 질문이 주어졌을 때,
해당 질문에 대한 올바른 답변을 만드는 task를 의미한다.
이는 기존의 image captioning 시스템보다 높은 수준의 이미지 이해와 복잡한 추론 능력을 갖추어야 한다.
- AI complete
여러 분야의 AI를 활용한 문제가 주목받고 있는 가운데,
Computer Vision, Natural Language Processing 등을 활용한 이미지 및 비디오 캡션에 대한 연구가 급증했다.
하지만 현재의 기술 수준(발행 당시 2015년도)은 대략적인 장면에 대한 이해와 단어 통계로
합리적인 캡션을 작성하는 수준에 불과하며 이러한 방식은 문제를 'AI-Complete'하다고 볼 수 없다.
본 논문에서 생각하는 'AI-complete'한 방식은 다음의 조건을 충족한다.
1. 이미지에 대해 자유 형식의 자연어로 질문했을 때, 자연어로 답변을 출력할 수 있는지
2. 자동적으로 정량적 평가가 가능한지, 이를 통해 진행상황을 추적할 수 있는지
따라서 본 논문의 Main Contribution은 다음과 같다.
1. 기존 CV와 NLP를 결합한 VQA task 제안
2. VQA task 수행을 위한 Dataset 생성
3. VQA task 평가를 위한 accuracy 지표 정의
2. VQA Dataset Collection
본 논문이 VQA를 제시하고 있으므로 해당 모델을 구현하기 위해 Dataset을 어떻게 구성하였는지에 대해 자세하게 설명하고 있다.
1) Image Data
MS COCO Dataset + Abstract Scene Dataset 결합하여 사용
- MS COCO Dataset
- Object detection, Image Caption 등에서 많이 활용되는 Dataset
- 1개의 image 당 caption 5개가 포함되어 있음
- 여러 객체와 풍부한 정보가 포함되어 시각적으로 복잡하여 VQA 작업에 적합
- Abstract Scene Dataset
- Visual abstraction에서 주로 활용
- 성별, 나이, 인종, 감정 표현 등이 다양한 paper doll 20개를 사용한 realistic scene
- set 내에 caption이 없기 때문에 실험 과정에서 1개 이미지 당 caption 5개씩 수집
- 실제 이미지가 아니기 때문에 고수준의 추론을 탐구하는데 유용
2) Question Data
COCO UI interface를 통해 human subject로부터 question을 수집했다.
기본적으로 1개의 이미지에 대해 unique한 질문 3개를 구성하도록 진행했다.
- 흥미로운 질문을 수집하기 위해 '스마트 로봇'이 대답하기 어려울 것으로 생각되는 질문을 이끌어내도록 함
- 피실험자에게 제공된 interface 설명 : 로봇이 맞출 수 없는 질문을 제작하여 로봇과의 대결에서 승리하라는 내용
Ex. "우리는 스마트 로봇을 만들었습니다. 이 로봇은 이미지에 대해 이해합니다. 모든 사물을 인식할 수 있으며, 사물이 어디에 있는지, 어떤 장면인지, 사람의 표정과 포즈, 사물의 색상과 질감 등을 인식할 수 있습니다. 여러분의 임무는 이 로봇을 이기는 것입니다."
단 기본적으로 모든 질문은 이미지를 참고해야만 해결할 수 있도록 제작
-> Visual understanding 과 Commonsense reasoning 이 모두 필요
3) Answer Data
- Yes or No로 대답
- Open-ended task
- 이지선다로 대답할 수 없는 질문은 Short phrase로 답변 (복수 정답의 가능성 존재)
- 각 질문에 대해 고유한 작업자를 선정하여 그들로부터 10개의 답변을 수집
- 해당 질문에 대해 올바르게 답할 수 있었는지를 Yes, No, Maybe로 선택
- 이를 Groundtruth set으로 지정
- 이후 모델의 정확도를 predicted value와 groundtruth set이 일치하는 갯수로 평가
- Multiple-Choice task
- 각 문제에 대한 18개의 후보 답안을 생성
- 10명이 정답이라고 한 answer
- 이미지를 보지 않았을 때 나올 수 있는 answer 3개
- 답변으로 가장 많이 등장한 answer
- random 질문에서 나온 answer
3. VQA Dataset Analysis
4. VQA Baselines and Methods
- Image Channel
- Image에서 Feature를 추출하기 위해 pretrained VGG16 사용
- VGGNet을 통해 더 깊게 네트워크 구성
- Question Channel
두 가지 방법을 제시하여 진행했다.
Bag-of-Words Question (BoW Q)
- 단어 빈도 수를 기반으로 word representation
- 질문에서 가장 많이 등장하는 1000개의 단어로 BoW를 생성한 후, 질문 top 10의 세 단어를 고려해 30단어를 추가
Long Short-Term Memory (LSTM)
- 기본적인 LSTM은 RNN의 한 종류로, 긴 시간을 필요한 학습을 수행하는 능력을 가짐
- cell state를 통해 정보를 그대로 흐르게 하면서 gate를 통해 정보를 추가하거나 없앰
- 언어 모델 문제에서 자주 사용되는 모델
- 예를 들어, 입력 문장에서 주어의 성별 정보에 따라 대명사를 사용하고자 할 때 다음 문장에서 기존의 성별 정보를 버리고 새로운 정보를 취하는 형식
- 질문의 각 단어를 300-dim으로 임베딩하고, 그 결과를 LSTM의 input으로 사용
- LSTM의 hidden vector까지 포함하여 총 1024-dim으로 임베딩
- deeper LSTM의 경우, hidden layer 2개를 추가하여 2048-dim 임베딩
- Multi-Layered Perceptron (MLP)
Image channel과 Question channel을 통해 얻은 image feature와 질문들을 벡터의 크기를 맞춰 합친다.
이후 FC와 softmax를 거쳐 가장 확률이 높게 나온 답변을 출력한다.
(softmax에서 각 answer가 정답일 확률을 계산하고 groundtruth와 비교)
5. Result
- Baseline
Random | Prior('yes') |
top 1000 answer에서 random하게 선택한 답의 정확도 | 모든 질문에 yes라고 답할 때의 정확도 |
Per question-type prior | Nearest neighbor |
질문 type에 따라 popular한 대답 | 현 질문과 가장 가까운 이웃 질문 k개를 뽑아 대답 |
- 답변의 정확도 계산
- VQA의 출력(answer)의 정확도를 판단
- 예측한 answer를 정답이라고 한 사람이 몇 명 있는지로 평가
- 예측한 답이 정답이라고 판단한 사람이 최소 3명 있다면, 정확도를 100%로 가정
6. Conclusion
- Open-ended, Multiple-choice task 각각 답변의 정확도를 측정
- 두 task 모두 deeper LSTM Question + normalized Image 형태가 가장 성능이 좋음
- BoW Question + Caption 형태는 Image 활용할 때보다 4% 정확도 낮음
- 따라서 Image 활용 시에 정확도가 더 높아지는 VQA를 확인할 수 있음