“처음 보는 것”을 어떻게 찾을까?
Novelty detection은 학습 데이터에는 정상 데이터만 있고, 테스트 시점에 처음 보는 새로운 데이터를 찾아내는 문제다. 예를 들어 여러 종의 새 이미지가 정상 데이터로 주어졌을 때, 학습 중 보지 못한 새로운 새 종을 찾아내는 상황을 생각할 수 있다.
이 문제는 일반적인 분류 문제보다 어렵다. 학습 단계에서 “이것이 novel이다”라는 예시가 없기 때문이다. 더 어려운 경우는 정상 데이터와 novel 데이터가 의미적으로 매우 가까운 fine-grained setting이다. 새와 자동차를 구분하는 것은 상대적으로 쉽지만, 기존 새 종과 새로운 새 종을 구분하는 것은 훨씬 미묘하다.
이 논문은 바로 이 문제를 다룬다. 핵심 질문은 다음과 같다.
이미 잘 학습된 pretrained vision model의 표현 공간을 활용할 때, 단순 k-NN보다 더 정교하게 novelty를 탐지할 수 있을까?
기본 접근
이미지를 feature extractor $f$에 넣으면 표현 벡터 $z=f(x)$를 얻는다. 논문에서는 DINO, iBOT처럼 self-supervised 방식으로 ImageNet에서 사전학습된 ViT를 사용한다.
가장 단순한 novelty score는 k-NN 거리다. 테스트 샘플 $z$가 정상 학습 데이터 $D_T$에서 얼마나 멀리 떨어져 있는지를 보는 방식이다.
$$\hat z=\arg\min_{\tilde z\in D_T}|z-\tilde z|_2$$
여기서 $\hat z$는 테스트 샘플의 최근접 정상 샘플이다. 기존 k-NN 방식은 $|z-\hat z|_2$가 크면 novel, 작으면 normal이라고 판단한다.
이 방식은 단순하지만 강력하다. pretrained ViT의 표현 공간이 이미 의미 정보를 잘 담고 있기 때문이다. 하지만 논문은 여기에 중요한 한계가 있다고 지적한다.
k-NN의 한계
1. 국소 구조를 보지 못한다
문제는 단순 유클리드 거리가 데이터의 국소적 구조를 반영하지 못한다는 점이다.

정상 데이터가 표현 공간에서 곡선이나 저차원 manifold 위에 놓여 있다고 생각해보자. 어떤 테스트 샘플 두 개가 최근접 정상 샘플로부터 같은 거리만큼 떨어져 있어도, 하나 ($z_2$)는 manifold 방향을 따라 놓여 있을 수 있고 다른 하나 ($z_1$)는 manifold 바깥 방향으로 벗어나 있을 수 있다.
k-NN은 두 샘플을 같은 점수로 평가한다. 하지만 직관적으로는 manifold 바깥 방향으로 벗어난 샘플 $z_1$이 더 novel에 가깝다.
즉, 중요한 것은 단순히 “얼마나 멀리 떨어졌는가”가 아니라 “어떤 방향으로 벗어났는가”다.
2. background feature의 영향
pretrained representation의 모든 차원이 novelty detection에 똑같이 중요한 것은 아니다. 어떤 차원은 객체의 의미적 차이를 담고 있지만, 어떤 차원은 배경, 밝기, 질감, 촬영 조건 같은 nuisance feature를 담을 수 있다.
기존 k-NN은 모든 차원을 동일하게 취급한다. 따라서 실제로는 novel 여부와 관련 없는 background feature가 거리 계산을 왜곡할 수 있다.
논문은 이 두 문제를 해결하기 위해 VGLR, 즉 Voronoi-Gaussian with Likelihood Ratio 방법을 제안한다.
제안 방법
Voronoi-Gaussian Model
VGLR의 첫 번째 아이디어는 각 정상 데이터 포인트 주변에 국소 Gaussian model을 두는 것이다.
먼저 테스트 샘플 $z$의 최근접 정상 샘플 $\hat z$를 찾는다.
$$\hat z=\arg\min_{\tilde z\in D_T}|z-\tilde z|_2$$
그 다음 $\hat z$ 주변의 이웃들, 즉 $\hat z$의 nearest neighbors를 모은다. 이 이웃들은 $\hat z$ 주변에서 정상 데이터가 어떤 방향으로 얼마나 변하는지를 알려준다.
논문은 이 국소 이웃을 사용해 diagonal covariance $\hat\Sigma$를 추정하고, 다음과 같은 국소 likelihood를 정의한다.
$$p_L(z)=\mathcal N(z;\hat z,\hat\Sigma)$$
여기서 평균은 최근접 정상 샘플 $\hat z$, 공분산은 $\hat z$ 주변 정상 데이터의 국소 분산이다.
이렇게 하면 모든 방향을 동일하게 보는 유클리드 거리와 달리, 정상 데이터가 자주 변하는 방향과 거의 변하지 않는 방향을 구분할 수 있다. 정상 데이터가 많이 퍼져 있는 방향으로 조금 벗어나는 것은 덜 이상하게 보고, 정상 데이터가 거의 변하지 않는 방향으로 벗어나는 것은 더 이상하게 본다.
Likelihood Ratio
VGLR의 두 번째 아이디어는 likelihood ratio다.
논문은 representation $z$가 의미적 feature $z_S$와 background feature $z_B$로 나뉜다고 가정한다.
$$z={z_B,z_S}$$
이때 단순 likelihood만 사용하면 background feature가 점수에 영향을 줄 수 있다. 그래서 논문은 정상 데이터 전체에 대해 낮은 용량의 background Gaussian model $p_B(z)$를 하나 더 학습한다.
최종 novelty score는 다음과 같다.
$$s(z)=-\log p_L(z)+\log p_B(z)$$
이 식은 local model이 보기에 이상한 정도를 측정하되, background model에서도 함께 설명되는 부분은 보정하는 역할을 한다.
직관적으로 말하면 다음과 같다.
- $p_L(z)$가 작다: 최근접 정상 샘플 주변의 국소 구조와 잘 맞지 않는다.
- $p_B(z)$가 크다: 전체 정상 데이터의 거친 background 통계로는 어느 정도 설명된다.
- 따라서 $-\log p_L(z)+\log p_B(z)$가 크면, 단순 배경 차이가 아니라 국소 의미 구조에서 벗어난 샘플일 가능성이 커진다.
알고리즘 흐름

