Introduction
image caption이라는 문제는 이미지를 설명하는 문장을 자동으로 만들어내는 것(image description)은 매우 어려운 문제라고 할 수 있다. 이것에 대한 이유를 생각해보면 이미지의 특성,활동, 다른 물체와의 관계를 추론 및 파악해야하는데 사실상 쉽지않은 연구 방향이라고 생각했다. 하지만, Show and Tell - A Neural Caption Generator 논문은 좋은 결과를 만들었고,기계 변역과 비슷한 과정이었다. 해당 논문은 당시 발표되었을 때 SOTA인 고정된 크기의 context vector을 사용하는 seq2seq과 비슷한 구조인 NIC 모델을 사용했지만, 지금 소개해드릴 논문은 transformer기반으로 볼 수 있습니다.
Clip, GPT-2를 사용하더라도 mapping between image and text representation이 어렵다. 이 논문은 이러한 어려움을 Clip image encoder를 통해서 추출된 image embedding vector인 prefix과 multi-layer perceptron(MLP)를 mapping network로 사용해서 해결하고자 한다.
Related Works
대량의 데이터로 학습한 clip, gpt2를 이용하고, transformer 기반으로 image caption 모델 구현했다.
논문에선 clip을 사용하여 다른 논문에서 드러냈던 문제점인 dataset에 따라서 추가 annotation을 할 필요없으며, 최적화 작업도 학습 시간 단축을 위해서 안 사용했다고 한다.
Method
Model
CLIP의 인코딩을 GPT-2가 이해할 수 있는 표현으로 조정하기 위해서 CLIP의 인코딩을 일반적인 단어 임베딩과 동일한 차원을 가진 여러 벡터로 전송하는 방법을 사용했다.
How? CLIP output = GPT-2 input
•
mapping network를 통해서 image embedding을 K개(prefix length)의 image embedding vector로 변환한다.
•
GPT-2 모델을 통해 caption을 생성 후 cross entropy loss를 계산한다.
Language model fine-tuning
결론적으로 이 논문은 미리 학습된 두 개의 모델인 CLIP, GPT-2의 parameter를 고정시키고, 두 모델 사이의 architecture를 학습하게 시킨 것으로 성능을 향상시켰다. 연구 결과에 따르면 mapping network만 fine-tuining하는 것이 더 좋은 결과를 가져온다고 설명했다. 하지만, fine-tuining의 문제점인 parameter수의 증가를 해결하기 위해서 mapping network만 pre-train하기 위해서 transformer 방식을 채택했다.
prefix length
- train the network for 5 epochs
- BLEU@4 and CIDEr scores over the test and train
increasing the size of the prefix improves the performance of the model in an underlying task.
length가 늘어나게 되면 embedding vector 내 이미지 정보에 대한 정보가 더 많이 추출된다라고 볼 수 있다.
(7-a)tuning of the LM 허용, prefix size를 증가시키면 train-set에 과적합이 된다. 하지만, LM을 freeze하면 훈련, 테스트 모두 성능 개선된 결과를 볼 수 있다.
(7-b)Transformer architecture를 사용하면 약간의 prefix length 길 수록 성능이 좋다. 단, 80까지만(due to the quadratic memory cost of the attention mechanism)
Results
Dataset을 뭘 사용했고, baseline을 어떻게 설정했는지에 대한 내용을 다루고 있다.
Datasets
Given a dataset of paired images and captions
COCO 데이터셋은 80개의 클래스를 가지고 있고, nocaps 데이터셋은 본 적 없는 클래스 생성물을 측정하기 위해서 디자인되어있다. nocaps 데이터셋은 3개로 구분해보면 COCO 데이터셋에 속해있는 클래스, 새로운 클래스와 COCO 데이터셋내에 있는 클래스함께 있는 것, 아예 새로운 클래스만 존재하는 것
<Conceptual Captions dataset 구조 보기>
Baselines
nocaps dataset은 위에 설명한 것처럼 3개로 나눌 수 있다!
LSTM을 이용해서 만든 모델 : BUTD / transformer를 활용한 모델 / 논문에서 제시된 fine-tuning model : MLP + GPT2 tuning / base model : Ours;Transformer
tuning을 했을 때와 안했을 때 차이를 한 눈에 볼 수 있게 결과를 정리해주었다. 확실하게 안하고 하고의 차이는 극명하게 드러났다. (fine-tuning한 결과 : prefix가 비교적 더 잘 해석 가능한 형태의 결과를 가져온다.)
Conclusion
기본적으로 논문에서 말하길 CLIP-based image-captioning method는 추가적인 annotations 필요없다.그리고 논문은 기존 모델을 활용하는 데 집중하면서 최소한의 mapping network만 교육시키려고 했다. 이러한 방식은 새로운 semantic 객체를 배우는 것 대신에 pre-trained models의 semantic 의미를 타겟 데이터셋에 적용하는 방법
pre trained models을 이용해서 VQA, 3D로 변환하는 것과 같은 다른 작업에 사용할 계획이라고 밝혔습니다.