Ultralytics YOLO27: 대기자 명단에 등록하세요.
YOLO 라이선스 받기
Ultralytics 용어집으로 돌아가기

One-Shot Learning

원샷 학습은 일반적으로 임베딩을 비교해 레이블이 지정된 예시 하나만으로 새 클래스를 인식합니다. 샴 네트워크, 활용 사례, 코드를 다룹니다.

원샷 학습은 레이블이 지정된 단일 예시로 새로운 클래스를 인식하는 작업입니다. 기존 이미지 분류 모델은 클래스당 수백 장의 레이블 이미지가 필요하며 클래스를 추가할 때마다 재학습해야 하지만, 사람은 일반적으로 새로운 얼굴이나 제품을 한 번 보기만 해도 인식할 수 있습니다. 원샷 시스템은 이전에 학습한 여러 클래스에서 지식을 재사용하여 이러한 능력에 더 가까워집니다. 해당 클래스들로 학습한 네트워크는 이미지를 임베딩으로 변환하며, 같은 대상의 이미지는 임베딩 공간에서 서로 가까이 놓입니다. 따라서 예시 하나만으로도 새로운 클래스가 어디에 위치하는지 표시할 수 있습니다. 얼굴 확인, 서명 검사, 제품 인식이 모두 이러한 방식으로 작동합니다. 대규모 언어 모델 (LLM)에서 원샷 프롬프팅은 프롬프트에 작업 예시 하나를 제공하는 방식입니다.

원샷 학습의 작동 방식#

대부분의 원샷 시스템은 분류를 비교 방식으로 대체합니다. 신경망은 저장된 예시와 각각의 새 쿼리에 대해 특징 추출을 수행하고, 유클리드 거리나 코사인 유사도와 같은 두 임베딩 사이의 거리를 사용해 일치 여부를 판단합니다. 샴 신경망은 동일한 가중치를 공유하는 두 개의 분기로 이 방식을 구현합니다. Jane Bromley, Yann LeCun과 동료들은 1993년에 이 네트워크를 사용해 서명을 검증했으며, Gregory Koch와 동료들은 2015년에 네트워크를 학습시켜 각 알파벳에서 예시 하나만 본 후 손글씨 문자를 분류했습니다.

임베딩 네트워크는 대조 손실이나 트리플렛 손실을 사용해 다른 많은 클래스로 사전 학습됩니다. 이러한 손실은 같은 클래스의 이미지를 서로 가까이 끌어당기고 다른 클래스의 이미지는 서로 멀어지게 하므로, 학습된 거리는 나중에 등장하는 클래스에도 일반화됩니다. 메타 학습 방법인 매칭 네트워크는 여러 클래스의 예시를 하나씩만 포함하는 수천 개의 시뮬레이션 원샷 작업으로 학습하여, 모델이 실제로 마주할 문제를 그대로 연습하게 합니다.

임베딩을 사용한 원샷 분류#

Ultralytics YOLO26 분류 모델은 embed()를 통해 이미지 임베딩을 반환합니다. 이 과정에서 분류 헤드 앞에 있는 레이어의 출력을 풀링해 이미지마다 하나의 벡터로 만듭니다. 다음 예제에서는 이러한 임베딩을 사용해 CIFAR-10의 10방향 원샷 분류기를 구성합니다. 클래스당 저장된 이미지 하나만 레이블 데이터로 사용하며, 각 쿼리에는 가장 유사한 저장 이미지의 레이블을 할당합니다.

from pathlib import Path

import torch
import torch.nn.functional as F
from torchvision.datasets.utils import download_and_extract_archive
from ultralytics import YOLO

# CIFAR-10 test images, one folder per class
download_and_extract_archive("https://github.com/ultralytics/assets/releases/download/v0.0.0/cifar10.zip", "data")
images = [sorted(folder.glob("*.png")) for folder in sorted(Path("data/cifar10/test").iterdir()) if folder.is_dir()]
model = YOLO("yolo26n-cls.pt")

# Support set: the first image of each class is its only labeled example (one shot)
shots = torch.stack([model.embed(paths[0], verbose=False)[0] for paths in images])

# Query set: the next 50 images of each class, each labeled with the class of its most similar shot
correct = 0
for label, paths in enumerate(images):
    for path in paths[1:51]:
        query = model.embed(path, verbose=False)[0]
        correct += F.cosine_similarity(shots, query.unsqueeze(0)).argmax().item() == label
print(f"10-way 1-shot accuracy: {correct / 500:.1%} (random guessing: 10%)")

모델은 CIFAR-10으로 학습하지 않으므로, 출력되는 정확도는 클래스당 예시 하나가 YOLO26의 임베딩 공간에서 해당 클래스를 얼마나 잘 정의하는지를 측정합니다. 열한 번째 클래스를 추가하려면 저장된 임베딩 하나만 더 있으면 됩니다.

