On the journey of

[논문읽기] Zero-Shot Learning Through Cross-Modal Transfer 본문

Experiences & Study/VQA

[논문읽기] Zero-Shot Learning Through Cross-Modal Transfer

dlrpskdi 2023. 10. 9. 10:32

Original Paper ) https://arxiv.org/abs/1301.3666v2

 

Zero-Shot Learning Through Cross-Modal Transfer

This work introduces a model that can recognize objects in images even if no training data is available for the objects. The only necessary knowledge about the unseen categories comes from unsupervised large text corpora. In our zero-shot framework distrib

arxiv.org

전에 MeLU 추천시스템에 대해 포스팅한 적이 있었다(같은 링크!)

: https://nowolver.tistory.com/26

 

[추천시스템 Paper] MeLU-Meta Learned User Preference Estimator

원본 - [1908.00413] MeLU: Meta-Learned User Preference Estimator for Cold-Start Recommendation (arxiv.org) *작성에 앞서, 해당 논문은 아래 레퍼런스를 참고하여 작성자가 가짜연구소 러너 세션을 위해 직접 준비한 내

nowolver.tistory.com

여기서 등장한 것이 메타러닝과 MAML의 개념이었고, 간단히 말해 데이터셋이 더 적은 상황에서도 분류 등의 성능을 내는 것이 few-shot과 MAML로 이어지는 개념이다. 


논문을 선정하게 된 계기도 웃기다. 공부를 위한 공부...느낌? 원래는 리서치여야겠지만, 리서치도 뭘 알아야 하니까...

이번에 함께하게 된 분들과는 반어법, 유머 등 좀더 한국어에 특화된 NLP 모델을 중심으로 연구하게 되었다.그러나 이 분야는 한국어 자체가 데이터셋이 적은 편인데, 여기에 반어법 같은 게 들어가려면 1) intonation이 있는 음성과 멀티모달을 활용하거나 2) 문맥을 모두 파악할 수 있어야 한다. 어떤 방향으로 가든, few-shot과 zero-shot에 대해선 공부할 필요가 있다고 판단해 VQA(Visual Question Answering ; 개발을 위해 나라별 언어적 특징에 맞는 이미지와 그에 대한 질문과 답변으로 구성된 학습 데이터셋이 필요한 기술) 관련 논문 중 괜찮아 보이는(?) 걸 무작정 읽기 시작했다.그게 이 논문이고! 

 

나답지 않게 꽤나 긴 계기를 작성했는데, 본격적으로 내용을 기록하겠다 :)


Introduction
  • 제로샷 러닝은 한 번도 본 적 없는 데이터를 분류 가능하도록 학습하는 것
  • 즉, 데이터가 없어도 유용한 패턴이나 결과를 도출

  • Seen class : 학습한 데이터 class / Unseen class : test 데이터에서 처음 등장한 class
  • 즉, zero shot learning은 seen class만 학습을 진행해도 unseen class를 모두 예측

zero shot 모델은 2가지의 차별점이 존재

  1. 이미지들은 신경망 모델로 학습된 단어의 의미적 공간에 mapping 된다
  2. 분류기는 test 이미지를 seen data로 분류할 편향이 크기에 새로운 이미지가 seen class에 해당하는지 아닌지를 결정하는 novelty detection도 포함
Related Work
Few-shot learning

  • N-Way, K-shot classification
    • 학습 데이터 양, N : Class의 수, K : example의 수
  • Support Set
    • 새로운 클래스에 대한 학습 데이터 셋
  • Query set
    • 새로운 클래스에 대한 평가 데이터 셋
  • Meta-test dataset
    • 새로운 클래스에 대한 Query와 support set의 합
    • Meta-train dataset의 클래스와 Meta-test dataset의 클래스는 달라야 함
  • 기존 모델 학습 방법
    • Train-set 학습 → Test-set 평가
  • Few shot learning 모델 학습 방법
    • Meta-train dataset 학습 -> Meta-test dataset 학습+평가
  • 메타 러닝 학습 (Meta-train set 이용) → Adaptation 학습 (Support set 이용) → Test-set 평가 (Query set 이용)
Knowledge and Visual Attribute Transfer

  • 이미지의 내용적인 특징을 기준으로 분류를 진행
  • 본 논문에서는 이미지의 의미적인 부분에 대해서는 말뭉치에서 학습된 단어의 분포적 특성만 가지고 있음
  • 또한, training image의 수가 0개인 카테고리와 1000개인 카테고리 간의 분류가 가능함
