논문명: RA-CLIP: Retrieval Augmented Contrastive Language-Image Pre-Training
논문 링크: https://paperswithcode.com/paper/ra-clip-retrieval-augmented-contrastive
핵심만 정리합니다
문제점
- CLIP은 대성공한 방법론인데, 데이터를 많이 필요로 하고 모든 데이터를 파라미터로 기억하기엔 방대함
- online retrieval 을 통해서 지식을 보강하면 되는 방법론 'RA-CLIP'을 제시함
- 비유하자면 오픈북 시험과 같다. 오픈북 시험은 다 기억할 필요 없다. 책에 적힌 지식을 활용하는 방법만 배우면 된다
(자세한 방법론은 아래를 참고)
해결책
- 이미지가 주어지면, reference set 에서 K개의 유사한 데이터를 검색해서 반환한다
- RAM 이라는 모듈을 통해서 증강한 이미지 임베딩을 추출해서 사용한다
- 그렇다면, RAM 이 어떻게 작용하는지 보면 된다
검색은 어떻게 해?
- DINO와 같은 사전학습 인코더로 임베딩 추출해서 임베딩 유사도 높은 K개 뽑는 것 같다
모델 구조는 뭔데?
- 이미지 인코더: ViT
- 텍스트 인코더: Transformer
- 검색할 때 쓰는 임베딩 모델은 학습하지 않는다고 한다
데이터셋 구성 어떻게 하는데?
- 전체 훈련 데이터에서 10%는 reference set 에 넣고, 나머지 90%는 훈련할 때 사용한다고 함
RAM 구조를 자세히 보자
- attention mechanism 으로 기존 이미지와 K개의 (텍스트, 이미지) 쌍을 합친다고 보면 된다
증강된 텍스트 임베딩 구하는 법
- query: 기존 이미지 임베딩
- key: K개 이미지 임베딩
- value: K개 텍스트 임베딩
증강된 이미지 임베딩 구하는 법
- query: 기존 이미지 임베딩
- key: K개 텍스트 임베딩
- value: K개 이미지 임베딩
그리고 위에서 구한
최종 임베딩 = '증강된 텍스트 임베딩' + '증강된 이미지 임베딩' + 기존 이미지 임베딩 이다.
학습은 CLIP과 동일하게 이뤄진다고 한다.
성능은 대충 이러하다
- 1번과 5번을 비교해보면, 같은 데이터셋을 활용했을 때 성능 차이가 극명하게 난다는걸 확인할 수 있다