[20251105 통합 세미나] Meta-Learning for Few-Shot : Meta-Baseline & FEAT

페이지 정보

profile_image
작성자 박소영
댓글 0건 조회 37회 작성일 25-11-17 14:06

본문

[일시] 2025.11.05

[세미나 주제] Meta-Learning for Few-Shot : Meta-Baseline & FEAT

[발표자] 박소영

[요약]
이번 발표에서는 label이 적은 상황에서 새로운 클래스를 빠르게 학습하기 위한 Meta-Learning 기법으로 Meta-Baseline과 FEAT(Few-shot Embedding Adaptation with Transformer)를 소개했다. 공통된 배경은 Pretrain -> Fine-tune 방식이 전체 클래스에 대한 큰 분류 문제로만 학습되기 때문에 실제로는 N-way K-shot 에피소드로 평가되는 few-shot 세팅과 목표가 어긋난다는 점이다. 또한 base 클래스와 novel 클래스의 분포가 다르면 단순 전이학습만으로는 일반화가 어렵다는 한계를 가진다.

Meta-Baseline은 먼저 모든 base 클래스를 대상으로 일반적인 분류기를 학습해 강력한 임베딩을 얻은 뒤 이 임베딩을 고정하지 않고 프로토타입 + 코사인 거리라는 메타러닝용 평가 방식에 다시 맞춰 미세 조정한다. 구체적으로는 ResNet 인코더를 cross-entropy로 학습하고  base 클래스 데이터로 N-way K-shot 에피소드를 만들고 support의 평균 임베딩을 기준으로 query를 코사인 유사도 + softmax로 분류하는 메타 Loss를 최적화한다. 이를 통해 단순 분류기 기반 보다 1-shot에서 꽤 의미 있는 성능 향상을 보이지만 5-shot이나 base-novel 분포 차이가 큰 경우에는 개선 폭이 작고 meta stage에서 base 성능과 novel 성능 사이에 objective discrepancy 현상이 관찰된다는 분석도 함께 보고 되었다.

FEAT는 임베딩 자체를 task-agnostic 하게 한번만 배우는 것이 아니라 에피소드만다 support 전체를 하나의 집합으로 보고 그 관계를 고려해 task-specific 임베딩으로 재조정하는 set-to-set 변환기를 어댑터처럼 붙여서 쓰는 방법이다. Stage 0에서 base 클래스로 인코더를 미리 학습한 뒤 각 에피소드의 support 임베딩을 Transformer 기반 self-attention에 넣어 서로를 문맥화하도록 만든다. 이렇게 변환된 임베딩들로 클래스 프로토타입을 만들고 query는 이 프로토타입들에 대한 거리로 분류한다. 해당 논문의 저자들은 여러 set-to-set 함수와 비교해 컨텍스트 반영, 보간/외삽 능력 등을 동시에 만족하는 Transformer가 가장 효과적이라는 것을 보였고 표준 few-shot 뿐 아니라 cross-domain, trnasductive, generalized few-shot 등 확장 설정에서도 기존 메소드보다 일관된 향상을 얻었다.

두 방법은 모두 에피소드 기반 학습과 프로토타입 + 거리 기반 분류라는 공통 틀을 가지지만 관점이 다르다. Meta-Baseline은 강력한 whole-classification 임베딩을 전제로 그 임베딩을 거의 건드리지 않고 코사인 최근점 프로토타입이라는 평가 규칙에 맞게 살짝 메타튜닝하는 쪽에 가깝다. 반면 FEAT는 임베딩 공간을 에피소드마다 Transformer 어댑터로 크게 재구성해서 같은 백본이라도 과제마다 다른 task-specific 공간을 쓰게 만든다는 점이 핵심이다. 요약하자면 Meta-Baseline은 강한 Pretrain + 얕은 meta-stage의 trade-off를 분석한 baseline이고 FEAT는 support 집합 전체를 입력으로 받는 어댑터를 통해 Meta-learning의 표현력을 극대화한 아키텍처이다.

Q : Meat-learning은 그럼 새로운 Label을 보고 메타테스트를 한다는건가요?
A : 보통 메타러닝에서는 메타학습 단계에서는 base 클래스들로 에피소드를 만들고 메타테스트 단계에서는 학습 때 한번도 보지 못한 novel 클래스들로 새로운 에피소드를 만들어 성능을 보게 됩니다. 둘 다 support / query 구조는 동일하지만 메타테스트 쪽의 레이블은 메타 학습에서 쓰인 레이블과 겹치지 않도록 분리되어 있고 메타러닝에서 보고 싶은건 메타 학습 때 배워둔 파라미터와 절차만으로 처음 보는 레이블도 소수의 support예시만 보고 얼마나 빨리 적응하느냐 입니다.

Q : FEAT는 기존 모델 위에 어댑터를 하나 붙여서 학습을 하는건가요? 이게 메타러닝의 관점이 맞는건가요?
A : 일반적인 방식으로 인코더를 pretrain해서 기본 임베딩을 만든 뒤 그 위에 set-to-set 함수 T를 얹어서 support 임베딩 전체를 한꺼번에 받아 task에 맞게 조정된 임베딩 집합으로 변환하는 층을 추가합니다. 기존 모델 뒤에 어댑터를 하나 더 붙였다와 비슷하지만 이 T는 support 샘플들 사이의 관계를 self-attention으로 하습하고 순서에 영향을 받지 않는 permutation-invariant set 변환이 되도록 설계되어 있어서 단순하 conv나 linear 레이어보다 훨씬 task-specific 공간으로 바꿔주는 집하바 변환기에 가깝습니다.
이 인코더와 Transformer 전체를 에피소드 기반으로 학습하기 때무에 구조적으로는 백본 + 어댐터이고 학습관점에서는 메타러닝 방법입니다.

Q : 메타지식이 정확히 어떤것을 뜻하나요?
A : 새 과제를 시작할 대 어디서 출발하는 것이 좋은지 알려주는 초기 파라미터라고 보면 됩니다. 여러 과제를 에피소드로 계속 학습하면서 새로운 레이블이나 새 과제가 오면 적은 샘플로 잠깐만 업데이트해도 성능이 잘 나오게 해주는 공통 초기값과 규칙의 묶음입니다. 따라서 특정 과제를 다 끝낸 최종 모델이라기보단 빠르게 잘 적응하도록 하는 출발점이 메타지식입니다.

[관련논문]
- Meta-Baseline: Exploring Simple Meta-Learning for Few-Shot Learning
- Few-Shot Learning via Embedding Adaptation with Set-to-Set Functions

[녹화영상]
https://us06web.zoom.us/rec/share/latgCRI_TLNJHXSQPzAHja4mpM95MkcaFNzMS2Q1ZA1a_PtAm8sJ6ev5OG-q-xPQ.d9PgkPuVF2Ko-SNg

첨부파일

댓글목록

등록된 댓글이 없습니다.