0. N-shot Learning
- 실제 현실에서는, 확보 가능한 데이터에 대해 다음과 같은 어려움이 있음
- 모델 학습 시 충분한 양의 데이터 및 라벨을 확보하기 어려움
- 또한, 데이터의 중요성이 부각됨에 따라 데이터의 값어치도 올라가고 있고 라벨링 비용 또한 매우 높을 때가 있음
- 이에 따라, N-shot learning 개념을 도입하여 아래와 같은 문제에 대해 보완하고자 하였음
- (앞서 언급한)데이터 수집 및 라벨링의 한계
- 각 산업군 현장에 따라 데이터 자체가 적은 현장도 있음 → 대량의 데이터 확보에 한계
- 실제 문제의 다양성
- 새로운 클래스 / 상황이 끊임없이 등장하는 환경에서는 매번 대량의 데이터를 수집 및 학습하는 것이 비효율
- 일반화와 적응력
- 제한된 예시만으로 새로운 클래스를 빠르게 인식하여 모델 성능의 일반화를 도모함
- 이에, 기존에 학습되지 않은 상황에서도 빠르게 적응할 수 있는 AI를 만들기 위해 → N-shot learning으로 시도
- (앞서 언급한)데이터 수집 및 라벨링의 한계
- 요약 → 데이터 라벨링 비용 절감 / 모델의 빠른 적응 / 실제 적용성 향상을 목표로 등장한 N-shot learning
1. Zero-shot Learning
- 모델이 학습 과정 중에 한 번도 본 적 없는 새로운 클래스를 인식하거나 분류할 수 있도록 하는 ML 기법
- 클래스 간 관계 / 속성 / 의미 정보(Semantic Embedding, 텍스트 설명 등)를 활용, 본 적 없는 클래스 추론
- ex) 동물 분류 모델이 얼룩말 이미지를 학습하지 않았더라도, 얼룩말이 ‘줄무늬 있는 말’이라는 설명을 통해 인식할 수 있음
- 학습 / 추론의 관점
- 추론: 새롭게 접한 클래스도 해당 클래스에 대한 설명 / 속성 등 보조 정보만으로 예측하는 방법
- 학습: 새로운 클래스 데이터 없이 예측 가능한 추론 방법 + 이러한 일반화 능력을 갖출 수 있도록 모델을 설계하고 학습시키는 방법론
- 라벨링 데이터가 부족하거나 새로운 클래스 등장이 잦은 환경에 적합
- 하지만, 클래스 간 의미 정보가 명확하지 않거나 설명이 부족한 경우 성능이 저하될 수 있음
2. One-shot Learning
- One-shot learning이 등장한 기술적 배경
- 단순히 Few-shot / Zero-shot Learning처럼 데이터 수량 구분을 위한 것이 아님
- 실제로, 인간의 학습 방식을 모방하려는 구체적인 기술적 도전과제에서 출발
- 인간은 사물을 한 번만 봐도 다른 맥락에서 쉽게 인식하고 구별(실제 어린이는 6세까지 세상의 10,000~30,000개의 물체 범주를 학습)
- 이렇게 하나만 보고 빠른 일반화를 이루어내는 인간의 일반화 능력을 기계로 구현하는 것을 핵심 도전과제로서 One-shot learning이 등장
- One-shot Learning?
- 각 클래스(범주)마다 단 하나의 예시(샘플)만 보고 새로운 객체나 패턴을 인식하거나 분류할 수 있도록 설계된 학습 방법
- 각 클래스 별로 단 한개의 예시만으로 분류 및 인식 가능 → 매우 빠른 일반화 능력 보유
- One-shot learning을 통한 기존 ML의 문제점 및 해결 방안 제시
- 기존 딥러닝의 한계(대량의 데이터 필요) + 실제 데이터 부족 문제 해결의 필요성 대두
- 인간의 학습 방식에서 영감받은 “하나만 봐도 기억하고 구별”하는 일반화 능력
- “새로운 클래스가 단일 예시와 얼마나 비슷한가?”를 판단
- 핵심 메커니즘 ⇒ “유사도 기반 분류 메커니즘”
- Metric Learning을 통한 거리 학습
- 두 이미지 간 유사도 측정을 정확히
- 과정
- 새로운 클래스의 단일 예시가 Support Set으로 제공
- 쿼리 이미지(새로운 데이터) 입력
- 사전학습된 임베딩 함수를 통해 두 데이터(새 클래스의 단일 데이터 / 쿼리 이미지) 모두 특징 벡터로 변환
- 거리 함수 학습: 같은 클래스는 가깝게 / 다른 클래스는 멀게 배치되도록
- 거리 및 유사도 계산
- 유사도 계산: 새로운 쿼리 ↔ Support Set(각 클래스 당 하나의 예시만을 포함하는 데이터셋)
- 가장 높은 유사도를 가진 클래스로 분류
3. 학습 메커니즘 비교: Zero-shot Learning vs One-shot Learning
- One-shot Learning
- 직접 입력 데이터와 Support Set을 비교
- 유사도 기준: Metric Learning(직접적 특징 비교)
- ex) 이 새로운 고양이 이미지는 Support Set의 스핑크스 고양이 사진 1장과 얼마나 시각적으로 유사한가?
- Zero-shot Learning
- Support Set이 없기 때문에, 각 클래스의 텍스트 설명/속성 등의 정보 및 입력되는 데이터를 동일한 임베딩 공간에 매핑하여 비교
- 즉, 교차 임베딩 공간에 매핑하여 서로 다른 모달의 데이터를 비교
- 유사도 기준: Semantic Embedding(의미적 관계를 동일 임베딩 공간에서 비교)
- ex) 이 새로운 동물 이미지는, ‘줄무늬가 있는 말과 같은 동물’이라는 텍스트 설명과 의미적으로 얼마나 일치하는가? → 모델이 이 ‘새로운 동물 이미지’가 얼룩말임을 추측해냄
4. Few-shot Learning
- N-shot Learning / Zero-shot 및 One-shot을 포함하는 범주
- Few-shot Learning(FSL) 등장배경
- 극소수의 예시만으로 새로운 클래스 및 태스크를 빠르게 학습 및 일반화할 수 있도록 설계
- One-shot Learning과 마찬가지로 인간의 능력을 모방하는 것에 초점, 여기에 Meta Learning 개념을 도입하여, “학습하는 법을 학습할 수 있도록” 하여 빠르게 적응하도록 하는 패러다임 제안
- 일반적으로 클래스 별 2~10개의 예시 데이터를 포함한 Support Set 구성
- FSL의 핵심은, 학습과정 자체를 테스트 환경과 동일한 형태로 구성함에 있음
- Few-shot Learning 핵심 메커니즘
- Pre-training
- 앞선 Zero-shot / One-shot과 동일
- Episodic Training
- 실제 FSL 테스트 환경과 훈련 환경을 일치(N-way K-shot)시켜 수천~수만 개의 에피소드 반복 학습 → ‘일반화의 극대화’ 도모
- N-way K-shot: N개의 클래스에 대해 각 K개의 예시만 제공
- 각 에피소드: Support Set + Query Set
- Support set: 각 클래스당 K개의 레이블된 예시
- Query set: 분류·검증 대상 샘플
- Episode = N-way K-shot 태스크 단위
- 실제 FSL 테스트 환경과 훈련 환경을 일치(N-way K-shot)시켜 수천~수만 개의 에피소드 반복 학습 → ‘일반화의 극대화’ 도모
- Meta-Testing(적응 및 추론 프로세스)
- Episodic Learning을 통해 얻은 메타 지식 → 새로운 N-way K-shot 태스크에 빠르게 적응하고 Query 샘플을 분류하는 과정
- 적응-추론의 2단계 프로세스
- 적응 단계: Support Set 활용, 새로운 태스크에 특화된 지식 획득
- 추론 단계: 적응된 모델로 Query 샘플 분류
- 모델별 적응 메커니즘
- 목표 → Support set만 보고 Query 샘플의 클래스를 정확히 예측
- Metric-based 방법들의 적응/추론
- Prototype Networks
- 적응 단계: Support Set에서 각 클래스의 프로토타입(평균 임베딩) 계산
- $c_k = \frac{1}{\vert S_k \vert} \sum_{(x_i, y_i) \in S_k} f_\phi(x_i)$
- 추론 단계: Query 샘플을 각 프로토타입과의 거리로 분류 → 가장 가까운 프로토타입의 클래스로 분류
- $p(y = k \mid x) = \frac{\exp\left(-\left \vert f_\phi(x) - c_k\right \vert ^2\right)} {\sum_j \exp\left(-\left \vert f_\phi(x) - c_j\right \vert ^2\right)}$
- 적응 단계: Support Set에서 각 클래스의 프로토타입(평균 임베딩) 계산
- Matching Networks
- 적응 단계
- Support Set의 모든 샘플을 임베딩하여 메모리로 활용
- Attention 메커니즘으로 Support-Query 간 관계성 학습
- 추론 단계
- Query와 각 Support 샘플 간 attention weight 계산
- $\hat{y} = \sum_{i=1}^{k} a(\hat{x}, x_i) y_i$
- Attention 가중 평균으로 최종 예측 수행
- Query와 각 Support 샘플 간 attention weight 계산
- 적응 단계
- Prototype Networks
- Optimization-based 방법들의 적응/추론
- MAML(Model-Agnostic Meta-Learning)
- 적응 단계
- 메타 학습된 초기 파라미터 $\theta$에서 시작
- Support Set을 이용하여, 몇 번의 gradient step 수행
- 일반적으로 1-5회의 적응 단계 진행
- 추론 단계
- 적응된 파라미터 $\theta$로 Query 샘플 분류
- 적응 단계
- ALFA(Adaptive Learning of hyperparameters for Fast Adaption)
- 적응 단계
- 태스크별로 학습률과 정규화 계수를 동적 생성
- 메타 네트워크가 현재 학습 상태에 따라 최적 하이퍼파라미터 결정
- 추론 단계
- 적응된 태스크별 파라미터로 Query 분류 수행
- 적응 단계
- MAML(Model-Agnostic Meta-Learning)
- Memory 방법
- 외부 메모리에 Support 정보를 저장
- Metric-based 방법들의 적응/추론
- 적응 과정의 핵심 메커니즘
- Task-specific Adaptation
- 태스크별 맞춤화: 각 새로운 태스크의 특성에 맞게 모델 조정
- Support Set 활용: 소수의 예시만으로도 태스크 고유 패턴 포착
- 과적합 방지: 제한된 파라미터만 업데이트하여 일반화 능력 유지
- Fast Adaptation
- 소수 스텝: 보통 1-5번의 업데이트로 적응 완료
- 효율성: 전체 재학습 대비 극소 연산량으로 높은 성능 달성
- 메타 지식 활용: 에피소딕 학습으로 획득한 사전 지식 재활용
- Transductive vs. Inductive 추론
- Inductive: Support Set만 활용하여 적응
- Transductive: Support와 Query Set 모두 활용하여 성능 향상
- Task-specific Adaptation
- Pre-training
chat_bubble 댓글남기기
댓글남기기