VGLR의 추론 과정은 다음과 같이 요약할 수 있다.
- 이미지 $x$를 pretrained encoder $f$에 넣어 representation $z=f(x)$를 얻는다.
- 정상 학습 데이터 $D_T$에서 $z$의 최근접 이웃 $\hat z$를 찾는다.
- $\hat z$의 주변 이웃 $k'$개를 찾는다.
- 이 이웃들로 국소 diagonal covariance $\hat\Sigma$를 추정한다.
- local Gaussian likelihood $p_L(z)$를 계산한다.
- 전체 정상 데이터로부터 background Gaussian $p_B(z)$를 계산한다.
- 최종 score $s(z)=-\log p_L(z)+\log p_B(z)$를 사용해 novel 여부를 판단한다.
이 방식은 별도의 supervised label이 필요 없고, feature extractor를 fine-tuning하지 않아도된다는 점에서 실용적이다.
실험 결과
논문은 CUB-200, Flowers-102, Food-101, PCAM 데이터셋에서 실험을 수행했다. feature extractor로는 DINO와 iBOT으로 사전학습된 ViT-B/16을 사용했다.

결과적으로 VGLR은 대부분의 설정에서 k-NN보다 높은 AUROC를 보였다.
특히 Flowers와 PCAM에서 개선 폭이 컸다. PCAM은 병리 이미지 데이터셋으로, 정상 조직과 metastatic tissue의 차이가 미묘할 수 있다. 이런 경우 단순 거리보다 국소 구조와 background feature 보정이 중요해진다.
DINO loss를 사용해 정상 데이터만으로 ViT를 self-supervised fine-tuning하는 실험도 수행했다.

흥미롭게도 fine-tuning은 k-NN 성능을 전반적으로 올려주었다. 정상 데이터가 더 조밀하게 모이면서 nearest neighbor 기반 탐지가 쉬워졌기 때문이다.
하지만 VGLR의 장점은 fine-tuning이 없는 상황에서 더 두드러졌다. 이는 실용적으로 중요하다. foundation model을 매번 downstream 정상 데이터에 맞춰 fine-tuning하는 것은 비용이 크기 때문이다.
VGLR에서 두 요소를 각각 제거해보는 ablation study도 수행했다.

첫 번째는 local adaptation을 제거하는 경우다. 이 경우 국소 covariance를 사용하지 않고, 사실상 local geometry를 반영하지 않는다.
두 번째는 likelihood ratio를 제거하는 경우다. 이 경우 background feature 보정 없이 local likelihood만 사용한다.
결과적으로 두 요소 모두 성능 향상에 기여했다. 특히 PCAM처럼 미묘한 차이를 탐지해야 하는 데이터에서는 둘 중 하나만 제거해도 성능이 크게 떨어졌다.
이는 VGLR의 성능이 단순히 “k-NN 주변을 조금 더 보는 것”에서 오는 것이 아니라, 국소 geometry와 background correction이 함께 작동한 결과임을 보여준다.
인사이트
최근 많은 연구가 foundation model의 표현 공간을 활용한다. 하지만 표현 공간이 좋아졌다고 해서 그 위에서의 추론 방식이 자동으로 최적이 되는 것은 아니다.
VGLR은 이 점을 잘 보여준다. 같은 ViT representation을 사용하더라도, 단순 k-NN 거리 대신 국소 manifold 구조와 likelihood ratio를 반영하면 fine-grained novelty detection 성능을 크게 높일 수 있다.
정리하자면 이 논문은 다음과 같은 메세지를 준다.
- 라벨이 없는 정상 데이터만 있어도 pretrained ViT를 활용할 수 있다.
- k-NN은 강력한 baseline이지만, 국소 구조를 무시한다.
- near-OOD나 fine-grained novelty detection에서는 방향성과 local variance가 중요하다.
- background feature를 보정하지 않으면 의미 없는 차이가 novelty score에 섞일 수 있다.
- fine-tuning 없이도 좋은 성능을 내는 방법은 실제 적용 비용 측면에서 가치가 크다.