[Advanced ML & DL Week2] Zero-shot Learning Through Cross-Modal Transfer
작성자 : 14기 김태영
논문링크 : Zero-shot Learning Through Cross-Modal Transfer
1) Zero-Shot Learning
Zero-Shot Laerning이란 "unseen example에 대해서 문제를 잘 해결할 수 있도록 모델을 학습하는 것"을 의미한다.
일반적으로 딥러닝 모델들은 training에 사용된 class만을 예측할 수 있다.
따라서 unseed example이 입력되더라도 내부 메커니즘에 의해 학습했던 seen class 중 하나로 예측하는 문제가 생기게 되는데 zero-shot learning은 이 때 train set에 포함되지 않는 unseen class를 예측하는 분야이다. 즉 다시 말하자면 unseen example을 입력받아도 seen data로 학습된 지식을 전이하여 unseen example을 unseen class로 예측하는 것이다.
그렇다면 어떻게 unseen example을 예측하는 것일까?
이렇게 zero-shot class 문제를 풀 때는 보조적인 속성정보가 필요하다.
보조적인 속성정보가 될 수 있는 후보들과 예시는 다음과 같다.
이러한 보조 정보는 semantic embedding vector로서 training example을 통해 학습된다. 이를 바탕으로 unseen class에 대해서도 semantic 정보로 그 class를 예측할 수 있는 것이다.
이는 인간이 과거의 경험적 지식 또는 의미 관계를 바탕으로 새로운 것을 유추해내는 능력에서 비롯된 방법론이다. 아이에게 얼룩말과 사슴의 사진을 보여주고 두 동물의 특징이 모두 있는 동물을 오카피라고 하면 아이가 오카피의 사진을 추론할 수 있는 그 원리이다.
다시 정리하자면 zero-shot learning은 특정 문제에 대해 학습한 경험이 없어도 이미 저장된 데이터를 변형하고 해석하여 학습했던 문제와 학습하지 않았던 문제 간의 특징을 분석하여 답을 예측하는 것이다.
2) Main Idea of Paper
이 논문의 main idea는 다음과 같다.
1) N-Shot Learning
여기서의 N은 training에 활용되는 class별 example의 갯수이다. 이 N에 따라 학습 방식은 아래와 같이 구분된다.
학습 방식에 따라 N-way K-shot 문제로 명명되는데 이 때 N = 범주의 수 / K = class별 서포트 데이터의 수 이다.
아래의 예시는 2-way 5-shot 문제이다.
2) Multimodal Embedding
Multimodal Learning 이란 인간의 5가지 감각기관으로 수집되는 다양한 형태(modality)의 데이터를 사용하여 모델을 학습하는 것을 말한다.
Multimodal은 이 감각의 종류가 많다는 것이 아니라 이 감각들이 다른, 즉 차원 자체가 다른 변수들로 구성되어 있다는 것이다. 여기서 이런 다양한 감각들의 연관된 데이터는 같은 공간에 비슷한 위치로 매핑하는 multimodal embedding이다.
이 논문의 제목과 같이 여기서의 cross-modal은 단어와 이미지 간의 매핑의 경우이다. 각각 어떻게 표현되는지 살펴보자.
이미지와 단어 간의 매핑을 훈련시킬 때 사용하는 목적함수는 위와 같다. 이 목적함수를 최소화하는 방향은 nn이 학습되고 짝을 이루는 이미지와 단어의 embedding 위치가 거의 동일하도록 학습된다.
논문에서는 two-layer nn이 single linear mapping보다 더 좋은 성능을 낸다고 밝혔다.
다음 그림은 word vector와 image로 seen class와 unseen class의 semantic space를 시각화한 것이다. 이 때 t-SNE를 통해 50차원인 semantic space를 2차원으로 축소하여 시각화하였다.
위 시각화 결과에서 알 수 있듯이, 대부분의 class는 각 대응되는 word vector들끼리 군집을 이루고 있는 것을 확인할 수 있다.
하지만 unseen class인 cat이나 truck의 경우 군집들과 떨어져 있다. 이 때 truck은 automobile, cat은 dog의 군집과 가까이 위치해 있는데 위 목적함수와 학습방식의 결과로 의미적으로 유사한 벡터와 가깝게 위치하고 있음을 알 수 있다.
이러한 방식으로 unseen class 이미지를 detection하고 이를 zero-shot word vector라고 분류할 수 있다.
다시 말하자면 이번 model의 목표는 테스스텟의 이미지 x에 대한 조건부 확률 P(y|x)를 예측하는 것이다. 이 때 y는 seen, unseen class를 모두 포함하고 있다.
그리고 일반적인 classifier는 training example에 없었던 class를 예측할 수 없기 때문에 binary novelty random variable V를 사용하여 어떤 image가 seen, unseen class인지를 먼저 예측하게 된다.
새로운 input image x와 그 semantic vector f 를 바탕으로 class y를 예측하는 태스크는 다음의 수식으로 P(y|x)를 구해 이뤄진다.
앞서 언급했듯 해당 논문에서는 unseen class 구분을 위한 novelty detection 방식을 사용하는데 위 수식 기준 marginalized term에서 V=u일 경우의 확률이 입력된 이미지가 unseen class일 확률이다.
아래 그림과 같이 unseen class는 training 이미지들과 아주 밀접하게 위치하진 않지만 대략적으로 같은 semantic region에 위치해 있는 것을 볼 수 있다. 이러한 특징을 기반으로 outlier detection 방식을 seen과 unseen class 구분에 활용할 수 있는 것이다.
outlier detection에 사용할 수 있는 방법론은 다음과 같이 두가지가 있다.
(1) isometric한 class-specific 가우시안 분포 하에서 각 이미지에 대한 marginal를 부여. 이 때 seen class의 mapped point로 이 marginal를 구함.
(2) 각 seen class y에 대해 다음을 연산각 class의 가우시안 분포는 해당 label을 가진 모든 training point로 추정된 word vector wy를 평균으로, sigma y를 공분산으로 가짐
(3) 새로운 이미지 x에 대해 다음의 indicator function으로 outlier가 detection 됨
여기서 threshold Ty보다 주변확률 값이 낮으면 outlier, 즉 unseen class로 분류되고 Ty값이 작을수록 unseen 이미지가 적어진다.
하지만 이렇게 threshold를 사용하는 방식은 outlier에 대해 실제 확률값으로 설명하지 못한다는 단점이 있다.
(1) unsupervised 방식으로 실제 outlier 확률값을 얻은 후, seen class와 unseen class classifier를 가중 결합하여 조건부 확률을 구함. 이 방식대로라면 모든 unseen image가 outlier로 인식되는 것은 아니지만 seen class에 대해 높은 accuracy를 유지할 수 있다.
(2) k = outlier인지 결정하는데 사용되는 nearest neighbors의 개수
(3) lambda = 표준편차의 계수 (값이 클수록 군집의 평균으로부터 어떤 지점이 더 멀리 떨어져 있음을 의미)
(4) 각 unseen class test 이미지의 semantic vector인 f에 대해 seen class의 training set 안에서 k nearest neighbors의 context set C(f)를 정의하고 probabilistic set distance(pdist)를 계산
여기서의 d(f,q)는 word space상의 distance function을 의미하고 유클리디언 거리로 계산했다.
(5) local outlier factor(lof)를 다음과 같이 정의해 큰 lof 값은 outlier가 증가함을 의미한다.
(6) threshold outlier detection 방식과 다르게 실제 outlier에 대한 확률값을 구하기 위해 normalization factor Z를 정의하고 이는 seen class의 train set에서의 lof(q) 값에 대한 표준편차이다.
(7) lof와 Z을 통해 local outlier probability를 아래처럼 구한다. 이렇게 구한 LoOP값으로 새로운 test 이미지에 대한 outlier 정도를 기반으로 seen과 unseen classifier를 검토하는데 사용된다.
seen class와 unseen class 각각의 그룹끼리 별도의 classifier를 적용한다.
댓글 영역