본문 바로가기
ML

Zero-Shot Learning

by 찬'story 2023. 12. 9.

이번에 Find-a에서 하게된 ESG-NLP Competition 관련 논문을 읽던 중 Zero-shot을 활용한 LLM을 보게 되었는데,,, Zero-shot을 너무 좀 대충 알고 있었나 싶었다. 한번 정리해보자

 

1. Zero-shot learning

딥러닝의 우수한 성능을 보일 수 있는 이유는 막대한 양의 데이터가 기반됨

그러나 현실에서는 수 많은 데이터 중

  • 정답 레이블이 함께 존재하지 않는 데이터가 훨씬 많음
  • 레이블을 지정하는데 드는 시간과 비용에 따른 제약 존재
  • 경우에 따라 레이블을 지정하는 것은 전문가만이 수행 가능함

ex. 꽃 데이터 중 레이블이 없는 다양한 야생화 데이터도 다량으로 존재함. 해당 데이터를 레이블화하는데 제약이 심할 것

레이블이 존재하는 데이터가 없는 상황 속에서, 해당 카테고리의 데이터를 올바르게 예측하는 것은 현실에서 매우 중요하다 → Zero-shot learning을 통해!

Zero-shot learning이란?

  • 레이블이 지정된 소수의 클래스 집합 데이터와 클래스에 대한 추가 정보(Side-information)만을 사용하여, 한 번도 본 적 없는 많은 클래스까지 잘 예측하도록 학습
  • 학습 시, 레이블이 지정된 데이터와 추가 정보만을 사용해 학습
  • 테스트 시, 학습 때 보았던 클래스의 데이터와 한 번도 본 적 없는 클래스의 데이터에 대해 레이블 예측 수행
  • but,, 도메인 변경에 취약

Zero-shot learning vs Open set recognition

  • Zero-shot learning의 목적 : 알고 있는 class의 seen data와 unseen data 모두 올바른 class로 분류하는 것 ⇒ 기존 classification 성능 강화
  • Open set recognition의 목적 : 알고 있는 class의 seen data를 올바른 class로 분류하고, unseen data는 특정 class가 아닌 unknown data 자체로 분류하는 것 → unknown data detection

Zero-shot learning의 구성요소

  1. Image : x
  2. Class label : y
  3. Side-information : $h_y$ (Zero-shot의 핵심. 어떻게 side-information을 정의하느냐가 중요)

Side-information은 이미지와 정답 레이블 간 연결고리 역할을 수행하게 됨

  • Attributes : 해당 object에 대한 설명.
    • 직접 보고 서술할 수도 있고, 위키피디아에서 참고해올 수도 있음
  • Hierarchy similarity measures : 클래스 간 계층 관계를 파악해서 데이터로서 제공
    • Ex) Mammal(class = 1) > Horse(class = 2) > Zebra(class = 3), Donkey(class = 4)
    • 클래스 간 거리 정보를 입력할 수 있음
  • Human gaze : 사람이 이미지를 볼 때, 특정 부분에 머무르는 지점이 해당 이미지를 잘 나타내는 지점인 가정하에 추출되는 가정
    • 얼룩말에서 머리, 꼬리, 갈기 부분에서 특히 시점이 오래 머무른다면 해당 부분에 높은 수치를 주어 Side-information으로써 제공 가능

2. Learning Method

Attributes를 side-information으로 사용하여 학습하는 대표적인 approach. 여러 종류가 있지만 해당 포스팅에서는 Embedding-based approach만 살펴본다.

  • Attributes를 사용하여 각 클래스에 해당하는 정보를 vector representation으로 변환
  • 즉, 이미지에 해당하는 의미를 가진 Attribute를 semantic embedding 값으로 가져오는 것

근간이 되는 논문 - DeViSE: A Deep Visual-Semantic Embedding Model

Pre-training

  • Visual model은 AlexNet으로 Image를, Language model은 Skip-gram LM으로 위키피디아를 각각 사전학습
  • 사전 학습된 파라미터로 모델 파라미터 초기화

Transformation

  • Visual model과 Language model을 target dateset으로 각각 학습시키고, 이를 결합
  • Visual model과 Language model은 각각의 image와 label을 vector로 표현하게 됨
  • Visual model의 상단에 있는 n차원 벡터 표현을 Language model 고유의 m차원 벡터 표현으로 매핑하는 선형 변환이 이루어짐에따라 같은 공간상에 매핑가능
  • 본 논문에서는 4096차원 → 500차원(or 1000차원)으로 변환

Similarity metric

  • 이미지와 정답 레이블의 벡터로 계산된 코사인 유사도가 이미지와 무작위로 선텍된 다른 레이블의 벡터로 계산된 코사인 유사도보다 크도록 학습이 이루어짐

 

 

참고 유튜브

https://youtu.be/7uAszeiLE2w?si=7UhTMY-wwxHyC7Sq