Abstract
few-shot learning은 Few-shot의 labeled support 데이터를 통해 새로운 개념을 인식하는 것을 목표로 하며, 최근 연구들은 클래스에 대한 description과 같은 추가적인 정보를 통합하는 방식으로 연구가 이루어지고 있습니다. 그러나 이러한 방식은 근거 부족으로 시각적 증거와 모순되는 의미론적 hallucination 문제가 발생하며, 이를 해결하기 위해 해당 논문은 LLM과 support 이미지를 조건으로 정밀한 cross-modal 프롬프트를 구성하고 통합하는 프레임워크 VT-SFT를 제안합니다. 해당 프레임워크는 CIP(Cross-modal Iterative Prompting)와 CGA(Cross-modal Geometric Alignment)로 구성됩니다. CIP는 카테고리 명과 support 이미지를 LLM에 조건을 주어 자세한 설명을 생성하여 풍부한 의미론적 정보를 이해하고, 의미론적 정보를 유지하며 zero-shot으로 합성 이미지를 생성하여 고차원의 의미론적 정보는 유지하며 low-level의 intra-class 다양성을 제공합니다. CGA는 textual-support-합성 이미지를 융합하여 feature space에서 정렬하여 모든 표현 사이의 전역적이고 비선형적인 관계를 포착하여 다중 모달리티 통합을 가능하도록 합니다. 저자들은 제안한 VT-FSL를 표준, cross-domain, fine-grained few-shot 시나리오에서 검증하였으며, 10개의 벤치마크에서 SOTA를 달성하였다고합니다.
Introduction
real-world 시나리오를 고려하여 few-shot learning은 적은 수의 labeled sample로 적응이 가능하도록 하는 것을 목표로 합니다. support와 query 샘플을 동일 feature space로 임베딩한 뒤, query와가장 유사한 support 샘플로 분류하는 방식으로, 한정된 샘플을 이용하기 때문에 구분력 있는 prototype을 만드는 데 어려움이 있습니다. 이를 보완하기 위해 textual 클래스 명으로 확장하였으며, 추가적으로 LLM을 활용하여 풍부한 description을 생성하는 방식들이 연구되었습니다. 그러나 기존 방식은 support 샘플의 시각적 특징을 반영하지 않고 클래스 이름만으로 이루어져 이미지의 시각적 패턴과 맞지 않는 hallucination이 발생할 수 있으며, 단순 프롬프트는 LLM의 추론 능력을 충분히 활용하지 못하여 생성된 description의 품질을 제한합니다.

이를 해결하기 위해 저자들은 Vision과 Text를 연결하는 Few-Shot Learing 프레임워크 VT-FSL를 제안합니다.(Figure 1) 먼저 CIP(Cross-modal Iterative Prompting) 모듈을 통해 LLM에 클래스 명 뿐만 아니라 support 이미지를 함께 제공하여 풍부하고 정확하며, 시각적으로 근거가 있는 description을 추출합니다. 해당 과정은 텍스트의 품질을 반복적으로 향상시키기 위해 strategy, perception, refinement, conclusion 4가지 단계로 이루어집니다. 다음으로 intra-class의 다양성을높이기 위해 앞서 생성한 description을 이용하여 zero-shot으로 합성 이미지를 생성합니다. 이를 통해 textual 정보와 visual 정보를 보완합니다.
다음으로 CGA(Cross-modal Geometric Alignment) 모듈을 통해 support 이미지와 text 설명, 합성 이미지의 특징들을 기하학적으로 정렬함으로써 클래스 내의 다양성과 판별 정보를 반영한 prototype을 contrastive learning방식으로 학습합니다. 최종적으로 VT-FSL는 텍스트와 시각 정보를 종합적으로 통합하여 판별력 높은 정보가 포함된 클래스 프로토타입을 생성하게 됩니다.
해당 논문의 contribution을 정리하면
- LLM을 사용하여 상호보완적인 cross-modal 프롬프트를 구성하고, 기하학적 정렬을 통해 이를 통합하는 VT-FSL 프레임워크 제안
- 클래스 이름과 support 이미지를 모두 조건으로 사용하여 정확하고 풍부한 설명을 생성하고, 의미론적으로 일관된 zero-shot 합성 이미지 생성을 유도하는 CIP 모듈 제안
- 다양한 표현에 대하여 포괄적으로 정렬하고, 대조학습을 통해 비선형적인 의미론적 관계를 포착하는 CGA 모듈 제안
- 10개의 standard, cross-domain, fine-grained Few-shot Learning 벤치마크에서 SOTA 달성 및 평균적으로 4.2%의 성능 개선
Method

