One-Shot Learning
Tek örnekli öğrenme, genellikle gömmeleri karşılaştırarak yeni bir sınıfı tek bir etiketli örnekten tanır. Siamese ağlarını, kullanım alanlarını ve kodu ele alır.
Tek örnekle öğrenme, yeni bir sınıfı tek bir etiketli örnekten tanıma görevidir. Geleneksel bir görüntü sınıflandırma modeli, sınıf başına yüzlerce etiketli görüntüye ve her sınıf eklendiğinde yeniden eğitime ihtiyaç duyar; oysa bir kişi genellikle yeni bir yüzü veya ürünü bir kez gördükten sonra tanıyabilir. Tek örnekli sistemler, daha önce öğrenilmiş çok sayıda sınıftan edinilen bilgiyi yeniden kullanarak bu beceriye yaklaşır: Bu sınıflar üzerinde eğitilmiş bir ağ, görüntüleri aynı nesnenin görüntülerinin birbirine yakın düştüğü gömmelere dönüştürür; böylece yeni bir sınıfın konumunu belirlemek için tek örnek yeterlidir. Yüz doğrulama, imza kontrolü ve ürün tanıma bu şekilde çalışır. Büyük dil modellerinde (LLM'ler) ise tek örnekli istem, modele isteminde bir görevin tek bir çözümlü örneğini verir.
Tek Örnekle Öğrenme Nasıl Çalışır#
Çoğu tek örnekli sistem, sınıflandırmanın yerine karşılaştırmayı koyar. Bir sinir ağı, saklanan örnek ve her yeni sorgu üzerinde özellik çıkarımı yapar; ardından Öklid uzaklığı veya kosinüs benzerliği gibi iki gömme arasındaki uzaklık, bunların eşleşip eşleşmediğine karar verir. Bir Siyam sinir ağı, aynı ağırlıkları paylaşan iki dal kullanarak bu yaklaşımı biçimselleştirir. Jane Bromley, Yann LeCun ve çalışma arkadaşları bu yöntemi 1993'te imzaları doğrulamak için kullandı; Gregory Koch ve çalışma arkadaşları ise 2015'te her birinden tek bir örnek gördükten sonra yeni alfabelerdeki el yazısı karakterleri sınıflandırmak için böyle bir ağ eğitti:
Gömme ağı, görüntüleri aynı sınıftan olanları birbirine yaklaştıran ve farklı sınıflardan olanları birbirinden uzaklaştıran kontrastif veya üçlü kayıplarla başka birçok sınıf üzerinde önceden eğitilir; böylece öğrenilen uzaklık, yalnızca daha sonra ortaya çıkan sınıflara da genellenir. Meta öğrenme yöntemleri, örneğin Eşleştirme Ağları, her biri birkaç sınıftan tek bir örnek içeren binlerce benzetimli tek örnekli görev üzerinde eğitim yapar; böylece model, karşılaşacağı sorunu aynen uygulayarak öğrenir.
Gömme Vektörleriyle Tek Örnekli Sınıflandırma#
Ultralytics YOLO26 sınıflandırma modelleri, embed() aracılığıyla görüntü gömmeleri döndürür; bu işlem, sınıflandırma başlığından önceki katmanın çıktısını her görüntü için tek bir vektörde toplar. Bu örnek, söz konusu gömmelerden CIFAR-10 için 10 sınıflı tek örnekli bir sınıflandırıcı oluşturur: sınıf başına saklanan tek bir görüntü, etiketli verilerin tamamıdır ve her sorguya en benzer saklanmış görüntünün etiketi atanır:
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%)")Model CIFAR-10 üzerinde hiç eğitilmez; bu nedenle yazdırılan doğruluk, sınıf başına tek bir örneğin YOLO26'nın gömme uzayında o sınıfı ne kadar iyi tanımladığını ölçer. On birinci bir sınıf eklemek için bir gömme daha saklamak yeterlidir.
Uygulamalar#
- Yüz doğrulama: Otomatik sınır kapıları, canlı kamera görüntüsünü pasaport çipinde saklanan tek fotoğrafla karşılaştırır; telefonlar ve erişim kontrol sistemleri de her denemeyi kayıt sırasında kaydedilen yüzle eşleştirir.
- Perakende ürün tanıma: Mağazalar sürekli yeni ürünler ekler ve ürün başına tek bir katalog fotoğrafı, sistemin yeniden eğitim olmadan ürünü rafta tanımasını sağlar.
- Tek örnekli taklit öğrenimi: Robotları, tek bir gösterimi izledikten sonra blokları yeni bir sırayla dizmek gibi bir görevin yeni bir örneğini yerine getirecek şekilde eğitir.
Zorluklar#
Tek bir örnek, bir sınıfın nasıl çeşitlilik gösterdiğini ortaya koyamaz; bu nedenle loş ışıkta, alışılmadık bir açıdan veya nesnenin kısmen gizlendiği bir durumda çekilmiş referans fotoğrafı, sonraki tüm karşılaştırmalar için zayıf bir dayanak oluşturur. Eşleşme eşiği, yanlış kabul ve yanlış ret arasındaki dengeyi belirler ve her uygulama için doğrulama çiftleri üzerinde ayarlanmalıdır. Günlük fotoğraflar gibi bir alanda eğitilmiş gömme, tıbbi görüntüler gibi başka bir alandaki sınıfları daha az iyi ayırır.
Tek Örnekle Öğrenme ve İlgili Terimler#
- Az örnekli öğrenme: Sınıf başına az sayıda etiketli örnekten öğrenme problemi. Tek örnekle öğrenme, N-yollu K-örnekli gösteriminde 1-örnek olarak yazılan, tam olarak bir örneğin bulunduğu durumdur.
- Sıfır örnekli öğrenme: Hiç örneği olmayan sınıfları metin veya öznitelik açıklamasından tanır.
- Aktarım öğrenimi: Önceden eğitilmiş bir modeli yeni bir görev için yeniden kullanır; genellikle çok sayıda etiketli örnek üzerinde ince ayar yapar. Tek örnekli sistemler de aktarılmış özelliklere dayanır, ancak herhangi bir ağırlığı güncellemeden özellikleri doğrudan karşılaştırır.
- Anomali algılama: Normalin nasıl göründüğünü öğrenir ve bundan çok farklı olan her şeyi işaretler; bir öğenin hangi sınıfa ait olduğunu değil, olağan dışı olup olmadığını yanıtlar.