Domain Adaptation

  • 현실에서는 학습용 데이터 구축 하는데 많은 비용이 들며 혹은 아예 데이터를 만들 수 없는 경우도 존재
  • 이러한 문제를 해결하기 위해 이미 알고 있는 지식을 이용해서 새로운 상황을 학습하는데 사용(knowledge transfer)
  • Domain adaption은 이미 알고 있는 / 알기 쉬운 training data domain의 분포 (source knowledge)를 base로 새로운 test data domain 분포(target knowledge)와 효율적으로 비슷하게 조정하는 방식
  • Domain adaption을 통해 서로 약간 다른(presence of shift) 환경에서 효율적으로 학습을 하고자 함
Multi-modal Embedding

  • 음성, 비디오, 이미지와 같이 여러가지 소스에서 나온 정보들을 연관짓는 것
  • 단어와 이미지 부분을 같은 공간에 mapping
  • 본 논문에서는 semantic word representation을 학습하기 위해 unsupervised large text corpora를 사용
Word and Image Representation
  • distributional approach : 단어들 간에 의미적 유사성을 파악하는데 자주 쓰이는 방법
    • 단어를 분포적 특성 벡터로 표현
  • 논문 모델은 위키피디아 text를 이용하여 각 단어가 context에서 발생할 가능성을 예측하여 단어벡터를 학습
  • local context와 global document context를 모두 이용하여 통사적,의미적 정보의 분포를 학습
Projecting Images into Semantic Word Spaces

  • 이미지의 semantic relationship과 class membership을 학습시키기 위해 image feature vector를 d차원의 semantic word space인 F에 투영
  • 이를 위해 위의 J(Θ)를 최소화
Zero-shot Learning Model
  • 목표 : test set의 이미지에 대한 P(y|x)를 예측 → 목표를 위해 test image가 test set에 word embedding을 통해 mapping된 semantic vectors 사용
  • 일반 모델은 test set에 없는 class에 대해 예측하지 못하므로 novelty detection을 적용해 test set에 대한 unseen class 처리
    • Seen / Unseen 라벨링의 판별을 위해 semantic vector 를 사용하여 P(y|x) 예측(Xs : seen data, Fs : Xs의 semantic vector, V : seen and unseen 클래스에 대한 novelty 변수)
    • Xs : seen data, Fs : Xs의 semantic vector, V : seen and unseen 클래스에 대한 novelty 변수이다. 

신규 데이터 탐지 전략
  • p(V = u|x, Xs, Fs, W, Θ)는 unseen class 이미지에 대한 확률이지만 training data를 통해 직접적으로 구할 수 없음
    • → 이상치 탐지를 활용해 seen과 unseen을 판별!
    • 두 가지 이상치 탐지 전략을 사용했는데, 둘 다 semantic vector가 매핑 된 트레이닝 이미지의 매니폴드를 계산하는 방법
  • 기존의 semantic region 활용(unseen 고양이 semantic vectors는 seen 바나나보다 강아지 semantic vectors region 주변에 있음)
  1. 각 class 마다 등거리 변환(Isometries)된 정규 분포(class-specific Gaussians) 사용
    • 특정 threshold T를 설정해 확률이 그것 이하면 이상치로 판별
    • 임계치가 작을수록 unseen class로 판별되는 데이터가 적어짐
    • Unseen data에 대한 실제 확률값을 도출X
  2. Seen과 Unseen에 대한 weighted combinated classifiers 사용, 클래스에 대한 조건부 확률 구함

 

k : 특정 포인트가 이상치인지 결정하기 위해 고려되는 가장 가까운 이웃 수

λ : 표준편차의 계수, λ가 클수록 더 많은 포인트가 평균에서 떨어져 있음

  • seen class의 training 데이터 중 각 포인트 test set semantic vectors에 대해 가장 가까운 k개 이웃을 context set C로 정의
  • → 각 x와 context set에 대한 pdist(probability set distance)를 구할 수 있음
  • 이를 활용해 lof값을 구함 (lof 값과 이상치 정도는 비례함)

  • 이상치에 대한 실제 확률을 구하기 위해 normalization factor Z를 다음과 같이 정의
  • Z는 seen 클래스의 training 데이터의 lof값에 대한 표준편차이며,  lof와 Z를 사용해 Local Outlier Probability를 구함
  • seen과 unseen에 대한 실제 확률을 구해 분류의 객관성을 확보