[ Preliminary ]
Few-shot Learning은 training set C_{train}에서 학습된 지식을 test set C_{test} (C_{test}⋂C_{train}=\emptyset)으로 일반화하는 데 집중하며, C_{test}는 K개의 support set \mathcal{S}=\{(x_i,y_i)^{N⨉K}_{i=1}\}과 query set \mathcal{Q}=\{(x_i,y_i)^{N⨉M}_{i=1}\}으로 구성됩니다. 일반적으로 각 클래스의 support feature의 평균을 계산하여 prototype 임베딩 c_i를 구한 뒤, 쿼리 샘플 x_q에 대해 N개의 클래스 프로토타입과의 유사도를 비교하여 클래스를 예측합니다.
Cross-modal Iterative Prompting (CIP)

CIP는 클래스명엥서 시각적 패턴을 포착하기 위해 K개의 support 이미지를 LLM에 입력하여 CoT방식으로 시각적 근거가 있는 description을 생성합니다. CIP는 4단계(strategy, perception, refinement, conclusion)로 이루어지며 각 단계는 클래스 이름을 해석하고 접근 전략을 세우고, support 이미지에서 공통적인 시각 패턴 추출하며, 단계별 추론을 통해 구체화한 뒤, 최종적으로 근거를 갖춘 결론을 도출하게 됩니다. 각 단계에는 구조화된 tag (e.g. <strategy> .. </strategy>)로 표시되며, 이를 통해 LLM은 단일 추론 과정 내에서 추론을 구분할 수 있습니다.

생성된 설명은 text-to-image 생성 모델에 입력되어 zero-shot 방식으로 의미론적으로 일관된 합성 이미지를 생성하게 됩니다. 이때 의미론적 일관성을 위해 LLM 기반의 pairwise comparison 방식(LLM을 이용하여 생성 모델이 만든 후보 합성 이미지 2가지를 보고 클래스의 특징을 더 정확하게 표현하는 것이 무엇인지 답변하는 과정을 반복하여 최종적으로 높은 점수를 가지는 후보를 선별)을 통해 클래스당 K개의 상위 합성 이미지를 선택합니다. 이를 통해 support 데이터가 부족한 경우에도 풍부한 support 샘플을 활용할 수 있도록 합니다.
Cross-modal Geometric Alignment (CGA)
풍부한 의미 정보를 기반으로 support feature의 추출 과정을 적응적으로 조정하기 위해 텍스트 프롬프트를 활용합니다. 먼저 CLIP으로 인코딩한 text feature Z_{t}를 선형 변환하여 support feature와 동일 공간으로 매핑한 뒤, 2-layer 네트눠크를 사용하여 support feature z_t와 결합하며, 아래의 식으로 표현할 수 있습니다. 이렇게 추출된 \beta는 support feature의 각 토큰에 주입되어 support feature를 조정합니다.

- W_1, W_2: 네트워크 파라미터
- \sigma: 활성화함수
- Avg( ): 패치 토큰의 평균
Z_t와 z_t는 transformer 블록의 multi-head self-attention을 통해 풍부한 의미론적 정보를 기반으로 토큰 간의 관련성을 학습합니다.

attention 행렬 A는 값 V로부터 정보를 집계하는 데 사용되며, 모든 attention head의 출력은 연결된 후 가중치행렬W로 투영되어 개선된 Z_s를 얻게됩니다.
Kernalized Volume-based Contrastive Learning
해당 파트가 저자들이 제안한 내용 중 핵심인 것 같습니다. 먼저 kernalized란, 데이터를 고차원 공간으로 매핑하여 선형적으로 분리할 수 없는 데이터를 분리하거나 복잡한 패턴을 찾는 방식을 의미합니다. 즉, 저자들은 모든 특징 사이의 표괄적인 일관성 정렬을 위해 Kernalized Volume-based Constrative Learning 목적함수를 제안합니다.
일반적으로 2개의 특징 벡터 사이의 유사도를 비교하는 기존의 constrative learning 방식과 다르게, 저자들은 여러 벡터가 공통 임베딩 공간에서 형성하는 k 차원의 평행다포체(Parallelohedron)의 부피를 이용하여 정렬 정도를 측정합니다. 본 논문에서는 텍스트 , support 이미지의 feature, 합성 이미지의 feature로 구성된벡터를 사용합니다. 같은 클래스의 세가지 특징이 가까워질수록 부피가 작아지고 다른 클래스 조합과의 부피는 커지도록 contrastive learning을 통해 학습합니다. kernalized 부피를 최소화 하기 위한 contrastive loss는 아래와 같이 정의됩니다.

