On the journey of
[논문읽기] Zero-Shot Learning Through Cross-Modal Transfer 본문
[논문읽기] Zero-Shot Learning Through Cross-Modal Transfer
dlrpskdi 2023. 10. 9. 10:32Original Paper ) https://arxiv.org/abs/1301.3666v2
전에 MeLU 추천시스템에 대해 포스팅한 적이 있었다(같은 링크!)
: https://nowolver.tistory.com/26
여기서 등장한 것이 메타러닝과 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가지의 차별점이 존재
- 이미지들은 신경망 모델로 학습된 단어의 의미적 공간에 mapping 된다
- 분류기는 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 주변에 있음)
- 각 class 마다 등거리 변환(Isometries)된 정규 분포(class-specific Gaussians) 사용
- 특정 threshold T를 설정해 확률이 그것 이하면 이상치로 판별
- 임계치가 작을수록 unseen class로 판별되는 데이터가 적어짐
- Unseen data에 대한 실제 확률값을 도출X
- 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 클래스보다 많음
- 두가지 상황 가정
- 무작위 word vector를 Distractor Words로 추가하여 Unseen 데이터의 정확도를 측정
- Unseen 클래스와 word space 상 거리가 가까운 단어들을 Distractor Words로 추가하여 실험
- 무작위 word vector를 추가한 경우 강건한 모습을 보이며 성능이 잘 저하되지 않음
- Unseen 클래스와 비슷한 단어들을 추가한 경우 일정 개수가 단어가 추가될 때까지는 계속해서 성능이 저하되다, 수렴하는 모습을 보임 → word space로의 맵핑이 잘 이루어졌다고 할 수 있음
- cat이나 kitten이나 결국 고양이인데, word space에서 비슷한 곳에 위치해 있을 것이고, 그렇다면 이미지를 맵핑 했을 때 둘 사이 어딘가에 위치하여 kitten으로 분류되는 이미지가 있을 수 밖에 없음
Conclustion
- 논문은 딥러닝을 활용한 단어(class)와 이미지 임베딩을 이용해 제로샷 분류를 제안
- semantic word vector(word embedding을 통해 만들어진 벡터들)는 이미지와 텍스트 간의 지식 전달(help to transfer knowledge)를 가능하게 함