토니의 연습장
MLLM - Towards Zero-Shot Anomaly Detection and Reasoning with MLLMs 본문
MLLM - Towards Zero-Shot Anomaly Detection and Reasoning with MLLMs
bellmake 2025. 9. 9. 15:46
핵심 아이디어
CLIP은 (이미지, 캡션) 쌍을 대조학습(contrastive) 으로 학습해서, 이미지 임베딩 fIf_I과 텍스트 임베딩 fTf_T이 같은 벡터 공간(joint space) 에 정렬되도록 만든다. 이때 이미지 인코더(주로 ViT)는 전역 토큰(CLS)과 패치 토큰들에 담긴 의미를 이 공간의 방향들(directions) 로 표현하게 되고, 그 결과:
- 거리/각도(코사인 유사도) 가 곧 의미적 유사성을 뜻한다.
- 전역 임베딩 gg과 패치 임베딩 ziz_i의 각도만 봐도, 어떤 패치가 “그 이미지의 정체성/클래스”에 얼마나 기여하는지 가늠할 수 있다.
- 또, 패치들끼리의 유사도 분포만 봐도, 배경과 다른 성격(=의심스러운) 패치가 무엇인지가 드러난다.
훈련 관점(왜 가능한가?)
CLIP의 배치 대조 손실(InfoNCE 계열)은 대략 이렇게 동작해:
L = −1N∑n=1N[logexp(sim(fI(n),fT(n))/τ)∑mexp(sim(fI(n),fT(m))/τ) + logexp(sim(fT(n),fI(n))/τ)∑mexp(sim(fT(n),fI(m))/τ)]\mathcal{L} \!=\! -\frac{1}{N}\sum_{n=1}^{N} \Big[\log\frac{\exp(\mathrm{sim}(f_I^{(n)}, f_T^{(n)})/\tau)} {\sum_{m}\exp(\mathrm{sim}(f_I^{(n)}, f_T^{(m)})/\tau)}\;+\;\log\frac{\exp(\mathrm{sim}(f_T^{(n)}, f_I^{(n)})/\tau)} {\sum_{m}\exp(\mathrm{sim}(f_T^{(n)}, f_I^{(m)})/\tau)}\Big]
- 여기서 sim\mathrm{sim}은 코사인 유사도, τ\tau는 온도 파라미터.
- 이 학습은 “이미지의 전역 표현”이 캡션의 의미 축과 맞닿도록 압박한다.
- ViT 내부적으로는 패치 토큰들이 전역 토큰으로 집약(attend)되며, 그 과정에서 객체·부품·질감 같은 중간 의미가 패치 임베딩들 ziz_i에 자연스레 깃든다(그래서 패치 수준의 선형 probe가 잘 먹히는 현상).
텍스트 없이 “의심 영역”을 찾는 절차
텍스트 임베딩 없이도, 아래의 순수 시각 경로만으로 충분히 saliency/이상 패치를 뽑아낼 수 있어.
- 전역·패치 임베딩 추출
- 전역 임베딩 g=norm(Eimg(I)global)g = \mathrm{norm}(E_{\text{img}}(I)_{\text{global}})
- 패치 임베딩들 zi=norm(Eimg(I)patch,i)z_i = \mathrm{norm}(E_{\text{img}}(I)_{\text{patch}, i})
(여기서 norm은 L2 정규화, 모두 같은 CLIP 투영 헤드로 joint space에 있음)
- 전역 기여도 지도(“무엇이 이 이미지를 정의하나?”)
- 패치 기여도 si(global)=cos(zi,g)s_i^{(\text{global})} = \cos(z_i, g)
- 값이 높을수록 “이미지의 주된 의미(클래스)에 강하게 기여하는” 패치 → 핵심/의심 후보
- 여러 계층(멀티 레벨)에서 계산해 평균·최댓값 등으로 합성하면 해상도·강건성이 좋아짐.
- 자기-유사도 기반 이상치(“전체 맥락과 뜨는 패치?”)
- 패치 평균 μ=1N∑izi\mu=\frac{1}{N}\sum_i z_i, 공분산 Σ\Sigma 추정 후 마할라노비스 거리:di=(zi−μ)⊤Σ−1(zi−μ)d_i = \sqrt{(z_i-\mu)^\top \Sigma^{-1} (z_i-\mu)}
- 혹은 단순히 패치-패치 평균 유사도 cˉi=1N∑jcos(zi,zj)\bar{c}_i=\frac{1}{N}\sum_j \cos(z_i,z_j).
- did_i가 크거나 cˉi\bar{c}_i가 낮으면 “다수 맥락과 다른” 소수 패치 → 의심 후보.
- 스코어 융합 & 영역화
- 직관적 결합: Si=α (1−cˉi)+β (1−si(global))S_i=\alpha\,(1- \bar{c}_i)+\beta\,(1- s_i^{(\text{global})}) 또는 목적에 맞게 반대로(핵심 탐색이면 ++ 방향).
- 공간적 연속성(인접 패치 연결), 다중 해상도 일치로 노이즈 제거 → 마스크/박스 추출.
- Look-Back(재조회)로 검증/정밀화
- 상위 KK 패치 영역을 크롭 ⇒\Rightarrow 다시 CLIP 임베딩 g′g' 계산.
- cos(g′,g)\cos(g', g) 또는 크롭 내부 패치들의 결속도를 확인해 진짜 의미적 개체인지 재평가(= “두 번 보기 / look twice”).
요지: joint space의 각도가 “의미”를, 패치-전역/패치-패치 관계가 “기여도·이상성”을 드러낸다. 그래서 텍스트 프롬프트 없이도 saliency와 anomaly 후보를 뽑고, look-back으로 정제할 수 있다.
왜 ‘의심스러움’에 통하나?
- CLIP 공간은 클래스/개념 축이 선형에 가깝게 잘 펴져 있다(제로샷이 되는 이유).
- 한 이미지 안에서 다수 배경 패치는 서로 가깝고, 이질적 개체/부품은 군집에서 떨어지는 경향 → 거리 기반 이상 검출이 자연스럽게 작동.
- 동시에 전역 의미 gg와 강하게 정렬되는 소수 패치는 “사람이 볼 때도 의미 중심(=의심·관심 대상으로 확대해 볼 만한 곳)”인 경우가 많다.
LTFM/VT Selector와의 연결
- LTFM(look-twice feature matching): 위의 1~5 과정을 체계화한 모듈. 1차로 전역·자기유사도 지도로 후보를 만들고, 2차로 재조회(zoom-in)하며 matching/정합을 강화.
- VT Selector: 이렇게 점수화된 토큰들 중 핵심 토큰만 뽑아 LLM(또는 후단)으로 전달 → 사람의 “줌-인” 행위를 흉내.
한계와 보완
- CLIP은 캡션-수준 학습이라, 아주 미세한 파트/희귀 클래스는 약할 수 있음 → 멀티 레벨 통합, look-back 재평가가 필요.
- 장면 잡음이 크면 Σ\Sigma 추정이 불안정할 수 있음 → 공간 스무딩/정규화 또는 사전 사전학습된 프로토타입 사전(unsupervised cluster) 활용이 도움.
'언어 AI (NLP) > Multimodal (MLLM, LMM)' 카테고리의 다른 글
Text-to-Image (0) | 2025.08.08 |
---|---|
Multimodal 분기 처리 (0) | 2025.07.23 |
Multimodal LoRA (0) | 2025.07.23 |
BLIP / CLIP (3) | 2025.07.17 |
MLLM 구현 (0) | 2025.05.26 |