\mathcal{L}_{D2A}와 \mathcal{L}_{A2D}는 동일 클래스에 속하는 text와 support 이미지, 합성 이미지 feature 삼중항(Z_t, Z_s,Z_v,) 사이의 부피는 작게 만들고, 서로 다른 클래스의 특징으로 구성된 삼중항의 부피는 상대적으로 크게 만들게 됩니다. 이를 통해 세 도메인의 정렬을 강화합니다. 이때, \mathcal{L}_{D2A}는 실제 지원 이미지와 합성 이미지 특징을 고정한 상태에서 정답 클래스의 텍스트 특징과 다른 클래스의 텍스트 특징을 대조하고, \mathcal{L}_{A2D}는 텍스트 특징을 고정하고 정답 클래스의 실제·합성 이미지 특징과 다른 클래스의 이미지 특징 조합을 대조합니다. 두 식에서는 커널 부피에 음수를 취한 값을 유사도처럼 사용하므로, 동일 클래스 삼중항의 부피가 작을수록 높은 값을 갖게 됩니다. 결과적으로 이 두 식을 함께 적용하여 텍스트와 시각 특징을 양방향으로 일관되게 정렬합니다.
최종적으로 cross-entropy loss와 함께 가중합한 total loss를 이용하여 학습을 수행합니다.

- p_i: query q가 i번째 클래스에 속할 확률
- y_i: 정답 라벨 확률
test 시에는 CIP 모듈을 통해 클래스 이름과 support 이미지로부터 정밀한 텍스트 description을 구합니다. 이를 CGA 모듈을 통해 Z_t로 투영하고, 원래의 support 이미지의 feature z_s와 결합하여 공간적·채널적으로 강화된 feature c_t를 구합니다. 또한, CIP descripition으로 생성한 합성 이미지와 원래 support 이미지를 함께 구성한 support 샘플에 대한 visual feature 평균을 계산하여 c_v를 구합니다. 이 두가지를 가중합하여 클래스에 대한 prototype을 구성합니다. 이때, u \in [0,1]로, validation set을 이용하여 가중치를 결정하여 사용합니다.

Experiments
Setting
few-shot learning에 대한 평가를 위해 4가지의 표준 데이터셋(miniImageNet, tieredTieredNet, CIFAR-FS, FC100)과 3가지의 fine-grained 데이터셋(CUB Cars, Dogs), 3가지의 cross-domain 데이터셋(CUB,Places, Plantae)에서 실험을 진행합니다.
또한, Visformer-Tiny를 이미지 특징 추출기로, CLIP ViT-B/16의 텍스트 인코더를 텍스트 특징 추출기로 사용하며, Qwen2.5-VL-32B와 Janus-Pro를 통해 텍스트 및 시각 프롬프트를 생성합니다. 학습은 사전학습과 저자들이 제안한 meta tuning 2단계로 진행되며, 평가는 학습 클래스와 겹치지 않는 novel class에 대해 N-way K-shot테스크를 구성하여 수행합니다. 최종 결과는 클래스당 15개의 query 샘플에 대한 평균 정확도와 95%의 신뢰구간으로 제시됩니다.
Results


Table 1과 Table 2는 4가지의 표준 벤치마크에 대한 실험 결과로, 저자들의 방식이 SOTA를 달성하였다는 것을 확인할 수 있습니다. 특히 VT-FSL 방식은 경량화된 Visformer-T를 백본으로 사용하였음에도 ViT-S/16, Swin-T와 같이 더 큰 백본을 사용한 방식보다 더 뛰어난 성능을 보였으며, 이를 통해 VT-FSL이 특징을 잘 추출하고 있다는 것을 어필합니다.