분류
  • Seen data일 경우 softmax classifier를 사용해 분류
  • Unseen data일 경우 novel class word vector에 isometric gaussian 가정, likelihood에 따라 분류
Experiments
  • 데이터 셋 : CIFAR-10 / CIFAR-100
  • 데이터를 Seen과 Unseen 데이터로 구분하기 위해 CIFAR-10 데이터 중 2개의 클래스를 Unseen으로 가정하여 사용

i) Seen and Unseen Classes Separately

  • CIFAR-10 사용하는데 8개의 class만 학습에 사용
  • Seen 클래스에 대한 분류 정확도(accuracy)를 평가
  • →평균 82.5%의 정확도 (13년도 논문,,,!)
  • UnSeen 클래스에 대한 분류 정확도(accuracy)를 평가→ 학습 데이터에 비슷한 클래스가 존재한다면 좋은 성능을 보임
  • (고양이랑 개는 비슷하게 생겼으니, 비슷한 word vector로 맵핑되어야 하고, 이는 cat과 truck을 다르게 맵핑하여 서로 구분하기 쉽게 해줄 것이라는 이야기)
  • → 분류 모델은 isometric Gaussian을 사용

ii) Influence of Novelty Detectors on Anverage Accuracy

Seen과 Unssen 클래스를 함께 test하여, Seen인지 Unseen인지 예측도 함께 진행

  • Seen은 softmax 분류기를 통해, Unseen은 Gaussian 분류기를 통해 분류
    • Gaussian의 경우 Unseen으로 분류하는데 자유롭기 때문에(데이터에 강건하다는 뜻인듯)fraction(백분율 같은 수 비율)이 상승해도 비교적 Unseen을 잘 분류
    • LoOP 모델은 이상치 분류 모델이기 때문에, manifold 평면 상에 넓게 펴져 있는Unseen 데이터를 제대로 분류하지 못하면서 fraction이 커질 수록 Seen 데이터를 잘 분류해내는 모습
  • 즉, 원하는 Seen과 Unseen 데이터에 대한 성능에 따라 Threshold를 조절하고 이상치 분류기 모델(Gaussian, LoOP)을 선택

iii) Extension to CIFAR-100 and Analysis of Deep Semantic Mapping

CIFAR-100 + CIFAR-10 데이터셋으로 변경!

  • 6개의 클래스를 Unseen 데이터로 간주 → 100개의 class가 seen data
  • unseen 데어터의 정확도를 측정한 결과, 52.7%의 정확도(해당 데이터 셋에 대한 베이스라인 모델과 비슷한 수치)
  • 논문에서 구현한 한번도 학습하지 않은 데이터에 대한 성능이 기존 논문에서 기준 성능으로 삼고 있는 모델과 비슷한 성능을 보이는 것
Zero-Shot Classes with Distractor Words
  • 현실에선 Unseen 클래스가 Seen 클래스보다 많음
  • 두가지 상황 가정
    1. 무작위 word vector를 Distractor Words로 추가하여 Unseen 데이터의 정확도를 측정
    2. Unseen 클래스와 word space 상 거리가 가까운 단어들을 Distractor Words로 추가하여 실험
    → 클래스가 아닌 word vector가 추가되었을 때 성능의 변화 탐지 (Ex) 클래스가 cat이라면 Distractor Words는 rabbit, kitten, mouse)

  • 무작위 word vector를 추가한 경우 강건한 모습을 보이며 성능이 잘 저하되지 않음
  • Unseen 클래스와 비슷한 단어들을 추가한 경우 일정 개수가 단어가 추가될 때까지는 계속해서 성능이 저하되다, 수렴하는 모습을 보임 → word space로의 맵핑이 잘 이루어졌다고 할 수 있음
    • cat이나 kitten이나 결국 고양이인데, word space에서 비슷한 곳에 위치해 있을 것이고, 그렇다면 이미지를 맵핑 했을 때 둘 사이 어딘가에 위치하여 kitten으로 분류되는 이미지가 있을 수 밖에 없음
Conclustion
  • 논문은 딥러닝을 활용한 단어(class)와 이미지 임베딩을 이용해 제로샷 분류를 제안
  • semantic word vector(word embedding을 통해 만들어진 벡터들)는 이미지와 텍스트 간의 지식 전달(help to transfer knowledge)를 가능하게 함