이번에 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의 구성요소
- Image : x
- Class label : y
- Side-information : $h_y$ (Zero-shot의 핵심. 어떻게 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
'ML' 카테고리의 다른 글
[핸즈온 머신러닝 정리] 1장. 배치 학습과 온라인 학습 (0) | 2021.06.26 |
---|---|
[핸즈온 머신러닝 정리] 1장. 지도 학습과 비지도 학습, 강화 학습 (0) | 2021.06.26 |