Table 3은 fine-grained에 대한 실험 결과로, 마찬가지로 SOTA를 달성하였으며, 1-shot setting에서 기존의 방식인 SUITED에 비해 성능 개선이 크게 이루어졌다는 점을 어필합니다.

Table 4는 cross-domain에서의 실험 결과입니다. 모델은 miniImageNet에서 학습된 뒤 CUB, Places, Plantae에서 평가가 이루어지는 세팅으로 도메인 변화가 큰 케이스입니다. 마찬가지로 성능 개선을 확인하였으며, 저자들은 이 실험을 통해 분포 변화가 큰 경우에도 새로운 카테고리로 일반화가 가능함을 보였습니다.
Ablation study

Table 5는 ablation study 결과를 나타낸 것으로, 3가지 데이터에서 실험을 진행하였습니다. 텍스트 프롬프트와 시각 프롬프트는 각각 단독으로도 baseline 성능을 향상시켰으며, alignment loss를 추가하면 특징 간 정렬이 강화되어 성능이 더욱 개선되는 것을 확인할 수 있습니다. 텍스트와 시각 프롬프트, \mathcal{L}_{align}를 모두 적용하였을 때 가장 좋은 성능을 달성하였으며, 이를 통해 두 프롬프트의 상호보완적 효과를 보였습니다.

Figure 5는 VT-FSL에서 생성한 텍스트가 기존 연구 SemFew에서 클래스 명에 대한 정의를 추출하는 방식과 단순 클래스명 만 이용하는 방식보다 더 좋은 성능을 보인다는 것을 나타낸 그래프입니다.

Table 6의 (a)는 기존의 contrastive learning 방법론들과의 비교 결과이며, (b)는 prototype을 구성함에 있어 텍스트와 이미지 프롬프트의 추가에 따른 성능 개선을 보여주고 있습니다.

figure 6은 validation 데이터에서 prototype을 구성할 때 텍스트와 시각적 feature 사이의 가중치 u에 따른 성능을 나타낸 결과입니다. 0.5~0.7 사이에서 최적의 성능에 도달하는 경향을 확인하였으며, 시각적 프롬프트만을 사용하거나(0.0) 텍스트 프롬프트만을 사용할 경우(1.0)에 비해 두 모달리티를 함께 융합하여 사용하는 것이 좋다는 것을 다시 한 번 어필하고있습니다.

Figure 7의 (a) 그래프는 1-shot 세팅에서 합성 이미지 수에 따른 성능을 나타낸 것으로, 1~3까지는 성능이 개선되는 경향이 있으나, 그 이후에는 saturation 되고, 너무 많아질 경우 오히려 노이즈가 추가되어 성능이저하될 수 있다는 것을 보여줍니다.
Figure 7의 (b)는 Janus-Pro를 이용하여 합성한 이미지를 시각화한 것으로, 핵심적인 속성은 유지되면서 다양한 영상이 만들어져 intra-class 사이의 시각적 다양성을 통해 low-level의 의미론적 특징을 강조할 수 있었다는 것을 어필합니다.

마지막으로 Figure 8의 (a) 시각화 결과를 통해 베이스라인 대비 VT-FSL가 클래스별 특징이 더 조밀하게 모이고 다른 클래스와는 더욱 구분이 잘 된다는 것을 보였으며, (b)를 통해 객체 영역에 더 집중하고 있다는 것을 어필합니다.
리뷰 잘 읽었습니다.
LLM description + 합성 이미지 + geometric alignment 이걸 모두 사용하는 방식 같네요..?
1. prototype 구성에서 텍스트 feature와 visual feature를 가중합하고, 가중치 u를 validation set으로 선택한다고 하셨는데, 이렇게 되면 cross-domain few-shot setting에서도 target domain에 대한 validation set을 사용할 수 있는지 궁금해집니다. 결국 u가 성능에 민감하다면 실용성이 있는 방법일지 하는 의문이랄까요
2. VT-FSL은 support 이미지에서 description을 생성하고 합성 이미지까지 만드는 구조라 1-shot에서는 정보 보강 효과가 클 것 같은데, shot 수가 늘어날수록 실제 support 이미지 자체가 충분해지면서 텍스트/합성 이미지의 기여가 줄어드는지? 아니면 오히려 늘어나는지? 궁금하네요. 그니까 마냥 늘리는게 무조건 도움이 되는지 아님 특정 threshold가 있는지랄까요