1. pre trained CLIP 모델은 이미지 표현 피쳐를 얻기 위해 충분히 활용가능함
2. 세분화된 분류 문제나 MNIST 등의 그림 내 숫자를 맞추거나, OCR등의 성능은 다소 부족함 → 4. 한계점
CLIP 모델의 학습구조 | 모델 학습의 pseudo코드 |
---|---|
zero-shot prediction 활용사례 | prompt Engineering & ensemble 결과 비교 |
---|---|
'CLIP 모델 활용'에서 언급한것 처럼, 이미지 input 에 대해 활용할 요소가 다양하다. 아래 2가지 방법에 대해 논문에 나온 성능을 확인해본다
Zero-shot CLIP vs ResNet50 | |
---|---|
논문자료 | ( |
Zero-shot CLIP vs few-shot linear probes | Zero-shot CLIP 을 따라잡기 위해 필요한 few-shot의 개수 | Zero-shot CLIP vs supervised learning CLIP | |
---|---|---|---|
논문자료 | |||
설명 | - 분류하고자 하는 class에 대해 few-shot 학습한 것과 zero-shot CLIP을 비교 - 4개학습 때까지, zero-shot CLIP의 성능이 제일 우세함 - 16개 학습시 - few-shot CLIP의 성능이 가장 좋음 - BiT-M모델은 2021년 당시 가장좋은 모델이지만, few-shot learning하여 겨우 zero-shot CLIP과 유사한 성능을 보임 | - zero-shot CLIP의 성능을 CLIP few-shot linear probe 학습으로 따라잡으려면 필요한 class별 학습데이터를 표시 - 평균 20.8개(중앙값 5.4개)의 데이터가 있어야만 zero-shot CLIP과 동등한 성능을 가질 수 있음 ㄴ zero-shot으로도 좋은 성능을 보이며, 오히려 few-shot으로 최적화하려면 '충분한 데이터'가 필요해질 수 있음 | - zero-shot CLIP은 linear probe 학습된 CLIP보다 10%~25% 낮은 성능을 보임 - 25개 데이터셋 중 5개만은 성능이 유사하였음 - 알수 있는것 - 약간의 성능차이는 있지만, zero-shot으로도 괜찮은 성능이 나온다 - 텍스트 데이터로 학습하였지만, image encoder가 image representation 을 잘 학습하였고, 그 임베딩으로 추가학습으로 성능 향상도 가능함 |
종합 의견 | => 충분한 데이터로 학습할 것이 아니라면 zero-shot CLIP을 사용하는것이 매우 효율적 | => zero-shot으로 사용해도 충분히 괜찮고, 이미지 임베딩(represantaion) 으로 추가 학습하는것도 좋다 |
Zero-shot CLIP모델의 분류 성능테스트 샘플 |
---|
이미지 분류성능 비교 (Linear Probe CLIP vs SOTA vision models) | Feature 설명력 비교 (CLIP vs EfficientNet) |
---|---|
- CLIP 모델이 만드는 Image representation 은 활용하기 좋은 임베딩일까? 를 알 수 있는 실험 (아래) - CLIP의 Image representation 을 피쳐로 학습(linear probe)했을때, 다른 SOTA모델과의 성능을 비교 - 결론적으로, 2번의 실험(좌, 우)에서 CLIP-ViT, CLIP-ResNet 모델의 결과 중 파라미터가 큰 모델에서 뚜렷하게 가장 좋은 성능을 보임 - CLIP의 이미지를 잘 설명력이 좋은 임베딩을 생성하여, 피쳐로 활용하여 downstream task에서도 훌륭한 성능을 보이는것을 알 수 있음 | - CLIP과 EfficientNet 모델의 피쳐를 Logistic Regression 모델의 피쳐로 사용하여, 성능을 비교함 - EfficientNet은 왼편 실험에서 CLIP 제외시 가장 좋은 성능을 보인 모델 - CLIP 이미지 임베딩을 사용한 LR 모델이 27개 데이터셋 중 21개에서 좋은 성능을 보임 |