[논문 리뷰] (ImgCls) Few-Shot Classification with Feature Map Reconstruction Networks

빵 반죽·2023년 8월 23일
0

CVPR 2021

0. 사전지식

  • Few-shot learning
    • episode마다 n-way, k-shot
    • 새로운 라벨에 대한 작은 데이터로
  • class-agnostic metric learning techniques
    • 클래스에 대한 사전 지식 없이 라벨간 차이 또는 비슷함을 잘 나타내는 지표를 알아서 학습하기 -> latent space에서의 거리가 기준
    • linear classifier 대신 투입
  • meta-learning, meta-training
    • learning to learn
  • Ridge Regression 강의, 정리본
    • linear combination 계수(weight)의 L2 Norm 제한
    • <-> LASSO: L1 Norm 제한
  • Frobenius Norm ||\cdot||
    • 행렬의 원소 제곱의 합의 루트값 (여기선 tr(AAT)tr(AA^T)와 같다고 생각하면 된다)

1. Intro

  • few-shot 문제를 해결하기 위한 metric learning
    • 주로 CNN으로 뽑아낸 feature(latent vector)를 metric space(latent space)에서 metric 정의
    • 과연 이러한 기존의 image -> vector 과정에서 이미지의 특성이 잘 반영되는가?
      • Average Pooling/Flattening: 픽셀의 위치에 대한 정보에 편향될 수 있음(단순 위치 또는 포즈)
      • 그렇다고 Larger, more responsive receptive field? -> 그럴듯하지만 틀린 결과가 많아진다. (Tradeoffs)
    • 이상적인 latent vector: 대상의 공간적 특성을 잘 보존하면서도, 단순 위치 또는 형태에만 의존하지 않는 값
  • Feature Reconstruction Network(FRN)
    • Feature Reconstruction: 추론하고자 하는 대상의 feature map과 같게 few-shot support set의 ???(정확히 어떻게 만드는 건지 알아볼 필요가 있음)로 pool을 만듦, 원소 가중 합으로 복원 -> 얼마나 같게 복원이 가능한지가 metric인 셈(같은 클래스일수록 embedding이 비슷해서 복원하기 수월, 근데 이런 정성적인건 어떻게 증명함?벡터 방향이 슷해서 무게 조작이 많이 안 들어서 인가, 학습하면서 무게 조작이 천천히 일어날텐데, 오차가 많을 것이다?)
    • full feature map 복원, 기존 support 셋의 위치 정보에 의존하지 않게 pool 생성 -> 앞서 말한 tradeoff 피해가기~~
    • Ridge regression으로 구현

2. Previous Works

  • Few-shot learning setup: n-way, k-shot
    • 전체 task에서 episode(subset of classes) 추출, n개의 class -> n-way
    • 각 클래스 내 이미지는 support/query set으로 나누는데, support set이 더 작다. support set에 k개의 이미지 -> k-shot
    • 각 episode를 서로소로 구성하여 SGD로 반복 학습 -> 같은 distribution 내에 새로운 task를 빨리 배우는 것을 학습(meta-learning)
  • Few-shot learning: 두 가지 방법론
    • Optimization-based method: 새로운 task에 적용이 빠른 parameter를 학습
    • Metric-based method: task에 독립적인(새로운 task에도 잘 되도록?) embedding을 학습
    • 그 외에도 기존 end-to-end classifier 모델을 약간만 변형하여 few-shot task에 적용 -> 좋은 결과를 토대로 pre-train 후 meta-learning을 적용하는 경우도 있다.
  • Few-shot classification through reconstruction:
    • DeepEMD, CrossTransformer(CrossAttention)

3. Methodology

