Zero shot Learning
AI를 학습시키는 과정에서 많은 데이터와, 데이터를 축적하기 위한 리소스가 필요하다.
-> 이런 과정을 없애거나 줄이는 방법 Zero shot learning
‘뱀’에 대해 학습한 경험이 없는 인공지능에게 뱀의 특징(길이가 길고, 다리가 없으며 비늘이 있는 동물)에 대해 물어본다면?
제로샷 학습을 통해 만들어진 인공지능은 가능.
제로샷 학습 = 학습된 데이터를 분류하고 정리하여, 카테고리를 형성하고 그 카테고리의 의미를 이해하기 때문. -> 각 카테고리에 대한 의미적 이해를 바탕으로 이전에 경험하지 못한 새로운 예제를 이해하고 분석할 수 있다.
인간이 사물을 볼 때 카테고리별로 데이터를 구분하지 않아도 자연스럽게 객체를 식별할 수 있다.
제로샷 학습 = 전이학습(Transfer Learning)에서 발전된 기계학습의 한 종류.
📌 전이학습이란?
데이터 간의 관계와 공통점을 이용해 정답을 찾음.
특정 문제에 대해 학습한 경험이 없어도 이미 저장된 데이터를 변형하고 해석하여 학습했던 문제와 학습하지 않았던 문제 간의 특징을 분석해 답을 예측해냄.
💡 참고 링크 : 제로샷 학습
제로 샷 클래스에 대한 전제 조건 정보
제로샷 클래스에 대한 어떤 형태의 사이드 정보가 제공되어야함.
-
속성을 이용한 학습 : 속성은 종종 구조화된 구성 방식으로 구성되며, 이러한 구조를 고려함으로써 학습을 향상시킬 수 있음.
-
텍스트 설명을 통해 학습 : 클래스 레이블은 의미를 가지기 위해 사용되며, 정의 또는 자유 텍스트 자연어 설명으로 보강되는 경우가 많다.
-
클래스 유사성 : 클래스는 연속 공간에 내장되며, 제로샷 분류기는 샘플이 해당 공간의 특정 위치에 해당한다고 예측할 수 있다. 훈련 중 이러한 샘플이 관찰되지 않았더라도 가장 가까운 임베디드 클래스가 예측 클래스로 사용된다.
💡 참고 링크 : 제로샷 학습
일반화된 제로샷 학습
제로샷 설정은 테스트 시, 제로샷 샘플이(=보이지 않는 새로운 클래스의 샘플만) 주어진다고 가정한다. 일반화된 제로샷 학습에서는 새로운 클래스와 알려진 클래스의 샘플이 모두 테스트 시간에 나타날 수 있다.
주어진 샘플이 새로운 것인지, 알려진 것인지 추정하기 위해서는
- 게이트 접근법 : 추가 모듈을 학습해 주어진 샘플이 새 클래스인지 이전 클래스인지 여부 결정.
- 생성적 접근 방식(GZSL) : 생성 모델은 새 클래스의 특징 표현을 생성하도록 학습된다. 그 다음 표준 분류기가 seen과 unseen 양쪽 모두의 클래스의 표본을 사용하여 학습된다.
Generalized Zero Shot Learning(GZSL) vs Zero-Shot Learning(ZSL)
Zero shot = train set에 포함되지 않은 unseen class 예측하는 분야. unseen data 를 입력 받아도, seen data 로 학습된 지식을 전이하여 unseen data 를 unseen class로 예측할 수 있다.
ZSL 는 test 시, unseen data 만을 입력 받아 class를 예측하고, GZSL 은 test시 unseen, seen data를 둘 다 입력 받아 예측을 수행한다.
How
-> training set에 포함되지 않은 unseen data를 예측할 수 있는 방법은 semantic information 에 있다.
semantic information은 여러 종류가 될 수 있는데, 한 가지 예시를 들면 data의 class를 word embedding으로 사용하는 것이다.
📌semantic information
📌word embedding
one-hot vector를 class로 주어 학습된 딥러닝 모델은 강아지와 고양이의 관계를 모르지만, word embedding된 sentence 로 주어 학습한다면 이 딥러닝 모델은 강아지와 고양이의 관계를 알 수 있다.
📌 one-hot vector를 class로 주어 학습된
이렇게 seen data와 semantic information으로 학습된 지식을 unseen data를 예측하는데 사용한다.
Transductive semantic GZSL
seen 의 visual feature, semantic info와 unseen의 semantic info 를 활용해서 unseen의 visual feature를 생성한다. -> generative-based methods
-> seen의 semantic representation으로 seen image를 생성할 수 있다면, unseen도 unseen image를 생성할 수 있지 않을까?
generative model로 생성한 unseen data를 training set에 넣어 함께 학습 -> unseen에 대한 예측 수행.
-> unseen visual feature 제대로 생성 못 할수도 있음.
embedding based method
동일한 클래스에 대한 visual feature 를 semantic embedding space로 가깝게 mapping. -> unseen에 대한 visual feature 를 입력 받았을 때, seen으로 학습한 embedding space 상에서 적합한 위치에 사영. -> 이에 해당하는 semantic info가 unseen class가 된다.
inductive GZSL
seen visual feature + seen semantic info
Embedding Space
seen class의 저차원 visual feature를 그에 해당하는 semantic vector로 mapping / embedding 하는 함수를 학습한다.
visual feature 사이에는 큰 variation 존재 -> 강아지와 고양이 visual feature 연관성이 적기 때문.
📌 variation
semantic info는 둘의 연관성을 잘 알고 있기 때문에 variation을 줄일 수 있다.
💡 참고 링크 : Zero-Shot Learning이란?