본 논문에서는 CLIP과 같은 pre-trained vision-language model의 디벨 측면에 있어서 중요한 것은 prompt engineering임을 보인다.
NLP에서의 prompt learning research에서 영감을 받아서 downstream image recognition task를 위한 CLIP-like vision-language models에 adaptiong 한 Context Optimization(CoOP)를 제안한다.
CoOp는 pre-trained 된 파라미터를 전부 freeze해논 상태로 learnable vectors의 context words를 모델링한다.
구현한 버전은 unified context 와 class-specific context로 두 가지다.
Introduction
SOTA visual recongition에서의 일반적인 접근법은 discrete labels를 써서 fixed set object caterogires를 예측함. (기술적인 측면에서 보면 ResNet,ViT와 같은 모델에서 뽑은 visual features랑 fixsed weight set과 매칭시키는 식)
하지만 문제는 Training categories는 일반적으로 계산의 편의성을 위해 discrete label로 변환해서 cross entropy로 학습하기 때문에 text자체가 갖고있는 정보들은 거의 활용되지 못한다.
따라서 closed-set visual concepts로 제한해서 새로운 카테고리로 분류를 하려면 추가 데이터가 필요하기 때문에 new category는 처리하지 못한다는 한계가 존재했다.
최근 CLIP, ALIGN 등의 vision-language pre-training model이 등장하면서 위와 같은 한계를 지닌 visual representation learning의 대안이 되었다.
특히, 새로운 classification task의 경우에도 task-relevant categories를 설명하는 문장을 text encoder에 넣고 image encoder에서 뽑은 image feature와 비교할 수 있다.
pre-trained vision-language model에서의 prompt가 downstream task에 핵심 역할이 됨을 발견했지만 사실 적절한 prompt를 찾는다는건 non-trivial task이고 튜닝에 매우 많은 시간이 소요된다. 단어를 조금만 바꿔도 성능 차이가 매우 클 수 있다. (실제로 class token 앞에 'a'라는 단어를 추가한 것이 정확도 5% 상승의 결과를 보인 사례도 있음)
또 prompt engineering은 task에 대한 사전 지식을 필요로 한다.
fig1처럼 task-relevant context를 추가하는 것이 상당한 성능 향상을 이끄는 결과를 보였다. 그러나, 이런식으로의 extensive한 튜닝의 결과가 과연 downstream task를 위한 최적의 결과일지에 대한 보장 또한 없다.
NLP에서의 최근 연구에 영감을 받아서 본 논문에서는 간단한 Context Optimization(CoOp) approach를 제안해서 audomate prompt engineering을 제안한다.
prompt's context words를 learnable vector로 두고 랜덤값으로 초기화되거나 pre-trained word embedding으로 initiazlie시킨다.
각각 다른 task의 범위를 다루는 상황을 고려해서 하나는 unified context, 하나는 class-specific context 두 가지로 구현했다.
Method (Context Optimization)
t = [V]1[V]2 . . . [V]M[CLASS]
CLIP에서의 word embedding이랑 동일한 차원의 vector [V]_m(m∈{1, . . . , M})로 prompt를 구성해서 text encoder에 넣는다. 이 때의 M은 context tokens 수를 지정하는 하이퍼파라미터이다. 이 prompt t를 text encoder에 feed하면 visual concept(still from the [EOS]token position)에 해당하는 classification weight vector를 얻게 되면 아래처럼 similarity에 의해 분류를 수행하게 된다.
이 때 각각의 prompt t_i는 i번째 class name에 해당하는 워드 임베딩 백터로 대체된다.
또, class token을 문장 끝에 두는게 아니라 중간에 두었다. (다른 연구들에서도 flexible을 위해 이렇게 하나..?아님 여기서만?)
이렇게함으로써 학습의 flexibility를 증가시킨다. (뒤의 cell를 보충 설명으로 채우거나 마침표 같은 종료 신호를 써서 문장을 더 일찍 cut off 할 수 있게 됨)
Class-Specific Context
특정 fine-grained classification task를 위해 class-specific context(CSC)를 구성했다. context vector가 각 class마다 독립적인 경우를 말한다.
학습은 standard cross-entropy loss로 진행된다.
Discussion
본 접근은 CLIP의 adaptation을 다루기 위한 접근이다. 기존의 prompt learning method들과의 차별점을 정리하면,
backbone architectures가 clip-like model, language model 확실히 다르다.
(전자의 경우 visual/textual data를 입력으로 받아서 alignment scores를 구해서 image recognition을 수행한다. 후자의 경우에는 textual data를 다루는 데에만 치중되어 있다.)
pre-training objectives가 다르다.
(contrastive learning vs autoregressive learning)
Abstract
Introduction
SOTA visual recongition에서의 일반적인 접근법은 discrete labels를 써서 fixed set object caterogires를 예측함. (기술적인 측면에서 보면 ResNet,ViT와 같은 모델에서 뽑은 visual features랑 fixsed weight set과 매칭시키는 식)
최근 CLIP, ALIGN 등의 vision-language pre-training model이 등장하면서 위와 같은 한계를 지닌 visual representation learning의 대안이 되었다.
특히, 새로운 classification task의 경우에도 task-relevant categories를 설명하는 문장을 text encoder에 넣고 image encoder에서 뽑은 image feature와 비교할 수 있다.
pre-trained vision-language model에서의 prompt가 downstream task에 핵심 역할이 됨을 발견했지만 사실 적절한 prompt를 찾는다는건 non-trivial task이고 튜닝에 매우 많은 시간이 소요된다. 단어를 조금만 바꿔도 성능 차이가 매우 클 수 있다. (실제로 class token 앞에 'a'라는 단어를 추가한 것이 정확도 5% 상승의 결과를 보인 사례도 있음)
또 prompt engineering은 task에 대한 사전 지식을 필요로 한다.
Method (Context Optimization)
또, class token을 문장 끝에 두는게 아니라 중간에 두었다. (다른 연구들에서도 flexible을 위해 이렇게 하나..?아님 여기서만?)![image](https://github.com/sy00n/DL_paper_review/assets/67910856/394a9550-2739-41a0-a56e-68b40dc1ef4c)
이렇게함으로써 학습의 flexibility를 증가시킨다. (뒤의 cell를 보충 설명으로 채우거나 마침표 같은 종료 신호를 써서 문장을 더 일찍 cut off 할 수 있게 됨)
Class-Specific Context
특정 fine-grained classification task를 위해 class-specific context(CSC)를 구성했다. context vector가 각 class마다 독립적인 경우를 말한다.![image](https://github.com/sy00n/DL_paper_review/assets/67910856/0dc91563-2ad9-4ffc-9e22-cd3797a49ec4)
학습은 standard cross-entropy loss로 진행된다.
Discussion
본 접근은 CLIP의 adaptation을 다루기 위한 접근이다. 기존의 prompt learning method들과의 차별점을 정리하면,
Experiments