Few-shot Learning Survey

tobigs-gm1·2020년 11월 25일
11

AI

목록 보기
2/2
post-thumbnail

작성자 : 이화여자대학교 김수현

1. Few-Shot Learning Introduction

Few-Shot Learning Problem

Few-Shot Learning Task?

  • Training에 사용하는 support data / Test에 사용하는 query data
  • N-way K-shot
  • N : class의 수, K : class당 이미지의 수
  • 일반적으로 성능은 N에 반비례, K에 비례
  • 보통 N은 10이하로, K는 1이나 5로 설정

기존의 Deep Neural Net의 한계

  • Large-scale training dataset이 필요함
  • 아래와 같은 적은 수(5-way 1-shot)의 training set으로 학습시키는 것은 불가능

Transfer Learning

  • Few-shot task를 해결하고자 제안됨
  • 1)Acuire knowledge : pre-trained된 network를 이용해, 2)Transfer knowledge : test phase에서 few-shot example들을 이용해 fine-tuning하고자 함
  • 한계 : Few-shot 데이터에서 overfitting
  • Few-shot learning의 목표 : Few-shot scenario에서도 잘 동작하는 transfer learning 알고리즘을 고안하는 것(ex. metric learning, meta-learning methods,...)

Few-Shot Meta Learning

  • Input : support data(labeled), query data(unlabeled)
  • Output : query 이미지에 대한 classification
  • 학습 방식
    Train "learning algorithm"
    • Meta-learner f_θ
    • f_θ를 few-shot classification task에 optimization (learn-to-learn)
      => Meta-learner를 few-shot task의 분포로 학습시키는 것

  • Training episodes는 기존의 base class data에서 샘플링
  • N classes x (K support examples + M query examples)
  • Meta-learner
    $$ f_θ(S) = m_ψ
    $$

Objective (query classification loss)
$$
min_θ\displaystyle\sum_{(S,Q)}^{}L(f_θ(S),Q)
$$

  • Meta-learning routine
    1. Training episode(S,Q)를 샘플링
    2. Classification model(m_ψ = f _θ(S))를 생성
    3. Query의 label을 predict
    4. Query classification loss로 θ를 optimize