응용 분야#

  • 얼굴 확인: 자동 출입국 게이트는 실시간 카메라 이미지와 여권 칩에 저장된 사진 한 장을 비교하며, 휴대폰과 출입 통제 시스템은 각 시도의 얼굴을 등록 시 기록한 얼굴과 대조합니다.
  • 소매 제품 인식: 매장에는 새 제품이 계속 추가되며, 제품당 카탈로그 사진 한 장만으로도 시스템은 재학습 없이 진열대에서 해당 제품을 인식할 수 있습니다.
  • 원샷 모방 학습: 블록을 새로운 순서로 쌓는 것과 같은 새로운 작업을 한 번 시연하는 것을 보고 로봇이 수행하도록 학습합니다.

과제#

예시 하나만으로는 클래스의 변화를 보여줄 수 없으므로, 조명이 나쁘거나 각도가 특이하거나 객체가 부분적으로 가려진 상태에서 촬영한 참조 사진은 이후 모든 비교의 기준으로 적합하지 않습니다. 매칭 임계값은 오탐과 미탐 사이의 균형을 정하므로 애플리케이션마다 검증 쌍으로 조정해야 합니다. 또한 일상 사진과 같은 한 도메인에서 학습한 임베딩은 의료 이미지와 같은 다른 도메인에서 클래스를 구분하는 성능이 떨어집니다.

  • 퓨샷 학습: 클래스당 소수의 레이블 예시로 학습하는 일반적인 문제입니다. 원샷 학습은 정확히 하나의 예시를 사용하는 경우이며, N-way K-shot 표기법에서는 1-shot으로 씁니다.
  • 제로샷 학습: 예시가 전혀 없는 클래스를 텍스트 설명이나 속성 설명을 바탕으로 인식합니다.
  • 전이 학습: 일반적으로 많은 레이블 예시로 파인튜닝해 새로운 작업에 사전 학습된 모델을 재사용합니다. 원샷 시스템도 전이된 특징을 활용하지만, 가중치를 업데이트하지 않고 특징을 직접 비교합니다.
  • 이상 탐지: 정상적인 상태를 학습하고 그 상태에서 크게 벗어나는 항목을 표시합니다. 따라서 항목이 어떤 클래스인지가 아니라 비정상적인지를 판단합니다.

솔루션 살펴보기

스포츠 분야의 컴퓨터 비전

스포츠 분야의 컴퓨터 비전

Ultralytics YOLO가 선수 및 공 추적, 경기력 분석, 코칭 인사이트, 선수 재활을 통해 스포츠 비전을 구현하는 방법을 알아보세요.
자세히 알아보기
항공 이미지 컴퓨터 비전

항공 이미지 컴퓨터 비전

Ultralytics YOLO를 활용해 드론 및 항공 이미지를 농업, 양식업, 보전, 지리 공간 분석을 위한 실시간 인사이트로 전환하세요.
자세히 알아보기
항공우주 분야의 컴퓨터 비전

항공우주 분야의 컴퓨터 비전

Ultralytics YOLO를 활용해 항공기 검사, 활주로 FOD 감지, 공항 지상 운영, 복합재 결함 감지 등 항공우주 분야에 컴퓨터 비전을 적용하세요.
자세히 알아보기
보안 분야의 컴퓨터 비전

보안 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 모든 시설을 보호하세요. Vision AI는 경계 모니터링, 위협 감지, 번호판 인식, 작업장 안전을 지원합니다.
자세히 알아보기
로보틱스 분야의 컴퓨터 비전

로보틱스 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 더 스마트한 머신을 구현하세요. 로보틱스 분야의 Vision AI는 자율 주행, 인식, 객체 추적, 실시간 제어를 지원합니다.
자세히 알아보기
물류 분야의 컴퓨터 비전

물류 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 물류를 간소화하세요. 비전 AI는 화물 검사, 분류, 차량 추적, 실시간 창고 안전 모니터링을 지원합니다.
자세히 알아보기
리테일 분야의 컴퓨터 비전

리테일 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 리테일의 새로운 가능성을 열어 보세요. 비전 AI는 재고 추적, 선반 모니터링, 대기열 관리, 더욱 심층적인 고객 인사이트를 지원합니다.
자세히 알아보기
의료 분야의 컴퓨터 비전

의료 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 의료 솔루션을 구축하세요. 의료 분야의 비전 AI는 의료 영상 판독을 가속화하고, 진단을 개선하며, 환자 모니터링을 지원합니다.
자세히 알아보기
제조 분야의 컴퓨터 비전

제조 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 제조 공정을 최적화하세요. 비전 AI는 품질 관리, 결함 탐지, PPE 규정 준수, 조립 라인 자동화를 지원합니다.
자세히 알아보기
자동차 분야의 컴퓨터 비전

자동차 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 자동차 분야에 컴퓨터 비전을 적용하세요. 비전 AI는 도로 안전, 운전자 지원, 차량 자동화를 개선해 더 스마트한 도로를 구현합니다.
자세히 알아보기
농업 분야의 컴퓨터 비전

농업 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 스마트 농업에 비전 AI를 도입하세요. 작물 모니터링, 가축 추적, 정밀 농업을 지원하여 더 높은 수확량과 더 스마트한 농업을 실현합니다.
자세히 알아보기

함께 AI의 미래를 만들어 가세요!

머신러닝의 미래와 함께 여정을 시작하세요