간단하게 생각하면 얼마나 비슷하게 복원 가능한지가 그 클래스로 분류될 가능성이다.

  • Feature Map Ridge Regression

    XsX_s is n-way, k-shot episode set of support images.
    Objective: Predict class label yqy_q of query image xqx_q

    QRr×dQ\in \mathbb{R}^{r\times d} is a feature map of image xqx_q, with rr being height times width and dd being the number of channels.
    ScRkr×dS_c\in \mathbb{R}^{kr\times d} is a pool of kk feature maps of support images for class cCc\in C

    Objective -> Find weight WRr×krW\in\mathbb{R}^{r\times kr} such that QWScQ\approx WS_c
    Optimal WW, or Wˉ\bar{W} can be expressed as a least-squares problem with ridge regression(penalty λ\lambda):
    Wˉ=arg minWQWSc2+λW2\bar{W}=\displaystyle\argmin_W||Q-WS_c||^2 +\lambda||W||^2
    Closed form solution using matrix calculus:
    Wˉ=QST(ScScT+λI)1\bar{W}=QS^T(S_cS_c^T+\lambda I)^{-1}
    Qcˉ=WˉSc\bar{Q_c}=\bar{W}S_c

    To calculate the probability of class membership Euclidean distance is used:
    Q,Qˉc=1rQQcˉ2\langle Q,\bar Q_c\rangle=\displaystyle\frac{1}{r}||Q-\bar{Q_c}||^2
    P(yq=cxq)=e(γQ,Qˉc)cCe(γQ,Qˉc)P(y_q=c|x_q)=\displaystyle\frac{e^{(-\gamma\langle Q,\bar Q_c\rangle)}}{\sum_{c'\in C}e^{(-\gamma\langle Q,\bar Q_{c'}\rangle)}} where γ\gamma is temperature(learned)
    Then cross-entrophy loss is calculated.

  • Learning the Degree of Regularization
    • weight Wˉ\bar W를 알아가는 과정의 난이도: krkr개의 변수에 대한 식 dd 가지
      • kr>dkr>d : 답을 도출하기에 식이 적다(trivial). Feature space(Rr×d\mathbb R^{r\times d})를 support feature(Rkr×d\mathbb R^{kr\times d})가 span한다.
      • d>krd>kr : 답을 도출하기에 식이 많다. 모든 식에 근사하는 답을 찾기 힘들다.
    • λ\lambdakrd\displaystyle\frac{kr}{d}에 비례하게 만들어서 해결한다.
    • λ\lambda 조절만으론 Qˉ\bar Q의 평균값이나 클래스간 차별성을 보장하기 어렵다. 따라서 ρ\rho를 추가하여 보완한다.

      Qˉc=ρWˉSc\bar Q_c=\rho\bar WS_c

    • λ\lambdaρ\rho는 학습 가능하다. 값이 0보다 크도록 다음과 같이 정의한다.

      λ=krdeα\lambda=\displaystyle\frac{kr}{d}e^\alpha, ρ=eβ\rho=e^\beta

    • 따라서 학습하는 파라미터는 총 3가지 α\alpha, β\beta, γ\gamma이다.
  • Auxiliary Loss

    Laux=iCjC,ijS^iS^jT2L_{\mathrm{aux}}=\displaystyle{\sum_{i\in C}\sum_{j\in C, i\ne j}||\hat S_i\hat S_j^T||^2}

    • 서로 다른 클래스에 대한 support feature들이 feature space를 span하도록 유도
  • Pre-Training
    • Feature extractor가 spatial 정보를 보존하려면 기존의 avgpooling이 적용된 신경망 기학습 방식은 안된다. 따라서 ScS_c를 대신할 McM_c를 임시로 만들고, 같은 공식으로 이를 학습하므로써 FRN에 적합한 extractor를 학습한다. (학습 후에 MM 파기)
    • α\alpha, β\beta 고정 후 γ\gamma 학습
    • 여기가 핵심 아니냐..?
    • 그러나 이 pretrain된 FRN과 episodic training으로만 학습된 FRN을 비교하면 후자가 더 좋다. 따라서 전체 데이터로 학습하는 pretrain하고 few-shot 학습을 해야 한다.

4. My Opinion

  • pretrain을 해야된다는게 뭔가 few-shot 취지와 잘 안 맞는다고 생각했는데, 상용화를 고려해도 괜찮은 접근법인 것같다고 생각을 바꿨다. 어차피 텅텅 빈 모델을 제품으로 출시하지는 않으니까.
  • α\alphaβ\beta는 함께 학습하는지, 1 에폭씩 번갈아 업데이트 하는지 궁금하다. 함께 학습하면 한 변수로 치우칠 수도 있을 것 같다.
  • 이 논문에서 대부분 실험 결과는 5-shot 학습이었는데(1-shot 테스트인 경우도), 원래 학습과 실험의 환경이 동일해야 잘 되는 줄 알았어서 이유가 궁금하다. 예를 들어, 전체 데이터로 pretrain 진행 후 episodic 방식으로 추가 학습이 진행되야 few-shot 환경에서 좋은 결과가 나온다고 나왔다. 또한 다른 논문(Matching Network)에서도 환경을 유지하는게 좋다고 말한다. 그렇지만 결과적으로 1-shot 테스트에서 5-shot으로 학습된 모델이 성과가 더 좋았다. 그렇다면 테스트와 반드시 같은 shot으로 학습할 필요가 없는가? 어느 정도가 최적인지 궁금하다. 1-shot 테스트에서 10-shot으로 학습한 모델이 기존 5-shot보다 나을까?
  • 또한 regularization 때문에 생기는 문제에 대비해 λ\lambda, ρ\rho를 추가했는데, 이 파라미터를 고정하는 것(학습하지 않음)이 오히려 ResNet12에는 더 좋았다. 왜 필요하지..

0개의 댓글

관련 채용 정보