YoojLee / paper_review

paper review archive
6 stars 2 forks source link

CLIPSELF: VISION TRANSFORMER DISTILLS ITSELF FOR OPEN-VOCABULARY DENSE PREDICTION (2024) #72

Open YoojLee opened 7 months ago

YoojLee commented 7 months ago
image

Summary

CLIP (CLIP ViT)은 zero-shot image classification을 매우 잘하지만, 이를 dense prediction task에 이용하기는 어려웠음. image-level representation을 이용해서 align을 수행하기 때문에, text가 region 단위로 매치되지 않았기 때문. 근래에는 region-text matching을 통해서 학습하는 경우가 많았으나 이는 region text pair를 마련해야 한다는 귀찮은 점(?)이 있음. 따라서 이러한 region-text pair 없이도 clip의 dense prediction 능력 향상을 꾀하고자 함. 이는 이미지 crop의 image-level representation을 dense feature map으로부터 추출된 region representation과 align시키는 방식으로 self-distillation을 수행하는 방식으로 이뤄짐. 이를 통해 open-vocab dense prediction에서 좋은 성능을 보여줌.

image crop해서 model에 feed하면 오히려 ResNet 기반의 clip보다 성능이 더 잘 나오기 때문임. 하지만, 유독 dense feature는 별로임. 잠재력은 충분히 갖추고 있다는 건데 이걸 어떻게 활용할 수는 없을까? 가 핵심 문제의식.

Method Highlights

image 이미지 하나 feed해서 얻어낸 feature map (이거는 b,n,d를 b,h,w,d로 다시 쪼갬)에서 RoIAlign 시켜서 region에 대한 dense feature를 얻어내고 이미지 그리드에 corresponding하는 dense region feature에 distillation하는 방식

Experiment Highlights

image ablation 결과. layer를 많이 학습시킬 수록 성능이 많이 올라가는 것을 알 수 있음. Student encoder의 input에 들어가는 사이즈가 커질 수록 좋은 성능을 보여주는 것을 알 수 있음 (하지만, 상당히 이미지 인풋 사이즈가 많이 커지는걸..?). 단순히 입력 사이즈가 커졌기 때문에 성능이 올라간다고 생각할 수 있으니 그걸 확인하기 위해서 distillation을 적용하지 않고 바로 input의 입력 사이즈만 1024로 키워서 성능을 측정한 결과, 성능에 확연한 차이가 발생하는 것을 알 수 있음.

image CLIPSelf를 적용하게 되면 전반적으로 dense prediction 성능이 올라가는 걸 알 수 있음. region proposals를 쓰는 것보다 grid mask로 feed하는 방식이 thing masks를 처리하는 데에서 성능이 아주 조금 뒤처지긴 하지만 stuff mask에서 훨씬 좋은 성능을 보여주는 것 같음.

image fine-tuned CLIP ViT의 경우에 동일 object를 하나의 클러스터에 assign을 잘 하는 걸 확인할 수 있음. object 중 일부만 clustering하거나 다른 object에 속하는 픽셀을 포함하는 false positive cluster의 수를 줄일 수 있었음.

image OVOD에서의 성능 평가 (OV-COCO & OV-LVIS). F-VLM을 따라서 frozen vit 위에 two-stage detector를 학습시키는 방식으로 제안 모델에 대한 성능 평가를 수행함. CLIPSelf 방식으로 CLIP을 fine-tuning함으로써 F-ViT의 성능이 확연히 좋아졌을 뿐 아니라, 기존 OVOD 모델을 outperform하는 결과를 보여줌.

image LVIS에서 train한 후, COCO와 Object365 데이터셋에 얼마나 잘 zero-shot으로 transfer되느냐를 평가하는 테이블. 기존 모델보다 더 좋은 dataset transfer 성능을 보여주고 있음.

image Cat-seg를 기본 모델로 하여 CLIPSelf를 적용해서 성능을 평가함. COCO Stuff에서 학습하고 위의 세 가지 데이터셋에서 성능을 평가했을 때에 모든 테스트 dataset에서 높은 성능을 보여주었음. 특히, mIoU 대비 mAcc 측면에서 큰 성능 향상을 보여주었는데 이는 per-pixel classification performance가 증가함을 의미함.

image ODISE를 기본 모델로 하여 CLIPSelf를 적용해서 성능을 평가함. 다른 태스크에 비하면 그 편차가 크진 않지만, 성능이 기본 ODISE와 비교하면 개선이 된 모습. 하지만, 실제로 CLIP Score만 사용해서 inference를 수행한 결과를 보면 기존 ODISE보다 성능의 개선 폭이 커짐. 확실히 clip을 fine-tuning시킴으로써 clip 자체가 갖는 dense feature 표현력이 증가했음을 어느 정도 확인할 수 있는 부분.

