오늘 공유드릴 논문은
LoCoOp : Few-Shot Out-of-Distribution detection via Prompt Learning
으로 NeurIPS 2023에 poster로 발표된 논문입니다.
![](https://velog.velcdn.com/images/ma-kjh/post/2f95ecb1-2b13-4e19-b3c7-a6c923a202e6/image.png)
해당 논문은 CLIP을 기반으로한 few-shot Fine-tuning을 통해 Out-of-distribution detection을 수행한 논문입니다.
기존에 존재하는 Few-shot Fine-tuning CoOp, CoCoOp은 Classification task에 초점이 맞춰져 있다면 , LoCoOp은 OODD에 초점을 맞춘 CLIP-based few-shot fine-tuning method로, 간단하게 설명하면 다음과 같은 방법으로 작동합니다.
- CLIP의 image encoder를 통해 추출한 local feature 중에서 ID-irrelevant nuisance(ID class와 관련이 없는 local feature)를 추출한 뒤
- 추출된 feature를 entropy maximization을 통해 ID class text embedding과 일치하지 않도록 만들어줍니다.
구체적으로는 다음과 같이 동작합니다.
- 일반적으로 CLIP은 Transformer 구조를 이루고, ViT의 visual feature map의 마지막 단에서 Projection layer가 존재합니다. (이 논문에서는 ResNet CLIP을 쓴 것 같은데, 확인 해서 업데이트 하겠습니다 ㅎㅎ)
- Projection layer 전단의 feature map을 추출합니다 (제 기억엔 [batch, 196+1(class token),768], 사이즈를 가짐)
- 이렇게 추출된 feature map은 height X width (feature map에서의) 만큼의 크기를 가지는데, (각각의 피처는 일정한 크기의 패치로 나눠진 패치단위 이미지라고 생각됨) 이들을 ID class test embedding과 cosine similiarity에 softmax함수를 씌워 각각 region의 classification prediction probability를 구합니다. (Text embedding 도 projection을 시키는데, 그 전단을 사용하지 않을까 싶음 (코드 확인 해봐야 할듯) )
- 이 때 만약 ID class object에 해당되는 영역이라면 높은 Top K의 prediction에 들어갈 것이고, 만약 ID class와 상관이 없는 영역이라면 상대적으로 낮은 값을 가질 것임
- 따라서, 이 차이를 통해 상관 없는 영역의 local feature를 추출하고, 이 때 추출된 local feature를 가지고 Entropy Maximization을 통해 상관없는 local feature에 대해서는 ID text class embedding과의 align을 시키지 않도록 만듦
이를 통해 얻을 수 있는 장점은,
기존의 CoOp 같은 경우는, 이미지에 ID 데이터 뿐만 아니라 배경같은 곳에 OOD class 혹은 다른 ID에 해당되는 이미지가 존재할 가능성이 충분함 (예시에서는 ID는 Dog이지만 flower가 존재). 따라서 이러한 배경에 대해 함께 학습할 경우, Context에 꽃이라는 ID class or OOD class가 반영될 수 있음. 이러한 Context에 반영되는 OOD class를 줄여야지, MCM 같은 Inference 시에, OOD class을 보았을 때 confidence가 낮아질 것임. (만약 context에 꽃이 반영되면 꽃이 OOD일 경우 높은 Confidence를 가질 수 있음)
![](https://velog.velcdn.com/images/ma-kjh/post/3b58fcb2-53fe-491d-9f5a-b60979e66b72/image.png)
![](https://velog.velcdn.com/images/ma-kjh/post/5fb957e5-bba2-44c1-834f-3b010871af3f/image.png)