LEARNING FROM FEW EXAMPLES:A SUMMARY OF APPROACHES TO FEW-SHOT LEARNING 리뷰
https://arxiv.org/abs/2203.04291
Learning from Few Examples: A Summary of Approaches to Few-Shot Learning
Few-Shot Learning refers to the problem of learning the underlying pattern in the data just from a few training samples. Requiring a large number of data samples, many deep learning solutions suffer from data hunger and extensively high computation time an
arxiv.org
최근 AI와 사람이 만든 창작물을 비교하기 위해 알아보며 few shot learning, Zero shot learning에 대하여 공부를 하고 있습니다.
이번 포스팅에서는 few shot learning에 대한 설명을 진행해보겠습니다.
Meta-Learning
우선 Meta-Learning에 대하여 설명을 하겠습니다. 우선 이 학습 방식은 대부분의 few shot learning이 사용하는 방식입니다.
머신러닝을 통해서 좋은 모델을 만들기 위해서는 일반적으로는 수많은 샘플을 활용해서 학습을 시키는 것이 필요합니다.
하지만 사람의 경우에는 빠르고 효율적으로 새로운 개념이나 기술들을 학습을 할 수 있습니다. 예를 들어 자전거, 자동차를 타는 방식, 고양이와 개를 분류하는 방식 매우 빠른 속도로 학습을 할 수 있습니다.
머시러닝에서도 이와 같이 적은 샘플을 가지고 새로운 개념과 기술을 빠르게 학습하는 것이 가능한가? 이 부분을 바탕으로로 만들어진 학습방식이 Meta-Learning입니다.
보통 좋은 meta-learning model이라고 하면, training time 동안에 접하지 않았던 새로운 task나 environment에 대해서 잘 적응하거나, 일반화가 잘 되는 것을 말하게 됩니다.
adaptation process은 test 과정에서 일어나게 되는데, 사실 이 때에는 새로운 task configuration에 대해서 제한적으로 노출이 되어 있습니다. 이렇게 적응된 모델은 새로운 task를 잘 수행할 수 있습니다.
이 것이 바로 meta-learning이 learning to learn이라고 알려지는 이유입니다.
FSL에 대한 접근 방식은 메타 학습 기반 FSL과 비메타 학습 기반 FSL로 분류됩니다. 세 가지 주요 메타 학습 접근 방식은 메트릭 기반, 최적화 기반 및 모델 기반 메타 학습입니다. 또한 메타 학습을 사용하는 FSL 문제의 변형은 하이브리드 접근 방식으로 분류됩니다.
보통 좋은 meta-learing model이라고 하면, 학습하는 task에 대한 다양성(variety)에 대해서 학습되어야 하고, 잠재적으로 인지되지 못한 task를 포함해서 여러 task들의 분포상에서 최고의 성능을 낼 수 있도록 최적화되어야 한다. 각 task들이 dataset 로 구성되어 있는데, 여기에는 각각 feature vector들과 true label들이 포함되어 있다. 이때 optimal model parameter는 다음과 같이 정의할 수 있다.
Problem Definition
위의 수식은 일반적인 지도 학습 설정에서 우리는 데이터 세트 D = {(xk,yk)}은 우리가 작업을 할 대상인 T에 관점을 둡니다. 일반적으로 D를 D train과 D test로 구분하여 진행합니다.
위의 수식 t는 훈련 샘플의 수를 나타냅니다. 우리는 훈련 세트 Dtrain에서 매개 변수 θ을 최적화하고 테스트 세트 Dtrain에서 일반화 성능을 평가합니다. 따라서 여기서 학습 문제는 파라미터 θ를 2로 하여 함수 f를 근사화하게 됩니다.
여기서 L은 예측 f(x, θ)와 실제 레이블 사이의 오차를 측정하는 손실 함수입니다.
훈련에서 집합을 Tmeta-train = {T1, T2, ..., Tn}으로 표시하고 테스트에서 집합을 Tmeta-test = {Tn+1, Tn+2, ..., Tn+k}로 표시합니다.
이에 따라 메타 데이터 세트에 대한 훈련 데이터 세트는 Dmeta-train = {D1, D2, ..., Dn}이고 테스트 데이터 세트는 Dmeta-test = {Dn+1, Dn+2, ..., Dn+k}입니다.
메타 학습자의 매개 변수 θ는 Dmeta-train에 최적화되고 일반화 성능은 Dmeta-test에서 테스트됩니다.
다음, 메타 학습 문제는 다음과 같이 매개 변수 θ로 함수 f를 근사화하는 것입니다:
메타 학습자는 작업 Ti ~ p(T)가 주어지면 훈련 데이터 Dtraini가 주어지면 테스트 데이터 Dtestig에 대한 성능이 최적일 수 있는 매개 변수 θ를 학습합니다.
The Few-Shot Classification Problem
우선 task T를 분류 작업으로 간주합니다. 여기서 x는 입력이고 y는 출력 레이블입니다.
목표는 함수 f를 매개 변수 θ로 근사화하는 것입니다.
이는 일반적으로 충분한 훈련 데이터 Dtrain에 중점을 가집니다. 그래서 훈련 Data set인 t의 수가 적으면 함수 f를 근사하기 어렵습니다.
위의 예시에 나온 dataset 는 여러 쌍의 feature vector와 label들을 포함하고 있고, 라고 표현할 수 있고, 이때 각 label은 우리가 알고있는 label set 에 속해 있다하면 이제 우리가 만들 parameter 를 가진 classifier 는 주어진 데이터가 feature vector 에 대해서 class 에 속할 확률인 를 출력으로 내보낼 것이다.
각 작업 Ti는 훈련 세트 Dtraini와 테스트 세트 Dtesti가 있는 이진 분류 작업입니다.
일반적으로 few-shot classification task을 표준 M-way-K-shot task으로 정의합니다.
일반적으로 K는 작은 숫자이며 |Dtrain| = M × K입니다.
성능은 예측 yθ = f(x, θ)와 실측값에 대해 정의된 손실 함수 L(θy, y)에 의해 측정됩니다.
M-way-K-shot 작업은 일반적으로 M보다 훨씬 많은 클래스를 가진 더 큰 데이터 세트에서 샘플링됩니다.
Meta-Learning-based Few-Shot Learning
메타 학습의 목표는 작업 분포 p(T)에서 무작위로 샘플링된 작업 Ti에 대한 성능이 최적이 되도록 매개 변수 θ로 함수 f를 근사화하는 것입니다.
여기서도 Dtrain의 최적화의 중요성을 말하고 있습니다.
Main Approaches
support set S와 질문 데이터 Q가 있는 태스크 T를 중심으로, 매개 변수가 θ인 few-shot classification 모델을 f라고 합니다. 그런 다음 (x, y) ∈ Q의 경우, FSL에 대한 메타 학습 접근법은 출력 확률을 모델링하는 방식으로 차별화될 수 있습니다. Pθ(y|x)
Metric-based Meta-Learning
Metric-based Meta-Learning이란 데이터 샘플에 대한 거리 함수를 학습하는 방법입니다.
두 개의 이미지-라벨 쌍(x1, y1)과 (x2, y2) 그리고 두 이미지 사이의 거리를 측정하기 위해 기능하는 거리 d라고 합니다.
만약 우리가 라벨을 할당한다면 질문 이미지Q x3에 대해 두 거리 d(x1, x3) 및 d(x2, x3)를 계산하고 거리가 더 짧은 이미지에 해당하는 레이블을 할당할 수 있으며, 이는 가장 가까운 이웃 알고리즘(k-NN)의 핵심 아이디어이기도 합니다.
여기서의 차별점은 이미지와 같은 고차원 입력은 일반적으로 거리를 계산하기 전에 입력을 더 낮은 차원으로 변환하기 위해 임베딩 함수 g를 사용합니다.
Convolutional Siamese Networks
그림 처럼 두 네트워크는 결합된 뉴런이 거리를 측정하는 출력에서 결합됩니다.
두 이미지가 동일한 클래스에 속하는지 여부를 인식하도록 훈련을 합니다.
다음으로 네트워크는 동일한 클래스에 속하는 두 이미지의 확률 점수(유사성)를 출력합니다.
질문 이미지와 다른 클래스의 지원 이미지 간의 유사성 점수를 비교하여 인식합니다. 이 부분은 그림에 설명되어 있습니다. 여기서 임베딩 함수 gθ1은 CNN이고 두 임베딩 벡터 사이의 거리는 단순히 L1 거리입니다. |gθ1 (x1) - gθ1 (x2)|.
Convolutional Siamese Networks, Mehrotra et al. 임베딩 함수 gθ1로 광역 잔차 네트워크를 사용하는 SRPN(Skip Residual Pairwise Networks)을 제안하였습니다.
Matching Networks
서포트 세트 S = {xi, yi} K k=1 및 쿼리 xˆ가 주어지면 Matching Networks 는 주의 커널 a(xˆ, xk)를 사용하여 출력 레이블 y에 대한 확률 분포를 정의합니다.
주의 커널은 기본적으로 코사인 유사도를 계산합니다.
서포트 예제와 질문 예제를 포함한 다음 softmax를 사용하여 유사성 점수를 정규화합니다.
그런 다음 분류기의 출력은 주의 커널 a(ˆx, xk)에 의해 가중치가 부여된 지원 샘플의 레이블(원핫 인코딩)의 합으로 정의됩니다.
질문(fθ)에 대한 임베딩 함수와 서포트 집합(gθ1)에 대한 임베딩 함수는 동일합니다.
즉, f = g. 또는, Matching Networks는 임베딩 기능이 주어진 지원 이미지 x 및 지원 세트 S에 대해 상황에 따라 이미지를 임베딩하는 전체 컨텍스트 임베딩을 사용할 것을 제안합니다.
S가 gθ1(x; S)인 경우 gθ1을 사용합니다. 질문 xˆ의 경우 마찬가지로 포함은 fθ(x; S)입니다.
즉, S는 xˆ에서 f까지 포함하는 방법을 수정할 수 있어야 합니다.
Prototypical Networks