image region-text pair를 활용한 방법론과 비교해서 clipself 방식이 어느 정도 효과적인지 비교한 부분. OD, panoptic segmentation에 있어서 region-text pair 방식보다 효과적임을 알 수 있음.

Strengths

Weaknesses

YoojLee commented 7 months ago

https://openreview.net/forum?id=DjzvJCRsVf

Q. 이게 왜 잘 작동하는지 그 이유?

-> CNN 같은 경우에는 image crop과 dense feature에 대한 gap이 얼마 없음. 하지만, ViT 같은 경우에는 그 gap이 매우 크기 때문에 distillation을 하게 되면 region understanding 능력이 좋아지는 게 어떻게 보면 당연함.

Q. fine-tune하면서 zero-shot recognition ability를 상실하진 않을지?

ov 세팅에서 실험 -> zero-shot recognition ability는 어느 정도 보장되어 있다고 보면 됨.

Q. global attention 말고 다른 local attention에서는 어떤 결과를 보일까?

image 그림을 보면 알 수 있지만, 실제로 global attention에 clip-self를 적용한 게 window attention보다 성능도 잘 나오고, window attention에도 clipself를 적용하면 일관적으로 성능 향상이 존재함.

Q. COCO 데이터셋에서만 학습하는데 그렇게 되면 COCO detection, segmentation, ADE20K에 favorable하다. (training dataset에 조금 더 노출되니까 더 잘 되는 거 아니냐 이런 거 같음..training, test set이 비슷하니까)

image 그래서 CC3M에서 학습해서 테스트해본 결과, 오히려 성능이 좋아짐.

btw, 이렇게 coco에서 한 번 학습하는 게 어떻게 보면 clip을 align시키는 과정이라고 볼 수 있을 것 같음 (이게 어쨌든 evaluation set과 domain이 일치하므로, in-domain training이라고도 얘기하는 것 같다)

다른 리뷰어도 비슷한 결로 얘기해줬는데 CLIPSelf를 COCO에서만 하는 것보다 다른 unlabeled dataset에 학습을 시키는 게 더 contribution이 클 것이라고 얘기하고 있음. CLIP을 fine-tune하면서 dense prediction에서의 성능은 개선될 수 있지만, CLIP ViT의 zero-shot recognition 능력을 해칠 수 있음. 따라서, large unlabeled dataset을 활용하는 것이 보다 더 효용이 높을 수 있다는 얘기.

Q. non-square input을 고려하기 위해 이미지에 패딩을 넣는 것은 고려해보지 않았는지?

현재 object detector 같은 경우에는 input image에 pad를 더함으로써 non-square input을 고려하는 경우가 많음. Pre-trained clip vit 같은 경우에는 패딩이 적용된 이미지는 training 시에 접해본 적이 없기 때문에 train-test 간의 mismatch가 발생할 수 있음. 이에 따라 frozen obejct detector와의 호환이 부족할 수 있음. 이러한 부분을 고려해서 clipself training 시에 non-square input을 고려하는 것은 어려울지?에 대한 질문. -> 이미 적용했다. implement details에서 조금 더 clear하게 다뤄보겠다.

Q. Swin 기반의 foundation model에의 확장성은 부족해보인다. 이거 단순히 ViT의 inductive bias 부족 문제를 해결하려고 하는 거 아니냐?

3번째 질문이랑 비슷한 문제인 것 같음. vanilla ViT에 존재하는 global attention에만 적용되는 방법론이라는 점이 (이론 상으로는 다 가능하겠지만) 이 논문의 한계로 작용되는 듯함.

일단 저자들은 GLIP, GroundingDINO 같은 방법론들은 일단 pre-training dataset이 기존의 OVOD 세팅(COCO/LVIS의 box annotation만 활용하는 구조)보다 훨씬 loose한 세팅으로 학습이 진행된다면서 직접적인 비교는 어렵다고 주장함. 그래도 비교는 하는데 clipself의 성능이 더 잘나옴. image

또한, self-distillation에 있어서 바로 GLIP 등의 모델에 적용하기에는 GLIP이나 GroundingDINO 같은 모델의 구조에 대한 연구가 선행되어야 함 (어떤 스테이지 -> pre-training 시? 혹은 fine-tuning 시?에 self-distillation을 적용할 것인지 등등). 따라서 지금 당장 적용하는 것은 어려움.