Zero-Shot Learning
제로샷 학습은 입력을 텍스트 설명과 비교해 레이블이 지정된 예시 없이 클래스를 인식합니다. CLIP, 오픈 어휘 검출 및 한계를 다룹니다.
제로샷 학습(ZSL)은 라벨이 지정된 학습 예제를 보지 못한 클래스도 모델이 인식하는 능력입니다. 모델은 예제 대신 속성 목록과 같은 새로운 클래스의 설명을 받으며, 최신 시스템에서는 클래스 이름을 텍스트로 받습니다. 그런 다음 입력을 공유 임베딩 공간의 해당 설명과 비교합니다. 표준 지도 학습은 학습 라벨에 있는 클래스만 예측할 수 있으므로, 범주를 추가하려면 새 데이터를 수집하고 라벨링한 다음 다시 학습해야 합니다. 제로샷 모델은 클래스 이름을 추가하는 것만으로 범주를 추가할 수 있습니다. 4억 개의 이미지-캡션 쌍으로 학습한 OpenAI의 CLIP은 ImageNet의 라벨이 지정된 학습 이미지 128만 개를 전혀 사용하지 않고도 기존 지도 학습 ResNet-50의 ImageNet 정확도에 도달했습니다.
제로샷 학습의 작동 방식#
제로샷 학습은 이미 본 클래스와 보지 못한 클래스를 연결하는 의미 공간을 통해 지식을 전이합니다. 초기 방법에서는 "줄무늬가 있음", "발굽이 있음", "초원에 서식함"처럼 사람이 정의한 속성으로 각 클래스를 설명하고, 모델이 이러한 속성을 예측하도록 학습했습니다. 따라서 학습 중에 보지 못한 동물도 일치하는 속성을 가진 클래스로 인식할 수 있었습니다. 비전-언어 모델은 직접 만든 속성 대신 자연어를 사용합니다. CLIP은 대조 학습으로 이미지 인코더와 텍스트 인코더를 학습해 이미지와 캡션이 서로 일치할 때 비슷한 임베딩을 생성하도록 합니다. 분류할 때는 "얼룩말 사진"과 같은 후보 클래스별 프롬프트를 임베딩하고 이미지도 임베딩한 다음, 코사인 유사도가 가장 높은 클래스를 선택합니다.
분류기가 추론 시점에 텍스트로 구성되므로 요청마다 클래스 목록을 바꿀 수 있습니다. 같은 방식은 대규모 언어 모델(LLM)에도 적용됩니다. GPT-3 논문에서 정의한 제로샷 프롬프팅은 예제를 제공하지 않고 모델에 지시문만 전달하는 것을 뜻합니다.
제로샷 객체 탐지#
개방형 어휘 탐지기는 제로샷 학습을 전체 이미지에서 개별 객체로 확장합니다. 요청된 클래스의 텍스트 임베딩과 모든 후보 영역을 비교하므로, 동영상 아카이브에서 특정 제품을 찾는 것처럼 고정된 라벨 집합 밖의 객체도 찾을 수 있습니다. YOLO-World는 이 접근 방식을 실시간 YOLO 모델에 적용합니다. YOLO26의 개방형 어휘 버전인 Ultralytics YOLOE-26은 set_classes()에 전달된 각 클래스 이름을 MobileCLIP2 텍스트 인코더로 인코딩합니다. 재학습 없이 해당 클래스의 박스와 인스턴스 분할 마스크를 반환합니다.
from ultralytics import YOLOE
# 텍스트 프롬프트를 지원하는 YOLOE-26 체크포인트
model = YOLOE("yoloe-26s-seg.pt")
# 추론 시 클래스 이름을 지정합니다. 여기서는 COCO 라벨에 없는 단어를 사용합니다.
model.set_classes(["city bus", "sneakers", "glasses"])
# 지정한 클래스를 탐지하고 분할합니다.
results = model.predict("https://ultralytics.com/images/bus.jpg")
result = results[0]
result.save(filename="zero_shot_result.jpg")첫 번째 set_classes() 호출 시 텍스트 인코더가 다운로드됩니다. 객체 탐지에서 "제로샷"은 모델이 해당 클래스의 레이블된 박스를 받지 않았다는 의미입니다. 단, 인코더 사전 학습에 사용된 이미지-텍스트 데이터에는 클래스 이름이 등장했을 수 있습니다. Ultralytics Platform은 제로샷 탐지기와 비전 언어 모델을 사용해 탐지 데이터셋에 자동으로 어노테이션을 추가하며, VLM 리더보드는 각 모델이 실제 이미지에서 객체를 얼마나 정확하게 찾는지 비교합니다.
응용 분야#
- 시각 검색 및 콘텐츠 검토: 미디어 라이브러리와 콘텐츠 플랫폼은 쿼리 텍스트와 일치하는 이미지를 찾거나, 각 쿼리마다 분류기를 학습하지 않고도 새로운 콘텐츠 범주를 표시합니다.
- 로보틱스: "파란 머그잔을 가져와"라는 지시를 받은 로봇은 탐지하도록 학습된 적 없는 객체 범주도 찾을 수 있습니다.
- 야생동물 및 생물다양성: 생명의 계통수 전반에서 1,000만 개가 넘는 이미지로 학습한 BioCLIP은 이름을 바탕으로 제로샷 방식으로 종을 분류하며, CVPR 2024에서 최우수 학생 논문상을 수상했습니다.
- 의료 영상: 작성된 방사선 판독 보고서와 짝을 이룬 엑스레이로 학습한 모델은 명시적인 학습 라벨로 주석 처리되지 않은 소견도 표시할 수 있습니다.
과제#
특히 웹 텍스트에서 이름이 드물게 등장하는 세분화된 범주나 전문 범주에서는 제로샷 정확도가 같은 클래스의 라벨이 지정된 예제로 학습한 모델보다 대체로 낮습니다. 테스트 이미지가 이미 본 클래스와 보지 못한 클래스 모두에서 나올 수 있는 일반화된 제로샷 학습에서는 모델이 학습했던 클래스를 선호합니다. 벤치마크 연구에 따르면 이런 설정에서 보지 못한 클래스의 정확도가 크게 떨어집니다. 결과는 표현 방식에도 영향을 받으므로 프롬프트 엔지니어링은 제로샷 분류의 일부입니다. CLIP의 ImageNet 정확도는 클래스 이름만 사용했을 때보다 "a photo of a {label}." 프롬프트를 사용했을 때 1.3% 높아졌습니다.
제로샷 학습과 관련 용어 비교#
- 퓨샷 학습: 클래스당 소수의 라벨이 지정된 예제(일반적으로 1~10개)로 새로운 클래스를 학습합니다. 제로샷 학습은 예제가 하나도 없고 대신 설명을 사용하는 경우입니다.
- 원샷 학습: 퓨샷 학습의 한 형태로, 클래스당 라벨이 지정된 예제를 정확히 하나 사용하며 임베딩 유사도로 비교하는 경우가 많습니다.
- 전이 학습: 새로운 작업에 사전 학습 모델을 재사용하며, 보통 라벨이 지정된 데이터로 미세 조정합니다. 제로샷 학습은 추가 학습 없이 공유 텍스트-이미지 공간을 통해 지식을 전이합니다.
- 시각 프롬프팅: 단어 대신 예시 이미지나 박스로 대상을 지정합니다. 이름을 붙이기 어려운 특정 부위나 로고 같은 객체에 유용합니다.










