[논문 리뷰] (ImgCls) Matching Networks for One Shot Learning

빵 반죽·2023년 8월 21일
0

NIPS 2016

0. 사전 지식

  • Parametric model vs. Non-Parametric model:
    • 전자는 데이터 분포에 대해 잘 안다고 가정, 그와 관련된 인자(또는 모델 구조)를 사전에 정한다. 파라미터 수가 정해져 있다.
    • 후자는 데이터를 모른다고 가정, 모델이 알아서 다 학습한다. 파라미터 수는 데이터 사이즈를 따른다.
    • 따라서 데이터에 대한 사전 지식이 없다면 후자가 유용하다.
    • more info
  • One shot learning:
    • 통상적으로 신경망을 학습하는데 많은 데이터가 든다 <-> 사람은 한 사진만 보고도 학습이 가능하다
    • 하나의 사진과 레이블만을 보고 그 클래스에 대해 학습하는 것이 목표
  • Metric Learning:
    • 데이터 간의 유사도(또는 거리)를 머신러닝 알고리즘으로 만드는 것
    • 좋은 metric이란, 서로 다른 클래스를 잘 구분해주는 embedding
    • metric 예시: Cosine Similarity(두 벡터 간 각도값)
  • Catastrophic forgetting:
    • A 데이터로 학습된 모델을 다시 B 데이터로 학습할 때, A에 대한 정확도(기억력)이 떨어지는 현상
    • 데이터를 더 많이 바꿀수록 초기 데이터에 대해 정확도가 현저히 떨어진다.
  • LSTM(Long Short-term Memory)

1. Introduction

  • Parametric model의 문제
    1. 데이터가 많이 필요 -> 큰 데이터 구축의 어려움, 작은 데이터에 overfit을 방지하는 기존 방식(regularization, augmentation)은 근본적인 해결이 아님
    2. 느린 학습과정 -> SGD를 통해 모델이 파라미터를 조금식 수정하며 학습
  • Non-parametric model
    1. 새로운 데이터에 대한 학습 빠름, catastrophic forgetting 없이
    2. 학습이 필요 없고 metric 선정에 성능이 좌우됨
  • 두 종류의 모델의 장점만을 합쳐, 새로운 데이터에 대한 빠른 학습과 일반화를 갖춘 모델을 통해 one shot 모델을 만들고자 함
    • 또한 one shot 분야의 벤치마크 제시

2. Model Architecture

  • 서포트 세트 S={(xi,yi)}i=1kS=\{(x_i,y_i)\}_{i=1}^{k}와 대응되는 classifier cSc_S 찾기

    ScSS\rightarrow c_S is defined as P(y^x^,S)P(\hat{y}\mid\hat{x},S)
    objective is to return yy such that argmaxyP(yx^,S)arg\displaystyle\max_yP(y\mid\hat{x}, S)
    Resulting in, y^=i=1ka(x^,xi)yi\hat{y}=\displaystyle\sum_{i=1}^{k}a(\hat{x},x_i)y_i is non-parametric(memory depens on support size kk),
    where a(x^,xi)=ec(f(x^),g(xi))/j=1kec(f(x^),g(xi))a(\hat{x},x_i) = e^{c(f(\hat{x}), g(x_i))}/\sum_{j=1}^{k}e^{c(f(\hat{x}), g(x_i))} and c(x,y)c(x,y) being the cosine distance between xx and yy

  • Full Context Embedding ff, gg

    • VGG 또는 Inception과 같은 신경망(주로 pretrained)
    • 기존의 g(xi)g(x_i), f(x^)f(\hat{x})SS와 상관 없다. 그러나 P(y^x^,S)P(\hat{y}\mid\hat{x},S)이므로 조건에 이를 포함해야 한다. -> g(xi,S)g(x_i,S)
      • SS 내에서 임베딩되므로 서로 비슷하거나 다름의 정도가 잘 반영
      • bidirectional LSTM 사용하여 SS 반영
      • ff 는 신경망을 통과하여 만들어진 feature ff'g(S)g(S)를 LSTM의 입력값으로 넣어 attention값을 구한다.

        f(x^,S)=attLSTM(f(x),g(S),K),Kf(\hat{x},S)=attLSTM(f'(x),g(S),K), K is the fixed number of unrolling steps of LSTM

3. Training

  • Task TT 가능한 label 조합 LL의 분포, LTL\sim T
  • Support set SS와 batch BBLL에 따라 추출된 샘플
  • ff, gg의 파라미터 θ\theta는 다음과 같이 최적화 할 수 있다.

    θ=argmaxθELT[ESL,BL[(x,y)BlogPθ(yx,S)]]\theta = \arg \displaystyle\max_{\theta}E_{L\sim T}\left[E_{S\sim L, B\sim L}\left[\displaystyle\sum_{(x,y)\in B}\log P_{\theta}(y\mid x,S)\right]\right]

  • non-parametric해서 새로운 클라스에 대해 finetuning 할 필요가 없다.

4. Experiments

  • 파인튜닝 필요 없다면서 파인튜닝을 한다...
  • Full Context Embedding(FCE)가 확실히 성능에 기여한다.
  • 학습을 위한 LL과 추론을 위한 LL'의 분포가 많이 차이나면 성능이 많이 떨어진다.
    • 랜덤으로 LL'을 구성했을 때와 강아지와만 관련되게 LL'로 구성했을 때 후자의 성능이 현저히 낮다. LL에는 강아지 이외 훨씬 다양한 레이블이 분포되어있어서, 오로지 강아지에 대한 fine-grain task에 적용이 잘 안 되는 것이다.

5. Conclusion

  • One shot task를 위한 모델은 학습 역시 one shot으로 진행하는 것이 성능을 향상한다.
    • Inception과 같은 당시 SOTA보다 one shot에서 성능이 좋았음
  • Non-parametric한 구조를 신경망에 추가하면 모델이 과거에 학습한 것을 잘 기억하고 새로운 자료에 대한 학습이 빠르다.
    • 그러나 SS의 사이즈가 커질수록 그라디언트 계산에 오버헤드가 생긴다.
  • 앞선 강아지 LL'에 대한 실험처럼, 학습 데이터와 추론 데이터의 분포에 bias가 있는 경우에 정확도가 떨어진다.

0개의 댓글

관련 채용 정보