Matching networks for one-shot learning (2016'NIPS)

Few-Shot Learning vs Meta-Learning

  • Few-shot learning : 제한된 데이터(few-shot data)로 transfer하는 것을 목표로 하는 transfer learning (ex. fine tuning, metric-learning, meta-learning)
  • Meta-learning : learn to learn. few-shot learning에 이용되는 방식 중 하나

2. Main Types of Few-Shot Learning Algorithms

Few-Shot Learning 알고리즘의 종류

  • Metric-based
  • Model-based
  • Optimization based

Metric Learning (Metric-Based)

Key Idea

  • Support 데이터와 query 데이터 간의 거리 유사도를 측정하는 방식
  • Efficient distance metric을 학습한다.
  • 주어진 support 데이터를 feature space에 나타낸다. 같은 class의 데이터는 가깝게 두고, 다른 class의 데이터는 거리가 멀어지게 학습한다.
  • Query 데이터를 유클리디안 거리(혹은 cosine 유사도)가 가까운 support 데이터의 class로 예측한다.

Metric learning을 이용한 논문

  • Siamese Neural network for one-shot image recognition (2015' ICML)
    : CNN 기반의 feature extractor 도입

  • Prototypical networks for few-shot learning (2017' NIPS)
    : Prototype - class별 support 데이터의 평균 위치로, 각 class를 대표하는 역할
    : Prototype과 query 데이터끼리의 거리 계산 -> 기존 방식보다 계산량 감소, 구조 단순화

Optimization Based Meta-Learning

Key Idea

  • Few-shot task를 parameter optimization problem으로 생각
  • 딥러닝 모델은 gradient의 backpropagation을 통해 학습한다. 그러나, gradient-based optimization은 few-shot task가 아닌 large-scale data를 위해 설계되었다.
  • Optimization based meta-learning은 적은 수의 샘플에 대한 optimization 기법에 대해 다룬다.

MAML : Optimization based meta-learning

  • Meta-learns θ -> fine-tuning을 통한 transfer learning으로 빠른 학습을 가능하게 한다.
  • $$
    min_θ\displaystyle\sum_{(S,Q)}^{}L(θ-α▽_θL(θ,S),Q)
    $$
  1. Support 데이터 S를 이용해 fine-tuning한다.
  2. Query마다 classification score을 predict한다.
  3. Query에 대한 loss를 이용해 θ를 optimize한다.
    $$
    θ ← θ- β▽_θL(θ-α▽_θL(θ,S),Q)
    $$
  • MAML은 약간의 업데이트로 서로 다른 task로 각각 최적화한 뒤(Adaptation), 이렇게 최적화된 각각의 모델로부터 gradient를 구해 서로 다른 task에 빠르게 최적화할 수 있는 공통의 초기 weight를 찾는 방식(meta-learning)으로 학습을 진행한다.

  • 위 그림에서 adaptation을 의미하는 회색 실선은 각 task의 Loss(1, 2, 3)를 계산해 모델을 업데이트하는 것을 나타낸다. 이렇게 서로 다른 task로부터 업데이트함으로써 특정 task에 overfitting되는 것을 방지할 수 있다.

  • Meta-Learning을 의미하는 검은 선은 위에서 각각 task에서 계산했던 gradient를 모아 gradient의 gradient를 계산해 모델을 업데이트하는 것을 의미한다. 이 과정에서 여러 task에 빠르게 최적화할 수 있는 공통의 weight로 점점 업데이트되고(검은 실선), 이렇게 찾은 weight로부터 다시 특정 task에 모델을 adaptation함(회색 점선)으로써 우리가 원하는 target task에 빠르게 최적화할 수 있다. 이러한 adaptation/meta-learning 과정을 최적의 weight를 찾을 때까지 반복함으로써, 우리가 원하는 target task에 빠르게 수렴하는 모델을 얻을 수 있다.

MAML의 단점

  • 계산량이 많고 복잡하다.
  • Large model일 경우 training하기 어렵다.
  • Class별로 meta learner를 따로 학습해야 한다.

Optimization-based 논문

  • Optimization as a model for few-shot learning (2016)
  • On First-Order Meta-Learning Algorithms(2018)

Model-Based Meta-Learning

  • 모델의 내부나 외부에 기억장치(memory)를 별도로 둠으로써, 모델 학습속도를 조절할 수 있게 한다.
  • Meta Learning with Memory Augmented Neural Networks (2016)
  • Meta Networks (2017)

Usage in Generation Task

Few-Shot Adversarial Learning of Realistic Neural Talking Head Models (2019' ICCV)

Goal

  • Target 이미지의 특징(표정)을 landmark로 나타내어, source 이미지의 스타일을 입힌다.

Architecture

  • Generater, Embedder, Discriminator

  • Meta learning architecture

    • Meta-training 단계 : 모델은 face landmark를 realistic한 사진으로 변환하는 방법을 학습한다. 여기서, 다양한 인물(논문에서는 약 140,000명)을 하나의 모델에서 학습시켜 generalize하고자 한다.

    • Fine-tuning 단계 : 앞 단계에서 다양한 인물을 일반화하여 학습하기 때문에, fine-tuning 단계에서 few-shot의 이미지로 talking head를 빠른 시간에 학습할 수 있다. Fine-tuning 단계에서는 meta-learning에서 학습해 놓은 파라미터들로 시작하여 unseen한 데이터에 대해 빠르게 학습한다.

[Reference]

https://lilianweng.github.io/lil-log/2018/11/30/meta-learning.html#model-based
https://www.youtube.com/watch?v=MaGudzppu3I&t=11567s
https://www.youtube.com/watch?v=hE7eGew4eeg&t=687s
http://dsba.korea.ac.kr/seminar/?mod=document&pageid=1&keyword=few&uid=63
https://openaccess.thecvf.com/content_ICCV_2019/html/Zakharov_Few-Shot_Adversarial_Learning_of_Realistic_Neural_Talking_Head_Models_ICCV_2019_paper.html
https://www.kakaobrain.com/blog/106

profile
투빅스 생성모델 세미나입니다.

9개의 댓글

comment-user-thumbnail
2020년 11월 29일

투빅스 14기 한유진

  • Few-shot Learning에 대한 주제로 김수현님께서 강의를 진행해주셨습니다.
  • 기존의 DNN은 많은 training dataset이 필요하기 때문에 적은 수의 data로 학습시키는 것은 불가능하다는 단점 때문에 등장하게된 것이 few-shot입니다. few-shot learning은 few-shot 데이터로 tranfer하는 것을 목표로 하는 transfer learning으로 meta learning은 이에 이용되는 방식 중 하나입니다. mata learning은 학습을 학습하는 것으로 meta-learner를 few-shot task의 분포로 학습시킵니다.
  • few-shot learning 알고리즘 종류에는 metric-based, model-based, optimization based, graphNN이 있다고 합니다. metric-based는 cosine유사도를 이용하여 동일 class를 가깝게 묶이게끔 학습하도록 하는 방법이고, model-based는 모델의 내부나 외부에 memory를 별도로 둠으로써 모델 학습속도를 조절할 수 있게 하는 방법으로 요즘에는 많이 사용하지 않는다고 합니다. optimization based은 적은수의 샘플에 대한 최적화 기법을 다루는 것으로 MAML알고리즘이 있습니다. MAML은 조금의 업데이트로 서로 다른 task로 최적화를하고 각 모델로부터 gradient를 구하여 빠르게 최적화할 수 있는 공통의 초기가중치를 찾는 방식으로 학습을 진행한다고 합니다. 그렇기 때문에 계산량이 많아지고 task별로 따로 학습을 해야한다는 단점을 가지고 있습니다.

meta learning, transfer learning, fine tuning 등 헷갈리는 것들을 다시한번 정리해볼수 있었던 수업이었습니다. 내용이 무척 어려움에도 불구하고 알고리즘을 이해하기 쉽게 열심히 설명해주셔서 좋았습니다! 감사합니다!

답글 달기
comment-user-thumbnail
2020년 12월 1일

투빅스 14기 김상현
이번 강의는 few-shot learning에 대한 survey로 투빅스 김수현님이 진행해주셨습니다.

  • Few-shot learning: 기존의 Deep Neural Net의 경우 large-scale training dataset이 필요함으로 적은 dataset으로 학습에 어려움이 있다. 따라서 few-shot scenario에서도 잘 동작하는 transfer learning 알고리즘을 고안
  • Meta learning: support/query 쌍의 training episode를 샘플링 한 후 classification model을 생성한다. Query의 label을 예측하고 이를 통해 나온 loss로 classification model을 최적화한다.
  • Metric based meta learning: support와 query 데이터 간의 거리 유사도를 측정하는 방식으로 support 데이터가 같은 class인 경우 거리가 가깝게 학습, 다른 class인 경우 거리가 멀어지게 학습 이 후 query 데이터를 support 데이터와 거리가 가까운 class로 예측한다.
  • Optimization based meta learning: 각각의 task에 대해 loss를 계산한 후 공통의 초기 weight를 찾는 방식으로 학습을 한다. 이렇게 학습한 경우 특정 task에 overfitting 되는 것을 막을 수 있다. 이렇게 최적화된 parameter를 이용해 우리가 원하는 target task를 빠르게 최적화할 수 있다. 하지만 계산량이 많고, task별로 학습해야하는 단점이 있다.

Few-shot learning의 개념과 알고리즘들의 종류 및 원리에 대해 이해할 수 있었습니다.
유익한 강의 감사합니다!

답글 달기
comment-user-thumbnail
2020년 12월 1일

투빅스 14기 박준영
이번 강의는 few-shot learning에 대한 survey로 투빅스 김수현님이 진행해주셨습니다.

  • 기존의 DNN은 큰 규모의 training dataset이 필요한 한계가 있다. 적은 수의 training set으로 학습시키기위해 Transfer Learning이 고안되었다.

  • few-shot learning 알고리즘의 종류는 metric-based, model-based, optimization based가 있다.

  • metric-based learning 방법 같은 경우 train data인 support data와 test data인 query데이터의 유사도를 측정하는 방식이다. 주어진 support 데이터를 feature space에 나타내어 같은 class의 데이터는 가깝게 두고, 다른 class 데이터는 멀어지게 학습한 뒤에 test데이터를 유클라디안 or cosine 유사도가 가까운 train 데이터의 class로 예측하는 방식이다.

  • optimization based learning의 경우 few-shot문제를 parameter optimization problem으로 생각하여 gradient의 backpropagation을 통해서 학습을 시킨다. 이때 few-shot optimization을 위해 MaML 최적화 방법을 사용했다. MAML 최적화 방식은 서로다른 task로 최적화 한뒤 각기다른 모델의 gradient를 구해 공통의 weight를 찾는 방식으로 최적화를 진행한다. 이를 통해 특정 task에 overfitting문제를 해결할 수 있었다. 하지만 계산량이 많고 복잡하고 large model의 경우 training하기 어렵고 class 별로 따로 학습해야하는 불편함이 있다.

  • model-based learning 방법의 경우 모델의 내부나 외부에 기억장치를 별도로 두어 모델의 학습 속도를 조절한다.

Few-shot learning의 개념과 종류에 대해 배울 수 있었던 유익한 강의였습니다. 감사합니다!

답글 달기
comment-user-thumbnail
2020년 12월 20일

투빅스 13기 이예지:
이번 강의는 ‘Few-shot learning survey’ 강의로, 김수현님이 진행하였습니다.

기존 한계

  • DNN: Large-scale training dataset이 필요함
  • Transfer learning: overfitting

Few-Shot Meta Learning

  • Meta learner를 few-shot task의 분포로 학습시키는 것
  • Meta-learning: learn to learn
  • Few-shot learning: 제한된 데이터로 transfer하는 것을 묵표로 하는 transfer learning

Few-shot Learning 알고리즘

  • Metric based
Support 데이터와 query 데이터 간의 거리 유사도를 측정하는 방식
  • Model based
모델의 내부와 외부에 memory를 별도로 두어, 모델 학습속도를 조절함
  • Optimization based
Few-shot task를 parameter optimization problem으로 생각함

헷갈리는 내용에 대해 정리할 수 있는 기회가 되는 강의였습니다!
좋은 강의 감사합니다 :)

답글 달기
comment-user-thumbnail
2020년 12월 21일

투빅스 12기 김태한

이번 강의는 few-show learning에 대하여 김수현님께서 진행해주셨습니다.
few-shot learning은 기존의 많은 양의 dataset으로 학습을 해야하는 DNN을 transfer learning을 이용하여 적은 양의 dataset으로 학습시키는 방법입니다. 이때 meta learning은 학습하는 방법을 학습하는 것으로 few-shot meta learning을 통해 few-shot task의 분포를 학습하는 방법도 있습니다.
이러한 few-shot learning의 알고리즘에는 metric-based, model-based 등의 방법이 있으며, 각 task의 loss를 계산 후 초기 공통 weight를 찾는 optimization based learning도 있습니다.
특히 마지막에 나왔던 Few-Shot Adversarial Learning of Realistic Neural Talking Head Models (2019' ICCV) 논문의 내용과 결과는 매우 흥미로웠습니다.

좋은 강의 감사합니다!

답글 달기
comment-user-thumbnail
2020년 12월 21일

투빅스 14기 김민경

  • few-shot learning에서는 데이터셋을 training에 사용하는 'support data'와 test에 사용하는 'query data'로 구성한다. 이것을 ‘N-way K-shot’ 문제라고 하는데, 여기서 N은 class의 수, K는 class 당 이미지의 수를 의미한다.
  • 기존 Deep Neural Net은 대량의 데이터를 필요로 한다는 한계가 있기 때문에 few-shot task를 해결하기 위해 transfer learning이 제안 되었다. transfer learning은 많은 labeled data로 pre-trained된 network를 fine-tuning함으로써 few-shot learning을 가능하게 한다. 하지만 overfitting의 한계가 존재한다. 따라서 few-shot learning의 목표는 few-shot scenario에서도 잘 학습되는 metric learning, meta learning 같은 ‘transfer learning 알고리즘’을 고안하는 것이다.
  • few-shot learning에 이용되는 방식 중 하나인 meta learning은 학습하는 법을 배우는 것인데, meta-learner를 few-shot task의 분포로 학습시키는 방식이다.
  • metric learning (metric-based)은 support data과 query data 간의 거리 유사도(유클리디안 거리(혹은 cosine 유사도))를 측정해서 query data의 class를 예측하는 방식이다.
  • few-shot learning에 대한 기초 지식과 심화 내용, GAN에 적용된 paper까지 접할 수 있어 알찬 강의였습니다. 감사합니다:)
답글 달기
comment-user-thumbnail
2020년 12월 23일

투빅스 11기 이도연
Few-shot Learning survey로 few-shot에 대한 개념부터 few-shot을 적용한 generation task의 논문까지 다뤘습니다. 좋은 강의 감사합니다!

  • 기존 DNN은 적은 수의 training set으로는 학습이 불가능하다는 한계가 있다. 이러한 few-shot task를 해결하고자 Transfer Learning이 제안되었고, 이는 pretrain된 network를 이용해 few-shot example들을 fine-tuning하는 것이다.
  • meta-learning은 few-shot learning에 이용되는 방식 중 하나로 learning to learn이라고 알려져있다. 여기에는 크게 model-based, metric-based, optimization-based의 3가지 접근 방식이 있다.
  • model-based는 모델의 내부나 외부에 memory를 별도로 두어 모델 학습 속도를 조절할 수 있도록 한다.
  • metric-based는 support 데이터와 query 데이터 간의 거리 유사도를 측정하는 방식으로 efficient distance metric을 학습한다.
  • optimization-based는 few-shot task를 parameter optimization problem으로 생각하고, parameter를 효율적으로 update해서 새로운 task에 빠르게 적응할 수 있도록 한다.
  • [Few-Shot Adversarial Learning of Realistic Neural Talking Head Models] 에서는 target 이미지의 특징(표정)을 landmark로 나타내어 source 이미지의 스타일을 입힌다. meta-training 단계에서는 face landmark를 실제같은 사진으로 변환하는 방법을 학습한다. 논문에서는 약 140,000명을 하나의 모델에서 학습시켜 일반화하고자 한다. fine-tuning 단계에서는 앞 단계에서 다양한 인물을 일반화하여 학습하기 때문에, few-shot의 이미지로 talking head를 빠른 시간에 학습할 수 있다.
답글 달기
comment-user-thumbnail
2020년 12월 23일

투빅스 13기 신민정

이번 세미나는 김수현님께서 강의해주셨습니다.

용어정리

  • support data S : training에 사용되는 data (labeled)
  • query data Q : test에 사용되는 data (unlabeled)
  • N-way K-shot : N개의 class, class당 이미지 K개

Few-Shot Meta Learning은 task자체에 optimization시키는 것입니다. 즉 meta-learner를 few-shot 분포에 맞게 학습시킵니다.
Few-Shot Meta Learning의 과정은 다음과 같습니다.

  1. Training episode(S,Q)를 샘플링
  2. Classification model($m_ψ = f_{\theta}(S)$)를 생성
  3. Query의 label을 predict
  4. Query classification loss로 θ를 optimize

Few-Shot Learning의 알고리즘은 Metric-based, Model-based,Optimization based로 분류할 수 있습니다.

  • Metric based learning : S의 분포와 Q의 분포의 거리기반 측정방식입니다. S에서 같은 class끼리는 응집되고 다른class간의 거리는 멀어지게 학습합니다. Query data와 가장 가까운 S의 label로 classification합니다.

Few-shot learning,Meta-learning의 개념을 잡을 수 있는 아주 유익한 강의였습니다. 감사합니다.

답글 달기
comment-user-thumbnail
2020년 12월 31일

투빅스 14기 정재윤
이번 주는 few-shot learning survey를 주제로 김수현님께서 강의해주셨습니다.

  • 기존의 모델들은 training dataset이 많이 필요하다는 한계가 있습니다. 그래서 이를 극복하기 위해 나온 개념이 few-shot learning으로 dnn을 transfer learning을 이용하는 방법입니다.
  • Few-shot learning 알고리즘의 종류는 metric-based, model-based, optimization based, graghNN이 있습니다.
  • Few-shot meta learning은 meta learner를 few shot task의 분포로 학습시키는 것으로 learn to learn이라는 표현을 사용합니다. 즉, 학습하는 방법을 학습한다(?)의 의미입니다. 특히 이 부분은 게시글 아래의 논문을 보면 더 직관적으로 알 수 있습니다.

Few- shot learning에 대해서 한 번 깔끔하게 집고 넘어갈 수 있었던 강의였습니다.

답글 달기