본문 바로가기
논문 정리

Zero-shot Learning

by winston1214 2022. 9. 5.
반응형

본 설명은 https://www.youtube.com/watch?v=7uAszeiLE2w 자료를 참고하여 정리하였습니다.

# Introduction

Deep Learning은 여러 분야에서 좋은 성능을 내는 바탕에는 막대한 데이터의 양이 있다. 실제로 데이터의 수에 비례하여 딥러닝이 가장 큰 Performance를 낸다. 

그러나 현실에서는 정답 label이 함께 존재하지 않는 데이터가 훨씬 많고, label을 지정하는데 시간과 비용에 따른 제약이 많다.

따라서 label이 존재하지 않는 데이터에서 해당 카테고리의 데이터를 올바르게 예측하는 것은 매우 중요하다. 그래서 이를 풀기 위해선 zero-shot learning을 사용한다.

 

# Zero-shot Learning

zero shot learning이란 label이 지정된 소수의 클래스 집합 데이터와 클래스에 대한 추가 정보만을 사용하여 한 번도 본 적 없는 많은 클래스까지 잘 예측하도록 학습하는 방법이다. zero-shot learning은 training 할 때 label이 지정된 데이터와 추가적인 정보만을 사용하여 학습을 진행한다. 반면에 test 할 때는 train 에서 학습한 class 와 학습하지 않은 class에 대해서도 예측을 수행한다.

zero shot learning과 비교되는 것은 open set recognition이다.

Open set Recognition 에 관한 자세한 설명은

2021.01.20 - [논문 정리] - Towards open set deep networks

 

Towards open set deep networks

대체로 참고한 자료는 dmqm.korea.ac.kr/activity/seminar/281 고려대학교 DMQA 연구실 고려대학교 산업경영공학부 데이터마이닝 및 품질애널리틱스 연구실 dmqa.korea.ac.kr 김상훈님의 세미나 발표 자료이다.

bigdata-analyst.tistory.com

이 글을 참고하면 된다.

Openset recognition은 알고 있는 class는 올바르게 분류하고 unseen data는 특정 class가 아닌 unkown class 로 분류한다.

반면에 zero shot learning은 seen data와 unseen data 모두 올바르게 예측을 하여 classfication의 성능을 강화하였다.

## zero shot learning의 구성요소

zero-shot learning은 Image x와 Class Label y 와 더불어 side information \(h_y \)로 구성된다. 

zero-shot learning의 핵심인 side information은 어떻게 정의하는지가 가장 중요한 문제이다. 

side information은 여러 종류가 있는데 그 중 하나인 Attributes를 살펴보겠다.

이를 설명하기 위해 얼룩말을 예시로 든다. image x 는 얼룩말의 이미지이고, 이에 해당하는 side-information은 검은줄을 가진 꼬리가 있고, 육지에서 살면서 작다라는 특징으로 정의한다. 

따라서 이러한 image와 side information을 mapping 하여 이미지에 대한 설명을 추가하는 것이다. 이러한 attribute는 사람이 직접 추가도 하지만 위키피디아와 같은 웹사이트를 이용하여 추출하기도 한다. 

다음의 side-information의 종류는 hierarchy 이다.

이는 class 간 계층 관계를 파악하여 데이터로써 제공하는 것이다. 

hierarchy 예시

이러한 hierarchy를 통해 class 가 다른 class와 얼마나 거리가 가까운지 즉, 유사한지를 파악할 수 있다.

다음의 side information 종류는 human gaze 이다. 

human gaze는 사람이 이미지를 볼 때, 그 시선의 초점이 머무르는 부분이 해당 이미지를 잘 나타내는 부분이라는 가정하에 만들어진 것이다. 이에 대한 예시는 다음과 같다.

human gaze

이러한 side information은 input image와 정답 label 과의 연결고리 역할을 수행하게 된다.

 

# Learning Method

Attribute를 side information으로 사용하는 zero-shot learning에 대해 더욱 상세히 알아보도록 하자. 이런 attribute를 side-information으로 활용하여 학습을 하는 접근 방식은 Embedding based approachGenerative model based approach 두가지가 대표적이다.

Embedding based approachattribute를 embedding 하여 학습에 사용하는 방법이고, Generative model based approachattribute를 기반으로 데이터를 생성하여 학습에 사용하는 방법이다.

이 중 Embedding based approach에 대해 더욱 자세하게 다룬다.

## Embedding based approach

Embedding based approach는 attribute를 사용하여 각 클래스에 해당하는 정보를 vector representation으로 변환하는 방법이다. 즉, 이미지에 해당하는 의미를 가진 semantic embedding 값을 이용하여 각 class에 대한 보조 정보로 활용하는 것이다. 

이는 예시를 통해 설명해보겠다.

이렇게 두 이미지 얼룩말과 고래에 대한 attribute를 분석한다고 해보자.

처음으로 색 부분이다. 얼룩말의 색은 black-stripe로 고래는 gray 이다. 이 같은 경우 둘이 다르기 때문에 embedding이 다르게 된다. 반면에 꼬리에 대한 여부는 두 동물 모두 동일하게 갖고 있기 때문에 동일한 embedding 값을 가진다.

따라서 이러한 Embedding 값들을 이용하여 학습 시 관측된 데이터가 없는 클래스 값이더라도 embedding 값을 학습해 label을 예측 가능하게 된다. 

따라서 이러한 side information을 기반으로 embedding 공간이 새롭게 구성되기 때문에 보지 못했던 test data더라도 올바르게 분류를 이뤄낼 수 있게 된다.

 

## DeViSE: A Deep Visual-Semantic Embedding Model [NIPS 2013] 

본 논문에선 visual model과 language model을 결합하는 방식이다. label이 지정된 이미지 데이터와 해당 이미지와 관련된 텍스트에서 수집한 의미 정보를 모두 개체를 식별하는데 훈련한다는 것이다. 

이 모델은 Pretrained 된 모델을 이용한다. Visual 정보를 갖기 위해선 AlexNet으로 훈련을 시키고 language model은 Skip gram LM 모델로 훈련시킨다. 따라서 이렇게 pretrained 된 model의 parameter로 model parameter를 초기화 시킨다. 

이 후 visual model과 language model을 target dataset으로 각각 학습을 시키고 이를 결합한다. 여기서 각 모델에서 나온 정보들을 vectorize 한다. 그 후, visual model에서 나온 n 차원의 matrix를 m 차원으로 mapping을 시켜 같은 공간 상으로 만든다.

따라서 이렇게 나온 vector들을 similarity를 구한다. image와 정답 label vector로 계산된 코사인 유사도가 image와 정답이 아닌 다른 무작위로 선택된 다른 label vector로 계산된 코사인 유사도보다 크도록 학습을 시킨다.

 

반응형

댓글